决策树(Decision tree)

来源:互联网 发布:圆管连接件 淘宝 编辑:程序博客网 时间:2024/06/04 20:45

       机器学习中,决策树是一个预测模型;他代表的是对象属性与对象值之间的一种映射关系。树中每个节点表示某个对象,而每个分叉路径则代表某个可能的属性值,而每个叶节点则对应从根节点到该叶节点所经历的路径所表示的对象的值。决策树仅有单一输出,若欲有复数输出,可以建立独立的决策树以处理不同输出。数据挖掘中决策树是一种经常要用到的技术,可以用于分析数据,同样也可以用来作预测。


1.  决策树的构造

  

       在构造决策树时,我们需要解决的第一个问题就是,当前数据集上哪个特征在划分数据分类时起决定性作用。为了找到决定性的特征,划分出最好的结果,我们必须评估每个特征。完成测试之后,原始数据集就被划分为几个数据子集。这些数据子集会分布在第一个决策点的所有分支上。如果某个分支下的数据属于同一类型,则当前无需阅读的垃圾邮件已经正确地划分数据分类,无需进一步对数据集进行分割。如果数据子集内的数据不属于同一类型,则需要重复划分数据子集的过程。如何划分数据子集的算法和划分原始数据集的方法相同,直到所有具有相同类型的数据均在一个数据子集内。


    伪代码





       表3-1的数据包含5个海洋动物,特征包括:不浮出水面是否可以生存,以及是否有脚蹼。我们可以将这些动物分成两类:鱼类和非鱼类。现在我们想要决定依据第一个特征还是第二个特征划分数据。在回答这个问题之前,我们必须采用量化的方法判断如何划分数据


 


2. 信息增益(information gain)


在决策树算法的学习过程中,信息增益是特征选择的一个重要指标,它定义为一个特征能够为分类系统带来多少信息,带来的信息越多,说明该特征越重要,相应的信息增益也就越大。

下面是 熵、条件熵与信息增益之间的联系。

 

熵:表示随机变量的不确定性。

条件熵:在一个条件下,随机变量的不确定性。

信息增益:熵 -条件熵 (IG(T)=H(C)-H(C|T )






条件熵



1)计算信息熵



结果看到熵为 0.97



2)选择最好的信息增益




结果是 0 ,说明第0个特征是最好的用于划分数据集的特征(numpy数组以0开始)



(3)创建树




Output:



树形图



3. 决策树的几种算法


       ID3算法(IterativeDichotomiser 3 迭代二叉树3代)无法直接处理数值型数据,尽管我们可以通过量化的方法将数值型数据转化为标称型数值,但是如果存在太多的特征划分,ID3算法仍然会面临其他问题。


      关于ID3、C4.5、CART算法的区别,请看(https://www.quora.com/What-are-the-differences-between-ID3-C4-5-and-CART    、  https://www.zhihu.com/question/27205203)








---------以上整理自互联网,如有侵权请及时联系我们进行删除,谢谢!