信息增益
我们将一组数据集进行划分后,数据的信息熵会产生改变,我们可以经由过程应用信息熵的计算公式分别计算被划分的子数据集的信息熵并计算他们的平均值(期望值)来作为瓜分后的数据集的信息熵。新的信息熵的比拟未划分数据的信息熵的减小值就是信息增益了. 这里我在最初就懂得错了,于是写出的代码并不克不及创建精确的决定计划树。
假设我们将数据集D划分成kk 份D1,D2,…,Dk,则划分后的信息熵为:

信息增益就是两个信息熵的差值
媒介

在这里我重要应用信息增益来进行属性选择,具体的实现代码如下:
- def choose_best_split_feature(self, dataset, classes):
- ''' 根据信息增益肯定最好的划分数据的特点
- :param dataset: 待划分的数据集
- :param classes: 数据集对应的类型
- :return: 划分数据的增益最大年夜的属性索引
- '''
- base_entropy = self.get_shanno_entropy(classes)
- feat_num = len(dataset[0])
- entropy_gains = []
- for i in range(feat_num):
- splited_dict = self.split_dataset(dataset, classes, i)
- new_entropy = sum([
- len(sub_classes)/len(classes)*self.get_shanno_entropy(sub_classes)
推荐阅读
【技巧沙龙】AI开辟者拭魅战营-7分钟打造1个定制技能。7月22号,我们等你一路! SQL注入(SQLi)应用不安然 Web App 和数据库驱动的类似软件,采取或修改数据(如用户账户记录),甚至在办事>>>详细阅读
本文标题:机器学习算法实践:决策树 (Decision Tree)
地址:http://www.17bianji.com/lsqh/36282.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示