机器学习算法(一)-决策树

一、什么是决策树(decision tree)?

  在机器学习中,决策树是一个预测模型,它代表的是对象属性与对象值之间的一种映射关系。由于这种模型画成图形很像一棵树的枝干,故称决策树。其每个非叶子节点表示一个特征属性上的测试,每个分支代表这个特征属性在某个值域上的输出,而每个叶子节点存放一个类别。树的最顶层是根节点。
机器学习算法(一)-决策树

二、熵的概念

  熵(entropy)是对平均不确定度的度量。在信源中,考虑的不是某一单个符号发生的不确定性,而是要考虑这个信源所有可能发生情况的平均不确定性。若信源符号有n种取值,对应概率为:P(x1),P(x2),,,P(xn),且各种符号的出现彼此独立。这时,信源的平均不确定性应当为单个符号不确定性logP(xi)的统计平均值,可称为信息熵,即
  

H(X)=xXP(x)logP(x)

式中对数一般取2为底,单位为比特。

三、ID3算法

  ID3算法的核心思想就是以信息增益(又称平均互信息)度量属性选择,选择分裂后信息增益最大的属性进行分裂。信息增益定义为:

gain(A)=info(D)infoA(D)

解释:设D为用类别对训练元组进行的划分,则D的熵表示为:
info(D)=i=1mpilog2(pi)

其中pi表示第i个类别在整个训练元组中出现的概率,可以用属于此类别元素的数量除以训练元组元素总数量作为估计。熵的实际意义表示是D中元组的类标号所需要的平均信息量。
现在我们假设将训练元组D按属性A进行划分,则A对D划分的期望信息为:
infoA(D)=j=1v|Dj||D|info(Dj)

而信息增益即为两者的差值。
例子:
机器学习算法(一)-决策树
机器学习算法(一)-决策树

机器学习算法(一)-决策树

机器学习算法(一)-决策树

类似,Gain(income) = 0.029, Gain(student) = 0.151, Gain(credit_rating)=0.048,所以,选择age作为第一个根节点
机器学习算法(一)-决策树

重复….

四、算法步骤

● 树以代表训练样本的单个点开始(步骤1)。
● 如果样本都在同一个类,则该节点成为树叶,并用该类标号(步骤2 和3)。
● 否则,算法使用称为信息增益的基于熵的度量作为启发信息,选择能够最好地将样本分类的属性(步骤6)。该属性成为该节点的“测试”或“判定”属性(步骤7)。在算法的该版本中,所有的属性都是分类的,即离散值。连续属性必须离散化。
● 对测试属性的每个已知的值,创建一个分枝,并据此划分样本(步骤8-10)。
● 算法使用同样的过程,递归地形成每个划分上的样本判定树。一旦一个属性出现在一个节点上,就不必该节点的任何后代上考虑它(步骤13)。
● 递归划分步骤仅当下列条件之一成立停止:
 (a) 给定节点的所有样本属于同一类(步骤2 和3)。
 (b) 没有剩余属性可以用来进一步划分样本(步骤4)。在此情况下,使用多数表决(步骤5)。这涉及将给定的节点转换成树叶,并用样本中的多数所在的类标记它。替换地,可以存放节点样本的类分布。
 (c) 分枝:test_attribute = ai 没有样本(步骤11)。在这种情况下,以 samples 中的多数类
● 创建一个树叶(步骤12)

五、其他归纳算法:

  1. C4.5
  2. CART
● 共同点:都是贪心算法,自上而下(Top-down approach);
● 区别:属性选择度量方法不同: C4.5 (信息增益率), CART(基尼系数), ID3 (信息增益)

六、树剪枝叶 (避免overfitting)

  决策树过渡拟合往往是因为太过“茂盛”,也就是节点过多,所以需要裁剪(Prune Tree)枝叶。裁剪枝叶的策略对决策树正确率的影响很大。主要有两种裁剪策略:
1. 先剪枝
2. 后剪枝

七、决策树的优点

  直观,便于理解,小规模数据集有效

八、决策树的缺点

  1. 处理连续变量不好
  2. 类别较多时,错误增加的比较快
  3. 可规模性一般