DecisionTree

决策树

决策树算法过程重点

1 基本流程


输入:训练集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) } ; D=\{(x_1,y_1),(x_2,y_2),...,(x_m,y_m)\};

属性集 A = { a 1 , a 2 , , a d } A=\{a_1,a_2,\dots,a_d\}

过程:函数TreeGrenerate(D,A)

  1. 生成节点node;
  2. if D中样本全属于同一个类别C then.
  3.    将node标记为C类叶节点; 「递归返回情形(1)」
  4.    return.
  5. end if
  6. if A= \emptyset or D中样本在A上取值相同 then
  7.    将node标记为叶节点,其类别标记为D中样本数最多的类; 「递归返回情形(2)」
  8.    return
  9. end if
  10. 从A中选择最优划分属性 a a_* ;
  11. for a a_* 的每一个值 a v a_*^v do.
  12. 为node生成一个分支;令 D v D_v 表示 D D 中在 a a_* 上取值为 a v a_*^v 的样本集;
  13. if D v D_v 为空 then
  14.    将分支节点标记为叶节点,其类别标记为D中样本最多的类;「递归返回情形(3)」
  15.    return
  16. else
  17.    以TreeGeneration( D v D_v , A A \ { a a_* })为分支节点
  18. end if

       注意:递归返回(2)和(3)都是面临节点无法被划分的情形,(2)是利用当前节点的后验分布进行类别判断,(3)是利用父节点的样本分布作为当前节点的先验分布进行类别判断。

2 流程核心(划分选择)

选择最优划分属性(信息增益信息增益率基尼指数

2.1 信息增益

2.1.1 概念

       p_k:样本集合D中第k类样本所占比例。

       信息熵 E n t ( D ) Ent(D) : E n t ( D ) = k = 1 y p k log 2 p k Ent(D)=-\sum_{k=1}^{|y|}p_k\log_2^{p_k} .

        E n t ( D ) Ent(D) 越小,D的纯度越高。

       信息增益 G a i n ( D , a ) Gain(D,a) : G a i n ( D , a ) = E n t ( D ) v = 1 V D v D E n t ( D v ) Gain(D,a)=Ent(D)-\sum_{v=1}^V\frac{|D^v|}{D}Ent(D^v) .

       信息增益越大,则意味着使用属性 a a 来划分所获得的“纯度提升”越大, I D 3 ID3 决策树学习算法以其为准则划分属性。

2.1.2 劣势

       对可取值数目较多的属性有所偏好,极端情况以编号为属性时,该属性划分并无意义。

2.2 增益率

2.2.1 概念

       增益率 G a i n _ r a t i o ( D , a ) Gain\_ratio(D,a) : G a i n _ r a t i o ( D , a ) = G a i n ( D , a ) I V ( a ) , Gain\_ratio(D,a)=\frac{Gain(D,a)}{IV(a)},
其中
I V ( a ) = v = 1 V D v D log 2 D v D . IV(a)=-\sum_{v=1}^V\frac{|D^v|}{|D|}\log_2^{\frac{|D^v|}{|D|}}.
C 4.5 C4.5 决策树算法以其为标准划分属性。

2.2.2 劣势

       对取值数目较少的属性有所偏好,不直接用来选划分属性,而是从候选划分属性中找出信息增益高于平均水平的属性,再从中选出增益率最高的。

2.3 基尼指数

2.3.1 概念

       基尼值 G i n i ( D ) Gini(D) :
G i n i ( D ) = k = 1 y k ̸ = k p k p k Gini(D)=\sum_{k=1}^y \sum_{k'\not=k}p_kp_{k'}
= 1 k = 1 y p k 2 =1-\sum_{k=1}^{|y|}p_k^2
       属性 a a 基尼指数定义为:
G i n i _ i n d e x ( D , a ) = v = 1 V G i n i ( D v ) . Gini\_index(D,a)=\sum_{v=1}^VGini(D^v).

2.3.2 使用

       选择那个使得划分后基尼指数最小的属性为最优划分属性。

3 优化(过拟合+属性过多)

       剪枝是决策树学习算法对付“过拟合”的主要手段,采用留出法

3.1 预剪枝

       随机划分出训练集与验证集,比较划分前后验证集精读,决定是否对该节点划分。存在欠拟合的风险。

3.2 后剪枝

       先从训练集形成一棵完整决策树,从叶节点开始剪枝,比较剪枝前后验证集精度,决定是否剪枝。训练时间开销比较大。

3.3 多变量决策树

属性过多时,一个个训练时间消耗过大,可以采用属性的线性组合进行划分。

4 特殊值(连续与缺失值)

4.1 连续值

       将连续属性 a a 在样本集 D D 上出现的 n n 个不同取值排序组成集合 { a 1 , a 2 , , a n } \{a^1,a^2,\dots,a^n\} ,选取中位点为划分点。

4.2 缺失值

       为每一个样本 x x 赋予一个权重 w x w_x ,并定义
KaTeX parse error: No such environment: split at position 8: \begin{̲s̲p̲l̲i̲t̲}̲ \rho &= \frac{…
       信息增益的计算式可推广为:
KaTeX parse error: No such environment: split at position 8: \begin{̲s̲p̲l̲i̲t̲}̲ Gain(D,a) &= \…
属性值未知样本划分入所有子节点,对应权重改变为 γ v ~ w x \tilde{\gamma_v}\cdot w_x ;直观地看,就是让同一个样本以不同概率划入到不同子节点中。

5 参考

[1]周志华.机器学习[M].清华大学出版社,2016:425.

猜你喜欢

转载自blog.csdn.net/lrglgy/article/details/87733853