深入浅出——决策树

请你思考:
1、决策树的核心思想是什么?
2、决策树生成过程中,特征选择有哪个准则?它们之间有什么关系?
3、决策树可以适用于所有情形吗?

一、定义(definition)

  • 基本定义
    决策树是基于特征对实例进行分类的树形结构,它是一种监督学习方法。

  • 决策树算法三要素
    1、特征选择
    2、决策树生成
    3、决策树剪枝

二、生成过程

本质: 使用满足划分准则的特征不断的将数据集划分为纯度更高,不确定性更小的过程(对原始数据进行划分,每次划分后新的子数据集内部纯度更高,不确定更小)。

本质 中我们看到三个关键字,分别是划分准则纯度不确定性。下讨论它们之间的关系。

1、不确定性(熵)
  • 特点
    度量随机变量的不确定性(纯度)。

  • 定义
    假设随机变量 X X 的可能值有 x1,x2, x 1 , x 2 , xn x n , 对于每一个可能的取值 xi x i ,其概率 P(X=xi) P ( X = x i ) = pi p i , ( i=1,2,...n i = 1 , 2 , . . . n ),因此随机变量 X X 的熵为:

    H(X)=i=1npilog2pi(1) (1) H ( X ) = − ∑ i = 1 n p i log 2 ⁡ p i

    对于样本集合 D D 来说,随机变量 X X 是样本的类别,即,假设样本有 k k 个类别,每个类别的概率是 |Ck||D| | C k | | D | ,其中 |Ck| | C k | 表示类别 k k 的样本个数, |D| | D | 表示样本总数。对于样本集合 D D 来说熵(经验熵)为:
    H(X)=k=1K|Ck||D|log2|Ck||D|(2) (2) H ( X ) = − ∑ k = 1 K | C k | | D | log ⁡ 2 | C k | | D |

2、划分准则
  • 特点
    1、划分后的纯度为各数据子集的纯度的和(子集占比 * 子集的经验熵
    2、纯度变化:划分前的数据集 D D 的纯度 划分后子集的纯度之和。

  • 分类
    (1)、信息增益(ID算法)

    计算使用所有特征划分数据集 D D ,得到多个特征划分数据集 D D 的信息增益值,从中选择最大值,便可找到其对应的特征,因而当前结点的划分特征便是使信息增益最大的划分所使用的特征。 A=argmaxGain(D,A) A ∗ = arg ⁡ m a x G a i n ( D , A )

    • 定义:以某特征划分数据集前后的熵的差值。
    • 公式:
      =()()Gain(D,A)=H(D)H(A|D)=H(D)v=1VH(Dv)(3) (3) 信 息 增 益 = 熵 ( 前 ) − 熵 ( 后 ) G a i n ( D , A ) = H ( D ) − H ( A | D ) = H ( D ) − ∑ v = 1 V H ( D v )
      这里, V V 表示属性 A A 可能的取值个数 {a1,a2,...an} { a 1 , a 2 , . . . a n } .
    • 缺点:信息增益偏向取值较多的特征。
      原因:当特征的的取值较多时,根据此特征更容易得到纯度更高的子集,因此划分之后的熵更低;但是划分前的熵是一定的,因此信息增益更大;所以信息增益会偏向取值较多的特征。解决办法是:使用信息增益比。

    (2)、信息增益率

    增加惩罚函数的方式,在候选特征中找出信息增益高于平均水平的特征,然后在这些特征中再选择信息增益率最高的特征。

    (3)、基尼系数

    从所有的可能划分的 Gini(D,Ai) G i n i ( D , A i ) 中找出 Gini G i n i 指数最小的划分,这个划分的划分点就是使用特征 A A 对样本集合 D D 进行划分的最佳划分点。

    • 定义
      表示在样本集合中一个随机选中的样本被分错的概率,即分类错误率(注意:Gini系数越小表示集合中被选中的样本被分错的概率越小,也就是说集合的纯度越高;反之,集合越不纯)。
    • 意义
      表示样本集合 D D 的不确定性。基尼指数越大,样本集合的不确定性越大。

    • 公式
      基尼系数(基尼不纯度) = 样本被选中的概率 * 样本被分错的概率,即:

      Gini(p)=k=1Kpk(1pk)=1k=1Kpk2(4) (4) G i n i ( p ) = ∑ k = 1 K p k ( 1 − p k ) = 1 − ∑ k = 1 K p k 2
      这里, pk p k 表示选中的样本属于 k k 类别的概率,这个样本被分错的概率为 (1pk) ( 1 − p k ) .

      基于特征 A A 划分后的基尼系数为各数据子集的纯度的和(子集占比 * 子集的基尼系数)

三、案例

四、优缺点

五、代码实现

六、总结

七、引用

[1][https://www.cnblogs.com/muzixi/p/6566803.html]
[2]https://blog.csdn.net/baimafujinji/article/details/53269040
[3]https://blog.csdn.net/sb19931201/article/details/52491430

你可能感兴趣的:(DecisionTree,Mechine,learning)