决策树学习笔记
什么是决策树
机器学习中,决策树是一个预测模型;他代表的是对象属性与对象值之间的一种映射关系。树中每个节点表示某个对象,而每个分叉路径则代表的某个可能的属性值,而每个叶结点则对应从根节点到该叶节点所经历的路径所表示的对象的值。决策树仅有单一输出,若欲有复数输出,可以建立独立的决策树以处理不同输出。
从数据产生决策树的机器学习技术叫做决策树学习, 通俗点说就是决策树,说白了,这是一种依托于分类、训练上的预测树,根据已知预测、归类未来。
常见的决策树算法:
- ID3算法
- C4.5算法
- CART算法
ID3算法
算法原理
价值思想 - 奥卡姆剃刀原理
“be simple”
ID3算法(Iterative Dichotomiser 3迭代二叉树3代)是一个由Ross Quinlan发明的用于决策树的算法。这个算法便是建立在上述所介绍的奥卡姆剃刀的基础上:“越是小型的决策树越优于大的决策树”。
该算法采用自顶向下的贪婪搜索遍历可能的决策树空间,原理描述:
- 选择所有训练样本中最佳的分类属性A,建立root节点
- 对A的每一个可能的值Vi,
- 在Root下面建立一个测试集为满足A=Vi的分支
- 在分支测试集中,继续选择最佳的分类属性A,建立子节点
- 循环
- 在分支测试集中,继续选择最佳的分类属性A,建立子节点
- 如果A=Vi集为空
- 建立一个叶子节点,结束
- 在Root下面建立一个测试集为满足A=Vi的分支
最佳分类属性选择
ID3算法的核心思想就是选择“最佳的分类属性”,而选择的标准是以“信息增益”来度量属性选择,选择分裂后“信息增益”最大的属性进行分裂。而要理解“信息增益”,需要先了解熵的概念。
- 熵
这里引用的“熵”指的是“香农熵” 或 “信息熵”,除此之外还有热力学熵等。它刻画了任意样例集的纯度(purity)。以一个布尔型分类为例,给定包含关于某个目标概念的正反样例的样例集S,那么S相对这个布尔型分类的熵为:
公式中,p+代表正样例(布尔值为true),而p-则代表反样例(布尔值为false),可见此时(布尔型分类)熵值的分布为:
而一般情况下,根据熵的极值性,当所有样本等几率出现的情况下,熵达到最大值log2(n),布尔型分类时n=2,故最大值=1。
所以更一般情况下,如果目标属性具有c个不同的值,那么S相对于c个状态的分类的熵定义为:
- 信息增益
当选择一个属性来分类(训练)数据后,这样分类所得的效果的度量被称为“信息增益(information gain)”,它表示由于特征值A而使得数据集D的分类的不确定性减少的程度,而对于不同的特征值,决策树对特征值的选取标准就是,选择信息增益最大的特征值。上面的原理描述里提到的“最佳的分类属性”就是满足这一条件的分类属性。
信息增益的公式为:
基于信息增益的决策树示例:
记录了14天的天气情况以及一个人(暂且叫ta小明)去没去打高尔夫,左边表格蓝色4栏表示各种天气条件,右边红色栏表示去没去打高尔夫。 我们通过观察发现,
只要天气是多云(overcast)时,小明就去打高尔夫;又或者碰到下雨天且湿度很大的时候小明就不去打高尔夫。这样我们就得到决策树的两条枝线:
多云 -> 去;下雨 -> 湿度高 ->不去。最终通过类似的选择,构建了一整颗决策树。
有了这颗决策树后,看看天气预报我们就可以根据决策树预测小明以后去没去打高尔夫了。
结果表如下:
此时,计算打高尔夫的熵为:
在天气特征值下打球的熵为:
所以,天气特征值的信息增益为:
同样可得其他条件下各自的信息增益为:
依照“算法原理”的算法,所以决策树的根为Outlook,同样对各个天气进行信息增益计算,所得决策树为:
C4.5算法
算法原理
C4.5是对ID3算法的改进,由于ID3存在一定条件下的缺陷,C4.5在于抑制这种缺陷导致的影响。 引入特征值A的值的熵HA(D)的概念,表征属性A的内部信息(Intrinsic Information of an Attribute)。
C4.5的算法流程与ID3相同。
CART算法
本学习阶段暂不研究,可以参考这里的描述。
Reference:
【1】归纳决策树ID3:http://www.cnblogs.com/zhangchaoyang/articles/2196631.html
【2】决策树算法总结:http://www.cnblogs.com/biyeymyhjob/archive/2012/07/23/2605208.html
【3】数据挖掘领域十大经典算法初探:http://blog.csdn.net/v_july_v/article/details/6142146
posted on 2017-04-23 16:20 JeromeTang 阅读(250) 评论(0) 编辑 收藏 举报