决策树

信息熵

一条信息的信息量和它的不确定性有着直接的关系。那么如何量化信息的度量呢?香农用“比特(bit)”这个概念来度量信息量。香农提出,它的准确信息量应该是:
信息熵

因此,对于任意一个随机变量X,它的熵定义如下:
信息熵定义

决策树

我们经常使用决策树处理分类问题,近来的调查表明决策树也是最经常使用的数据挖掘算法。

决策树的一般流程:

  1. 收集数据:可以使用任何方法
  2. 准备数据:树构造算法只适用于标称型数据 ,因此数值型数据必须离散化
  3. 分析数据:可以使用任何方法,构造树完成之后 , 我们应该检查图形是否符合预期
  4. 训练算法:构造树的数据结构
  5. 测试算法:使用经验树计算错误率
  6. 使用算法:此步骤可以适用于任何监督学习算法,而使用决策树可以更好地理解数据的内在含义

计算给定数据集的信息熵

计算信息熵python代码
实例

按照给定特征划分数据集

划分数据集python代码
示例

选择最好的数据集划分方式

接下来我们将遍历整个数据集,循环计算香农熵和函数找到最好的特征划分方式。熵计算将会告诉我们如何划分数据集是最好的数据组织方式 。
加权求和,计算熵的最佳增益python代码
示例

递归创建决策树

创建决策树python代码
示例-用字典表示决策树

在Python中使用 Matplotlib 注解绘制树形图

上述用字典的形式表示决策树不易于理解,而且直接绘制图形也比较困难。这里将使用Mapplotlib库创建树形图。
构造决策树主函数python代码
示例
输出图例

测试算法:使用决策树执行分类

使用决策树的分类函数

使用决策树的分类函数python代码
示例-分别测试[1,0]和[1,1]两组数据的分类

使用算法:决策树的存储

构造决策树很耗时,如果数据集很大,将会耗费很多计算时间。然而用创建好的决策树解决分类问题,则何以很快完成。因此,为了节省计算时间,最好能够在每次执行分类时调用巳经构造好的决策树。为了解决这个问题,需要使用python 模块pickle序列化对象。
存储、读取决策树python代码

示例:使用决策树预测隐形眼镜类型

通过一个例子讲解决策树如何预测患者需要佩戴的隐形眼镜类型。
输入如下python代码
运行结果

小结

这里使用的算法称为ID3,它无法直接处理数值型数据。而且可能产生过度匹配的问题,即匹配选项过多。

决策树分类器就像带有终止块的流程图,终止块表示分类结果。开始处理数据集时,我们首先需要测量集合中数据的不一致性,也就是熵,然后寻找最优方案划分数据集,直到数据集中的所有数据属于同一分类。

使用Matplotlibde注解功能,我们可以将存储的树结构转化为容易理解的图形。python语言的pickle模块可用于存储决策树的结构。隐形眼镜的例子表明决策树可能会产生过多的数据集划分,从而产生过度匹配数据集的问题。我们可以通过裁剪决策树,合并相邻的无法产生大量信息增益的叶节点,消除过度匹配问题。

还有其他的决策树的构造算法, 最流行的是C4.5 和CART。以后讨论。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值