Task03 详读西瓜书+南瓜书第4章

Task03 详读西瓜书+南瓜书第4章

1 决策树基本流程

  • 概念:基于树结构来进行决策,体现人类在面临决策问题时一种很自然的处理机制
  • 具备条件:
    1. 每个非叶节点表示一个特征属性测试
    2. 每个分支代表这个特征属性在某个值域上的输出
    3. 每个叶子节点存放一个类别
    4. 每个节点包含的样本集合通过属性测试被划分到子节点中,根节点包含样本全集
  • 基本算法:
    输入: 训练集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋅ , ( x m , y m ) } D=\{(x_1,y_1),(x_2,y_2),\cdot, (x_m,y_m)\} D={(x1,y1),(x2,y2),,(xm,ym)};
       属性集 A = a 1 , a 2 , ⋅ , a d A={a_1,a_2,\cdot,a_d} A=a1,a2,,ad
    过程: 函数TreeGenerate( D D D, A A A)
    (1) 生成结点node
    (2) if D D D中样本全属于同一类别 C C C then
    (3)  将node标记为 C C C类叶节点; return
    (4) end if
    (5) if A = ∅ A=\emptyset A= OR D D D中样本在 A A A上取值相同 then
    (6)  将node标记为叶结点,其类别标记为 D D D中样本数最多的类;return
    (7) end if
    (8) 从 A A A中选择最优化分属性 a ∗ a_* a;
    (9) for a ∗ a_* a的每一个值 a ∗ v a_*^v av do
    (10)  为node生成一个分支;令 D v D_v Dv表示 D D D中在 a ∗ a_* a上取值为 a ∗ v a_*^v av的样本子集;
    (11)   if D v D_v Dv为空 then
    (12)    将分支结点标记为叶结点,其类别标记为 D D D中样本最多的类; return
    (13)  else
    (14)    以TreeGenerate( D v D_v Dv, A \ { a ∗ } A \backslash \{ a_* \} A\{a})为分支结点
    (15)  end if
    (16) end for
    输出: 以node为根结点的一棵决策树
  • 决策树构造
    1. 当前结点包含的样本全部属于同一类,直接将该结点标记为叶结点,其类别设置该类
    2. 当属性集为空,或所有样本在所有属性上取值相同,无法进行划分,将该结点标记为叶结点,其类别设置为其父结点所含样本最多的类别
    3. 当前结点包含的样本集合为空,不能划分,将该结点标记为叶结点,其类别设置为其父结点所含样本最多的类别

2 划分选择

2.1 信息增益

  • 信息熵:度量样本集合纯度最常用的一种指标
  • 信息熵定义:
      假定当前样本集合 D D D中第 k k k类样本所占的比例为 p k ( k = 1 , 2 , … , ∣ Y ∣ ) p_k(k=1,2,\dots,|\mathcal{Y}|) pk(k=1,2,,Y),则 D D D的信息熵表示为 Ent ( D ) = − ∑ k = 1 ∣ Y ∣ p k log ⁡ 2 p k \text{Ent}(D)=-\sum_{k=1}^{|\mathcal{Y }| } p_{k} \log_2 p_k Ent(D)=k=1Ypklog2pk
    Ent ( D ) \text{Ent}(D) Ent(D)值越小,则 D D D的纯度越高。
  • 信息增益定义:
      假定使用属性 a a a对样本集 D D D进行划分,产生了 V V V个分支节点, v v v表示其中第 v v v个分支节点,易知:分支节点包含的样本数越多,表示该分支节点的影响力越大,可以计算出划分后相比原始数据集 D D D获得的“信息增益”(information gain)。
    Gain ( D , α ) = Ent ( D ) − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ Ent ( D v ) \text{Gain}(D, \alpha)=\text{Ent}(D)-\sum_{v=1}^{V} \frac{|D^{v}|}{|D|} \text{Ent}(D^v) Gain(D,α)=Ent(D)v=1VDDvEnt(Dv)
    信息增益越大,使用属性 a a a划分样本集 D D D的效果越好。
  • ID3决策树学习算法是以信息增益为准则

2.2 增益率

  • 作用:用于解决属性信息熵为0,或远高于其他属性的信息熵问题
  • 定义:
    Gain_ratio ( D , α ) = Gain ( D , α ) IV ( α ) \text{Gain\_ratio}(D, \alpha) = \frac{\text{Gain}(D, \alpha)} { \text{IV} (\alpha) } Gain_ratio(D,α)=IV(α)Gain(D,α)
    其中 IV ( α ) = − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ log ⁡ 2 ∣ D v ∣ ∣ D ∣ \text{IV}(\alpha)=-\sum_{v=1}^V \frac{|D^v|}{|D|} \log_2 \frac{|D^v|}{|D|} IV(α)=v=1VDDvlog2DDv α \alpha α属性的取值越多时, IV ( α ) \text{IV}(\alpha) IV(α)值越大
  • C4.5算法是以增益率为准则

2.3 基尼指数

  • CART决策树使用“基尼指数”(Gini index)来选择划分属性
  • 作用:表示从样本集 D D D中随机抽取两个样本,其类别标记不一致的概率,因此 Gini ( D ) \text{Gini}(D) Gini(D)越小越好
  • 定义: Gini ( D ) = ∑ k = 1 ∣ Y ∣ ∑ k ′ ≠ k p k p k ′ = 1 − ∑ k = 1 ∣ Y ∣ p k 2 \begin{aligned} \text{Gini}(D) &=\sum_{k=1}^{|\mathcal{Y}|} \sum_{k' \neq k} p_k p_{k'} \\ &=1-\sum_{k=1}^{|\mathcal{Y}|} p_k^2 \end{aligned} Gini(D)=k=1Yk=kpkpk=1k=1Ypk2
  • 属性选择:
    使用属性 α \alpha α划分后的基尼指数为:
     Gini_index  ( D , α ) = ∑ v = 1 V ∣ D v ∣ ∣ D ∣ Gini ( D v ) \text { Gini\_index }(D, \alpha)=\sum_{v=1}^V \frac{|D^v|}{|D|} \text{Gini}(D^v)  Gini_index (D,α)=v=1VDDvGini(Dv)故选择基尼指数最小的划分属性。

你可能感兴趣的:(决策树,机器学习,算法)