首页
学习
活动
专区
工具
TVP
发布

机器学习实战——决策树(一)

机器学习实战——决策树(一)

决策树

1.样本集合

我们对上表简单观察就可以大概确定: 可作为是否是鱼类的初步判断依据,然后再根据 就可以确定是否属于鱼类了。

我们很自然的能进行如上决策判定,那么计算机是如何判断的呢?

2.信息熵

划分数据集的原则是——将无序的数据变得更加有序。

在我们上面实例数据集中,先判断 ,再判断 这个决策,显然比先判断 ,再判断 更优,就是因为前者可以将数据更有序。

在划分数据集前后信息发生的变化,我们称之为 ,于是我们可以计算每个特征值划分数据集获得的信息增益,获得信息增益最高的特征就是最好的决策选择。

关于信息熵的理解,知乎上有些解释很不错。

3.创建决策树的伪代码##

注意 :

由于python版本的不同,运行下面的majority_cnt()可能会出现以下报错

AttributeError: 'dict' object has no attribute 'iteritems'

问题出在下面这句:

soluton:

Python3.5中:iteritems变为items

现在,我们终于可以开始写决策树算法了,也就是开头提到的create_branches(),回顾一下伪代码

好了,目前为止,我们已经成功实现了决策树算法的最核心的算法(基于ID3算法),看到上面输出的这个树,想必决策树已经呈现在我们脑海中了

还有一个重要的部分,就是将利用matplotlib库将我们所学习到的决策树画出来。我们明天继续。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180419G1TK0E00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券