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)\}; D={(x1,y1),(x2,y2),...,(xm,ym)};

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

过程:函数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_* a;
  11. for a ∗ a_* a 的每一个值 a ∗ v a_*^v av do.
  12. 为node生成一个分支;令 D v D_v Dv 表示 D D D 中在 a ∗ a_* a 上取值为 a ∗ v a_*^v av 的样本集;
  13. if D v D_v Dv 为空 then
  14.    将分支节点标记为叶节点,其类别标记为D中样本最多的类;「递归返回情形(3)」
  15.    return
  16. else
  17.    以TreeGeneration( D v D_v Dv, A A 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) 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} Ent(D)=k=1ypklog2pk.

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

       信息增益 G a i n ( D , a ) Gain(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) Gain(D,a)=Ent(D)v=1VDDvEnt(Dv).

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

2.1.2 劣势

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

2.2 增益率

2.2.1 概念

       增益率 G a i n _ r a t i o ( D , a ) Gain\_ratio(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)}, Gain_ratio(D,a)=IV(a)Gain(D,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|}}. IV(a)=v=1VDDvlog2DDv.
C 4.5 C4.5 C4.5决策树算法以其为标准划分属性。

2.2.2 劣势

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

2.3 基尼指数

2.3.1 概念

       基尼值 G i n i ( D ) Gini(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'} Gini(D)=k=1yk̸=kpkpk
= 1 − ∑ k = 1 ∣ y ∣ p k 2 =1-\sum_{k=1}^{|y|}p_k^2 =1k=1ypk2
       属性 a 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). Gini_index(D,a)=v=1VGini(Dv).

2.3.2 使用

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

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

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

3.1 预剪枝

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

3.2 后剪枝

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

3.3 多变量决策树

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

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

4.1 连续值

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

4.2 缺失值

       为每一个样本 x x x赋予一个权重 w x w_x wx,并定义
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 γv~wx;直观地看,就是让同一个样本以不同概率划入到不同子节点中。

5 参考

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值