机器学习实战——决策树(一)
决策树
1.样本集合
我们对上表简单观察就可以大概确定: 可作为是否是鱼类的初步判断依据,然后再根据 就可以确定是否属于鱼类了。
我们很自然的能进行如上决策判定,那么计算机是如何判断的呢?
2.信息熵
划分数据集的原则是——将无序的数据变得更加有序。
在我们上面实例数据集中,先判断 ,再判断 这个决策,显然比先判断 ,再判断 更优,就是因为前者可以将数据更有序。
在划分数据集前后信息发生的变化,我们称之为 ,于是我们可以计算每个特征值划分数据集获得的信息增益,获得信息增益最高的特征就是最好的决策选择。
关于信息熵的理解,知乎上有些解释很不错。
3.创建决策树的伪代码##
注意 :
由于python版本的不同,运行下面的majority_cnt()可能会出现以下报错
AttributeError: 'dict' object has no attribute 'iteritems'
问题出在下面这句:
soluton:
Python3.5中:iteritems变为items
现在,我们终于可以开始写决策树算法了,也就是开头提到的create_branches(),回顾一下伪代码
好了,目前为止,我们已经成功实现了决策树算法的最核心的算法(基于ID3算法),看到上面输出的这个树,想必决策树已经呈现在我们脑海中了
还有一个重要的部分,就是将利用matplotlib库将我们所学习到的决策树画出来。我们明天继续。
领取专属 10元无门槛券
私享最新 技术干货