快速搜索
主页 > 技术前沿 > 机器学习 >

决策树算法原理

时间:2018-11-09 20:33来源:未知 作者:admin 点击:
分享到:
一、决策树知识点 0. 机器学习中分类和预测算法的评估: 准确率 速度 强壮行 可规模性 可解释性 1. 什么是决策树/判定树(decision tree)? 判定树是一个类似于流程图的树结构:其中,每

一、决策树知识点

0. 机器学习中分类和预测算法的评估:

  • 准确率

  • 速度

  • 强壮行

  • 可规模性

  • 可解释性

1. 什么是决策树/判定树(decision tree)?

判定树是一个类似于流程图的树结构:其中,每个内部结点表示在一个属性上的测试,每个分支代表一个属性输出,而每个树叶结点代表类或类分布。树的最顶层是根结点。

2. ?机器学习中分类方法中的一个重要算法

3. ?构造决策树的基本算法分支根结点结点树叶

3.1 熵(entropy)概念:

信息和抽象,如何度量?
1948年,香农提出了 ”信息熵(entropy)“的概念
一条信息的信息量大小和它的不确定性有直接的关系,要搞清楚一件非常非常不确定的事情,或者是我们一无所知的事情,需要了解大量信息==>信息量的度量就等于不确定性的多少

例子:猜世界杯冠军,假如一无所知,猜多少次?
每个队夺冠的几率不是相等的

比特(bit)来衡量信息的多少

变量的不确定性越大,熵也就越大

3.1 决策树归纳算法 (ID3)

1970-1980, J.Ross. Quinlan, ID3算法

选择属性判断结点

信息获取量(Information Gain):Gain(A) = Info(D) - Infor_A(D)
通过A来作为节点分类获取了多少信息

类似,Gain(income) = 0.029, Gain(student) = 0.151, Gain(credit_rating)=0.048

所以,选择age作为第一个根节点



重复。。。


算法:

  1. 树以代表训练样本的单个结点开始(步骤1)。

  2. 如果样本都在同一个类,则该结点成为树叶,并用该类标号(步骤2 和3)。

  3. 否则,算法使用称为信息增益的基于熵的度量作为启发信息,选择能够最好地将样本分类的属性(步骤6)。该属性成为该结点的“测试”或“判定”属性(步骤7)。在算法的该版本中,

  4. 所有的属性都是分类的,即离散值。连续属性必须离散化。

  5. 对测试属性的每个已知的值,创建一个分枝,并据此划分样本(步骤8-10)。

  6. 算法使用同样的过程,递归地形成每个划分上的样本判定树。一旦一个属性出现在一个结点上,就不必该结点的任何后代上考虑它(步骤13)。

  7. 递归划分步骤仅当下列条件之一成立停止:

  8. (a) 给定结点的所有样本属于同一类(步骤2 和3)。

  9. (b) 没有剩余属性可以用来进一步划分样本(步骤4)。在此情况下,使用多数表决(步骤5)。

  10. 这涉及将给定的结点转换成树叶,并用样本中的多数所在的类标记它。替换地,可以存放结

  11. 点样本的类分布。

  12. (c) 分枝

  13. test_attribute = a i 没有样本(步骤11)。在这种情况下,以 samples 中的多数类

  14. 创建一个树叶(步骤12)


3.1 其他算法:
C4.5: Quinlan
Classification and Regression Trees (CART): (L. Breiman, J. Friedman, R. Olshen, C. Stone)
共同点:都是贪心算法,自上而下(Top-down approach)
区别:属性选择度量方法不同: C4.5 (gain ratio), CART(gini index), ID3 (Information Gain)

3.2 如何处理连续性变量的属性?

4. 树剪枝叶 (避免overfitting)
4.1 先剪枝
4.2 后剪枝


5. 决策树的优点:

  • 决策树易于理解和实现. 人们在通过解释后都有能力去理解决策树所表达的意义。

  • 对于决策树,数据的准备往往是简单或者是不必要的 . 其他的技术往往要求先把数据一般化,比如去掉多余的或者空白的属性。

  • 能够同时处理数据型和常规型属性。其他的技术往往要求数据属性的单一。

  • 在相对短的时间内能够对大型数据源做出可行且效果良好的结果。

  • 对缺失值不敏感

  • 可以处理不相关特征数据

  • 效率高,决策树只需要一次构建,反复使用,每一次预测的最大计算次数不超过决策树的深度

6. 决策树的缺点:

  • 对连续性的字段比较难预测。

  • 对有时间顺序的数据,需要很多预处理的工作。

  • 当类别太多时,错误可能就会增加的比较快。

  • 一般的算法分类的时候,只是根据一个字段来分类。

  • 在处理特征关联性比较强的数据时表现得不是太好

  • 容易发生过拟合(随机森林可以很大程度上减少过拟合)

  • 对于那些各类别样本数量不一致的数据,在决策树当中,信息增益的结果偏向于那些具有更多数值的特征(只要是使用了信息增益,都有这个缺点,如RF)。


精彩图集

赞助商链接