【深度之眼《机器学习》西瓜书训练营第十三期】决策树

决策树

  • 1. 决策树
    • 1.1. 基本流程
    • 1.2. 划分选择
      • 1.2.1. ID3决策树
        • 1.2.1.1. 信息增益
      • 1.2.2. C4.5决策树
        • 1.2.2.1. 增益率
      • 1.2.3. CART
        • 1.2.3.1. 基尼指数
        • 1.2.3.2. 算法
    • 1.3. 剪枝处理
      • 1.3.1. 预剪枝
      • 1.3.2. 后剪枝
    • 1.4. 连续与缺失值
      • 1.4.1. 连续值处理
        • 1.4.1.1. 缺失值处理
    • 1.5. 多变量决策树

1. 决策树

  • 是一种模仿人类决策的学习方法
  • 基于树结构来进行决策

1.1. 基本流程

  • 测试:决策过程中提出的每个判定问题都是对某个属性的测试

  • 决策树基本结构

    • 一个根结点==>判定问题的不同答案
    • 若干个内部结点==>判定问题的不同答案
    • 若干个叶结点==>决策结果
  • 过程
    每个结点包含的样本集合根据属性测试的结果被划分到子结点中
    根结点包含样本全集
    从根结点到每个叶结点的路径对应了一个判定测试序列

  • 目的:产生一颗泛化能力强,即处理未见示例能力强的决策树

  • 基本流程:遵循简单且直观的分而治之策略
    【深度之眼《机器学习》西瓜书训练营第十三期】决策树_第1张图片
    决策树的生成是一个递归过程
    三种递归返回

    • 当前结点包含的样本全属于同一类别,无需划分
    • 当前属性集为空,或是所有样本在所有属性上的取值相同,无法划分(使用后验分布)
    • 当前结点包含的样本集合为空,不能划分(使用先验分布)

1.2. 划分选择

一般而言,随着划分过程不断进行,我们希望决策树的分支结点所包含的样本尽可能属于同一类别,即结点的“纯度”(purity)越来越高.

1.2.1. ID3决策树

ID3名字中的ID是lterative Dichotomiser(迭代二分器)的简称。
以信息增益为准则来选择划分属性

1.2.1.1. 信息增益

信息熵是对量样本集合纯度最常用的一种指标

  • 信息熵
    假定当前样本集合 D D D中第 k k k类样本所占的比例 p k ( k = 1 , 2 , 3 , … , ∣ Y ∣ ) p_k(k=1,2,3,\ldots,|\mathcal{Y}|) pk(k=1,2,3,,Y) 0 ≤ p k ≤ 1 , ∑ k = 1 ∣ Y ∣ p k = 1 0 \leq p_{k} \leq 1, \sum_{k=1}^{|\mathcal{Y}|} p_{k}=1 0pk1,k=1Ypk=1, ∣ Y ∣ |\mathcal{Y}| Y样本的类别总数,则 D D D的信息熵定义为
    Ent ⁡ ( D ) = − ∑ k = 1 ∣ Y ∣ p k log ⁡ 2 p k \operatorname{Ent}(D)=-\sum_{k=1}^{|\mathcal{Y}|} p_{k} \log _{2} p_{k} Ent(D)=k=1Ypklog2pk
    Ent ⁡ ( D ) \operatorname{Ent}(D) Ent(D)的值越小,则 D D D的纯度越高

    证明 0 ≤ Ent ⁡ ( D ) ≤ log ⁡ 2 ∣ Y ∣ 0\leq \operatorname{Ent}(D) \leq\log_2|\mathcal{Y}| 0Ent(D)log2Y

    • Ent ⁡ ( D ) \operatorname{Ent}(D) Ent(D)的最大值
      若令 ∣ Y ∣ = n , p k = x k |\mathcal{Y}|=n,p_k=x_k Y=n,pk=xk,那么信息熵$\operatorname{Ent}(D) 就 可 以 看 成 就可以看成 n$元实值函数,也即:
      Ent ⁡ ( D ) = f ( x 1 , … , x n ) = − ∑ k = 1 n x k log ⁡ 2 x k \operatorname{Ent}(D)=f\left(x_{1}, \ldots, x_{n}\right)=-\sum_{k=1}^{n} x_{k} \log _{2} x_{k} Ent(D)=f(x1,,xn)=k=1nxklog2xk
      其中 0 ≤ x k ≤ 1 , ∑ k = 1 n x k = 1 0 \leq x_{k} \leq 1, \sum_{k=1}^{n} x_{k}=1 0xk1,k=1nxk=1,考虑求该多元函数的最值(约束优化问题)
      仅考虑 ∑ k = 1 n x k = 1 \sum_{k=1}^{n} x_{k}=1 k=1nxk=1对于 f ( x 1 , … , x n ) f\left(x_{1}, \ldots, x_{n}\right) f(x1,,xn)求最大值等同于如何最小化
       min  ∑ k = 1 n x k log ⁡ 2 x k ,  S.t.  ∑ k = 1 n x k = 1 \text { min } \sum_{k=1}^{n} x_{k} \log _{2} x_{k},\text { S.t. } \sum_{k=1}^{n} x_{k}=1  min k=1nxklog2xk, S.t. k=1nxk=1
      显然,在 0 ≤ x k ≤ 1 0\leq x_k \leq 1 0xk1时此问题为凸优化(拆开分析二阶导数大于零,或hessian矩阵)问题,而对于凸优化问题来说,满足KKT条件的点即为最优解。由于此最小化问题仅含等式约束,那么能令其拉格朗日函数的一阶偏导数等于0的点即为满足KKT条件的点。
      根据拉格朗日乘子法可知,该优化问题的拉格朗日函数为
      L ( x 1 , … , x n , λ ) = ∑ k = 1 n x k log ⁡ 2 x k + λ ( ∑ k = 1 n x k − 1 ) L\left(x_{1}, \ldots, x_{n}, \lambda\right)=\sum_{k=1}^{n} x_{k} \log _{2} x_{k}+\lambda\left(\sum_{k=1}^{n} x_{k}-1\right) L(x1,,xn,λ)=k=1nxklog2xk+λ(k=1nxk1)
      对于拉格朗日函数分别关于 x 1 , … , x n , λ x_1,\ldots,x_n,\lambda x1,,xn,λ求一阶偏导数,并令偏导数等于0
      ∂ L ( x 1 , … , x n , λ ) ∂ x 1 = ∂ ∂ x 1 [ ∑ k = 1 n x k log ⁡ 2 x k + λ ( ∑ k = 1 n x k − 1 ) ] = 0 = log ⁡ 2 x 1 + x 1 ⋅ 1 x 1 ln ⁡ 2 + λ = 0 = log ⁡ 2 x 1 + 1 ln ⁡ 2 + λ = 0 ⇒ λ = − log ⁡ 2 x 1 − 1 ln ⁡ 2 \begin{aligned} \frac{\partial L\left(x_{1}, \ldots, x_{n}, \lambda\right)}{\partial x_{1}}&=\frac{\partial}{\partial x_{1}}\left[\sum_{k=1}^{n} x_{k} \log _{2} x_{k}+\lambda\left(\sum_{k=1}^{n} x_{k}-1\right)\right]=0\\ &=\log _{2} x_{1}+x_{1} \cdot \frac{1}{x_{1} \ln 2}+\lambda=0\\ &=\log _{2} x_{1}+\frac{1}{\ln 2}+\lambda=0\\ &\Rightarrow \lambda=-\log _{2} x_{1}-\frac{1}{\ln 2} \end{aligned} x1L(x1,,xn,λ)=x1[k=1nxklog2xk+λ(k=1nxk1)]=0=log2x1+x1x1ln21+λ=0=log2x1+ln21+λ=0λ=log2x1ln21
      同理可得
      λ = − log ⁡ 2 x 1 − 1 ln ⁡ 2 = − log ⁡ 2 x 2 − 1 ln ⁡ 2 = … = − log ⁡ 2 x n − 1 ln ⁡ 2 \lambda=-\log _{2} x_{1}-\frac{1}{\ln 2}=-\log _{2} x_{2}-\frac{1}{\ln 2}=\ldots=-\log _{2} x_{n}-\frac{1}{\ln 2} λ=log2x1ln21=log2x2ln21==log2xnln21
      又因为
      ∂ L ( x 1 , … , x n , λ ) ∂ λ = ∂ ∂ λ [ ∑ k = 1 n x k log ⁡ 2 x k + λ ( ∑ k = 1 n x k − 1 ) ] = 0 ⇒ ∑ k = 1 n x k = 1 \begin{aligned} \frac{\partial L\left(x_{1}, \ldots, x_{n}, \lambda\right)}{\partial \lambda} &=\frac{\partial}{\partial \lambda}\left[\sum_{k=1}^{n} x_{k} \log _{2} x_{k}+\lambda\left(\sum_{k=1}^{n} x_{k}-1\right)\right]=0 \\ & \Rightarrow \sum_{k=1}^{n} x_{k}=1 \end{aligned} λL(x1,,xn,λ)=λ[k=1nxklog2xk+λ(k=1nxk1)]=0k=1nxk=1
      所以解的
      x 1 = x 2 = … = x n = 1 n x_{1}=x_{2}=\ldots=x_{n}=\frac{1}{n} x1=x2==xn=n1
      根据验证满足约束条件,所以未满足所有约束的最优解,也即未当前最小化问题的最小值点,同时也是 f ( x 1 , … , x n ) f\left(x_{1}, \ldots, x_{n}\right) f(x1,,xn)的最大值点
      将解带入可得
      f ( 1 n , … , 1 n ) = − ∑ k = 1 n 1 n log ⁡ 2 1 n = − n ⋅ 1 n log ⁡ 2 1 n = log ⁡ 2 n f\left(\frac{1}{n}, \ldots, \frac{1}{n}\right)=-\sum_{k=1}^{n} \frac{1}{n} \log _{2} \frac{1}{n}=-n \cdot \frac{1}{n} \log _{2} \frac{1}{n}=\log _{2} n f(n1,,n1)=k=1nn1log2n1=nn1log2n1=log2n
      纯度最低是为样本为均匀分布的时候
    • Ent ⁡ ( D ) \operatorname{Ent}(D) Ent(D)的最小值
      仅考虑 0 ≤ x k ≤ 1 0 \leq x_k \leq 1 0xk1 f ( x 1 , … , x n ) f\left(x_{1}, \ldots, x_{n}\right) f(x1,,xn)可以看成是 n n n个互不相关的一元函数的加和,即
      f ( x 1 , … , x n ) = ∑ k = 1 n g ( x k ) f\left(x_{1}, \ldots, x_{n}\right)=\sum_{k=1}^{n} g\left(x_{k}\right) f(x1,,xn)=k=1ng(xk)
      其中 g ( x k ) = − x k log ⁡ 2 x k , 0 ≤ x k ≤ 1 g\left(x_{k}\right)=-x_{k} \log _{2} x_{k}, 0 \leq x_{k} \leq 1 g(xk)=xklog2xk,0xk1。当各个 g ( x i ) g(x_i) g(xi)分别取到其最小值时,函数也取到最小值
      • g ( x 1 ) g(x_1) g(x1)的最小值
        g ′ ( x 1 ) = d ( − x 1 log ⁡ 2 x 1 ) d x 1 = − log ⁡ 2 x 1 − x 1 ⋅ 1 x 1 ln ⁡ 2 = − log ⁡ 2 x 1 − 1 ln ⁡ 2 g ′ ′ ( x 1 ) = d ( g ′ ( x 1 ) ) d x 1 = d ( − log ⁡ 2 x 1 − 1 ln ⁡ 2 ) d x 1 = − 1 x 1 ln ⁡ 2 \begin{aligned} g^{\prime}\left(x_{1}\right)&=\frac{d\left(-x_{1} \log _{2} x_{1}\right)}{d x_{1}}=-\log _{2} x_{1}-x_{1} \cdot \frac{1}{x_{1} \ln 2}=-\log _{2} x_{1}-\frac{1}{\ln 2}\\ g^{\prime \prime}\left(x_{1}\right)&=\frac{d\left(g^{\prime}\left(x_{1}\right) \right)}{d x_{1}}=\frac{d\left(-\log _{2} x_{1}-\frac{1}{\ln 2}\right)}{d x_{1}}=-\frac{1}{x_{1} \ln 2} \end{aligned} g(x1)g(x1)=dx1d(x1log2x1)=log2x1x1x1ln21=log2x1ln21=dx1d(g(x1))=dx1d(log2x1ln21)=x1ln21
        g ( x 1 ) g(x_1) g(x1)是一个在其定义域范围内开口向下的凹函数,那么其最小值必然在边界取。所以 g ( 0 ) = g ( 1 ) = 1 g(0)=g(1)=1 g(0)=g(1)=1
        Note:在信息熵中 0 log ⁡ 2 0 = 0 0\log_2 0=0 0log20=0
        【深度之眼《机器学习》西瓜书训练营第十三期】决策树_第2张图片
  • 条件熵
    在已知样本属性 a a a的取值情况下,度量样本集合纯度的一种指标
    假定离散属性 a a a V V V个可能的取值 { a 1 , a 2 , … , a V } \{a^1,a^2,\ldots,a^V\} {a1,a2,,aV},若使用 a a a来对样本集 D D D进行划分,则会产生 V V V个分支结点,其中第 v v v个分支结点包含了 D D D中所有在属性 a a a上取值为 a v a^v av的样本,记为 D v D^v Dv
    H ( D ∣ a ) = ∑ v = 1 V ∣ D v ∣ ∣ D ∣ Ent ⁡ ( D v ) H(D | a)=\sum_{v=1}^{V} \frac{\left|D^{v}\right|}{|D|} \operatorname{Ent}\left(D^{v}\right) H(Da)=v=1VDDvEnt(Dv)
    H ( D ∣ a ) H(D | a) H(Da)值越小,纯度越高

  • 联合熵
    同时发生事件X和Y的不确定性。
    H ( X , Y ) = − ∑ x ∈ X ∑ y ∈ Y p ( x , y ) log ⁡ 2 p ( x , y ) H ( X , Y ) = − E p ( x , y ) log ⁡ 2 p ( x , y ) = − E p ( x , y ) ( log ⁡ 2 ( p ( x ) p ( y ∣ x ) ) ) = − E p ( x , y ) ( log ⁡ 2 p ( x ) + log ⁡ 2 p ( y ∣ x ) ) = − E p ( x ) log ⁡ 2 p ( x ) − E p ( x , y ) log ⁡ 2 p ( y ∣ x ) = H ( X ) + H ( Y ∣ X ) \begin{aligned} H(X, Y)&=-\sum_{x \in X} \sum_{y \in Y} p(x, y) \log _{2} p(x, y)\\ H(X, Y)&=-E_{p(x, y)} \log _{2} p(x, y) \\ &=-E_{p(x, y)}\left(\log _{2}(p(x) p(y | x))\right) \\ &=-E_{p(x, y)}\left(\log _{2} p(x)+\log _{2} p(y | x)\right) \\ &=-E_{p(x)} \log _{2} p(x)-E_{p(x, y)} \log _{2} p(y | x) \\ &=H(X)+H(Y | X) \end{aligned} H(X,Y)H(X,Y)=xXyYp(x,y)log2p(x,y)=Ep(x,y)log2p(x,y)=Ep(x,y)(log2(p(x)p(yx)))=Ep(x,y)(log2p(x)+log2p(yx))=Ep(x)log2p(x)Ep(x,y)log2p(yx)=H(X)+H(YX)
  • 信息增益(互信息)
    属性 a a a对样本集 D D D进行划分所获得的信息增益
    Gain ⁡ ( D , a ) = Ent ⁡ ( D ) − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ Ent ⁡ ( D v ) = Ent ⁡ ( D ) − H ( D ∣ a ) \operatorname{Gain}(D, a)=\operatorname{Ent}(D)-\sum_{v=1}^{V} \frac{\left|D^{v}\right|}{|D|} \operatorname{Ent}\left(D^{v}\right)=\operatorname{Ent}(D)-H(D | a) Gain(D,a)=Ent(D)v=1VDDvEnt(Dv)=Ent(D)H(Da)
    其中 ∣ D v ∣ / ∣ D ∣ |D^v|/|D| Dv/D为分支结点赋予权重,即样本数越多的分支结点的影响越大

    一般而言信息增益越大,则意味着使用属性 a a a来进行划分所获得的纯度提升越大

  • 最优化分属性
    a ∗ = arg ⁡ max ⁡ a ∈ A Gain ⁡ ( D , a ) a_{*}=\underset{a \in A}{\arg \max } \operatorname{Gain}(D, a) a=aAargmaxGain(D,a)

  • 缺点
    信息增益对对可取数值数目较多的属性有所偏好
    Gain ⁡ ( D , a ) = Ent ⁡ ( D ) − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ Ent ⁡ ( D v ) = Ent ⁡ ( D ) − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ ( − ∑ k = 1 ∣ y ∣ p k log ⁡ 2 p k ) = Ent ⁡ ( D ) − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ ( − ∑ k = 1 ∣ y ∣ ∣ D k v ∣ ∣ D v ∣ log ⁡ 2 ∣ D k v ∣ ∣ D v ∣ ) \begin{aligned} \operatorname{Gain}(D, a) &=\operatorname{Ent}(D)-\sum_{v=1}^{V} \frac{\left|D^{v}\right|}{|D|} \operatorname{Ent}\left(D^{v}\right) \\ &=\operatorname{Ent}(D)-\sum_{v=1}^{V} \frac{\left|D^{v}\right|}{|D|}\left(-\sum_{k=1}^{|y|} p_{k} \log _{2} p_{k}\right) \\ &=\operatorname{Ent}(D)-\sum_{v=1}^{V} \frac{\left|D^{v}\right|}{|D|}\left(-\sum_{k=1}^{|y|} \frac{\left|D_{k}^{v}\right|}{\left|D^{v}\right|} \log _{2} \frac{\left|D_{k}^{v}\right|}{\left|D^{v}\right|}\right) \end{aligned} Gain(D,a)=Ent(D)v=1VDDvEnt(Dv)=Ent(D)v=1VDDvk=1ypklog2pk=Ent(D)v=1VDDvk=1yDvDkvlog2DvDkv

  • 离散和连续变量

    • 一个连续变量X的不确定性,用方差Var(X)来度量
    • 一个离散变量X的不确定性,用熵H(X)来度量
    • 两个连续变量X和Y的相关度,用协方差或相关系数来度量
    • 两个离散变量X和Y的相关度,用互信息I(X;Y)来度量(直观地,X和Y的相关度越高,X对分类的作用就越大)

1.2.2. C4.5决策树

解决信息增益的确定,不直接使用信息增益,而是使用增益率来选择最优化分属性

1.2.2.1. 增益率

  • 增益率准则对可取数目较少的属性有所偏好

定义:
 Gain ratio  ( D , a ) = Gain ⁡ ( D , a ) IV ⁡ ( a ) \text { Gain ratio }(D, a)=\frac{\operatorname{Gain}(D, a)}{\operatorname{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 ∣ \mathrm{IV}(a)=-\sum_{v=1}^{V} \frac{\left|D^{v}\right|}{|D|} \log _{2} \frac{\left|D^{v}\right|}{|D|} IV(a)=v=1VDDvlog2DDv称为属性 a a a的固有值

属性 a a a的可能取值数目越多(即V越大),则 I V ( a ) \mathrm{IV}(a) IV(a)的值通常会越大

信息熵衡量的是样本集在类别上的混乱程度,而固有值衡量的是样本集在某个属性上的混乱程度。固有值越大,则该属性混乱程度越高,可能的取值越多

算法并不是直接选择增益率最大的候选划分属性,而是使用了一个启发式:先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的.

1.2.3. CART

CART是Classification and Regression Tree的简称,这是一种著名的决策树学习算法,分类和回归任务都可用。

1.2.3.1. 基尼指数

  • 基尼值
    Gini ⁡ ( D ) = ∑ k = 1 ∣ Y ∣ ∑ k ′ ≠ k p k p k ′ = 1 − ∑ k = 1 ∣ Y ∣ p k 2 \begin{aligned} \operatorname{Gini}(D) &=\sum_{k=1}^{|\mathcal{Y}|} \sum_{k^{\prime} \neq k} p_{k} p_{k^{\prime}} \\ &=1-\sum_{k=1}^{|\mathcal{Y}|} p_{k}^{2} \end{aligned} Gini(D)=k=1Yk=kpkpk=1k=1Ypk2
    直观来说, G i n i ( D ) Gini(D) Gini(D)反映了从数据集D中随机抽取两个样本,其类别标记不一致的概率.因此, G i n i ( D ) Gini(D) Gini(D)越小,则数据集D的纯度越高.
  • 基尼指数
    属性 a a a的基尼指数
     Gini index  ( D , a ) = ∑ v = 1 V ∣ D v ∣ ∣ D ∣ Gini ⁡ ( D v ) \text { Gini index }(D, a)=\sum_{v=1}^{V} \frac{\left|D^{v}\right|}{|D|} \operatorname{Gini}\left(D^{v}\right)  Gini index (D,a)=v=1VDDvGini(Dv)

最优化分属性
a ∗ = arg ⁡ min ⁡ a ∈ A Gini ⁡ index  ( D , a ) a_{*}=\underset{a \in A}{\arg \min } \operatorname{Gini}_{\text {index }}(D, a) a=aAargminGiniindex (D,a)

1.2.3.2. 算法

  • 分类
    【深度之眼《机器学习》西瓜书训练营第十三期】决策树_第3张图片
  • 回归
    【深度之眼《机器学习》西瓜书训练营第十三期】决策树_第4张图片

1.3. 剪枝处理

剪枝(pruning)是决策树学习算法对付“过拟合”的主要手段.

  • 降低了过拟合的风险

1.3.1. 预剪枝

在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶结点

  • 显著减少了决策树的训练时间开销和测试时间开销
  • 局部贪婪有可能导致后续划分不能展开,有欠拟合风险

1.3.2. 后剪枝

先从训练集生成一棵完整的决策树,然后自底向上地对非叶结点进行考察,若将该结点对应的子树替换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶结点.
实际任务中,即使没有提升,只要不是性能下降,一般也会剪枝,因为根据奥卡姆剃刀准则,简单的模型更好。

  • 欠拟合风险小,泛化能力优于预剪枝决策树
  • 训练时间开销比未剪枝的决策树和预剪枝决策树都要大

1.4. 连续与缺失值

1.4.1. 连续值处理

  • 连续属性离散化:二分法(C4.5决策树算法中采用的机制)
    给定样本集 D D D和连续属性 a a a,假定 a a a D D D上出现了 n n n个不同的取值,将这些值从小到大排序,记为 { a 1 , a 2 , … , a n } \{a^1,a^2,\ldots,a^n\} {a1,a2,,an}。基于划分点 t t t可将 D D D分为子集 D t − D^-_t Dt( a i < t a^i < t ai<t)和 D t + D^+_t Dt+
    对于连续属性 a a a,选择考察包含 n − 1 n-1 n1个元素的候选划分点集合
    T a = { a i + a i + 1 2 ∣ 1 ≤ i ≤ n − 1 } T_a = \left\{ \frac{a^i+a^{i+1}}{2}|1 \leq i \leq n-1 \right\} Ta={2ai+ai+11in1}
    把区间 [ a i , a i + 1 ) [a^i,a^{i+1}) [ai,ai+1)的中位点 a i + a i + 1 2 \frac{a^i+a^{i+1}}{2} 2ai+ai+1作为候选划分点。
    Gain ⁡ ( D , a ) = max ⁡ t ∈ T a Gain ⁡ ( D , a , t ) = max ⁡ t ∈ T a Ent ⁡ ( D ) − ∑ λ ∈ { − , + } ∣ D t λ ∣ ∣ D ∣ Ent ⁡ ( D t λ ) \begin{aligned} \operatorname{Gain}(D, a) &=\max _{t \in T_{a}} \operatorname{Gain}(D, a, t) \\ &=\max _{t \in T_{a}} \operatorname{Ent}(D)-\sum_{\lambda \in\{-,+\}} \frac{\left|D_{t}^{\lambda}\right|}{|D|} \operatorname{Ent}\left(D_{t}^{\lambda}\right) \end{aligned} Gain(D,a)=tTamaxGain(D,a,t)=tTamaxEnt(D)λ{,+}DDtλEnt(Dtλ)

    在对连续属性值排序完之后,由于有 n n n 个不同取值,取每两个取值的平均值作为划分点的话,就有 n − 1 n-1 n1 个候选划分点。我们需要做得就是按照准则(比方说用ID3算法的话就是信息增益)进行 n − 1 n-1 n1 次判断。每次拿出一个候选划分点,把连续属性分为两类,转换为离散属性。然后基于这个基础计算准则,最终选出一个最优的属性值划分点。

1.4.1.1. 缺失值处理

  • 如何在属性值缺失的情况下进行划分属性选择?
    假设数据集为 D D D,有缺失值的属性为 a a a,令 D ~ \tilde{D} D~ 表示 D D D 中没有缺失属性 a a a 的样本子集。

    基于 D ~ \tilde{D} D~ 来判断属性 a a a 的优劣。假定属性 a a a V V V个可取值 { a 1 , a 2 , … , a V } \{a^1,a^2,\ldots,a^V\} {a1,a2,,aV},令 D ~ v \tilde{D}^v D~v表示 D D D中在属性 a a a上取值为 a v a^v av的样本子集, D ~ k \tilde{D}_k D~k表示 D D D中属于第 k k k类( k = 1 , 2 , … , ∣ Y ∣ k=1,2,\ldots, |\mathcal{Y}| k=1,2,,Y)的样本子集,则显然有 D ~ = ⋃ k = 1 ∣ Y ∣ D ~ k , D ~ = ⋃ v = 1 V D ~ v \tilde{D}=\bigcup_{k=1}^{|\mathcal{Y}|} \tilde{D}_{k}, \tilde{D}=\bigcup_{v=1}^{V} \tilde{D}^{v} D~=k=1YD~k,D~=v=1VD~v.假定我们为每个样本 x x x赋予一个权重 w x w_x wx,并定义
    ρ = ∑ x ∈ D ~ w x ∑ x ∈ D w x p ~ k = ∑ x ∈ D ~ k w x ∑ x ∈ D ~ w x , ( 1 ≤ k ≤ ∣ Y ∣ ) , ∑ k = 1 ∣ Y ∣ p ~ k = 1 r ~ v = ∑ x ∈ D ~ v w x ∑ x ∈ D ~ w x , ( 1 ≤ v ≤ V ) , ∑ v = 1 V r ~ v = 1 \begin{aligned} \rho &= \frac{\sum_{\mathbf{x} \in \tilde{D}}w_\mathbf{x}}{\sum_{\mathbf{x} \in D}w_\mathbf{x}}\\ \tilde{p}_k &= \frac{\sum_{\mathbf{x} \in \tilde{D}_k}w_\mathbf{x}}{\sum_{\mathbf{x} \in \tilde{D}}w_\mathbf{x}},\quad (1 \leq k \leq |\mathcal{Y}|),&\sum_{k=1}^{| \mathcal{Y |}} \tilde{p}_{k}&=1\\ \tilde{r}_v &= \frac{\sum_{\mathbf{x} \in \tilde{D}^v}w_\mathbf{x}}{\sum_{\mathbf{x} \in \tilde{D}}w_\mathbf{x}},\quad (1 \leq v \leq V),&\sum_{v=1}^{V} \tilde{r}_{v}&=1\\ \end{aligned} ρp~kr~v=xDwxxD~wx=xD~wxxD~kwx,(1kY),=xD~wxxD~vwx,(1vV),k=1Yp~kv=1Vr~v=1=1

    ρ \rho ρ 表示无缺失值样本所占的比例;
    p ~ k \tilde{p}_k p~k 表示无缺失值样本中第 k k k 类所占的比例;
    r ~ v \tilde{r}_v r~v 表示无缺失值样本中在属性 a a a 上取值 a v a^v av 的样本所占的比例 ;

    注意,这里的 w x w_{x} wx 表示样本的权值,它是含缺失值样本参与建模的一种方式。在根节点处初始时,所有样本 x x x 的权重都为1。

    接下来重新定义信息熵和信息增益,推广到样本含缺失值的情况:

    E n t ( D ~ ) = − ∑ k = 1 ∣ Y ∣ p ~ k l o g 2 p ~ k G a i n ( D , a ) = ρ × G a i n ( D ~ , a ) = ρ × ( E n t ( D ~ ) − ∑ v = 1 V r ~ v E n t ( D ~ v ) ) \begin{aligned} Ent(\tilde{D}) &= -\sum_{k=1}^{|\mathcal{Y|}}\tilde{p}_klog_2\tilde{p}_k\\ Gain(D,a) &= \rho \times Gain(\tilde{D},a)\\ &= \rho \times (Ent(\tilde{D}) - \sum_{v=1}^V \tilde{r}_vEnt(\tilde{D}^v)) \end{aligned} Ent(D~)Gain(D,a)=k=1Yp~klog2p~k=ρ×Gain(D~,a)=ρ×(Ent(D~)v=1Vr~vEnt(D~v))

    按照新的定义来计算包含缺失值的属性的信息增益,然后和其他属性的信息增益相比,选出最优的。

  • 给定划分属性,若样本在该属性上的值缺失,如何对样本进行划分?
    若样本 x x x在划分属性 a a a上的取值已知,则将 x x x划入与其取值对应的子结点,且样本权值在子结点中保持为 w x w_x wx.
    若样本 x x x在划分属性 a a a上的取值未知,则将 x x x同时划入所有子结点,且样本权值在与属性值 a v a^v av对应的子结点中调整为 r ~ v ⋅ w x \tilde{r}_v \cdot w_x r~vwx;直观地看,这就是让同一个样本以不同的概率划入到不同的子结点中去.

    可以把无缺失值的决策树建模想象为各样本权值恒为1的情形,它们只对自己所属的属性值子集作贡献。而样本含缺失值时,它会以不同的概率对所有属性值子集作贡献

1.5. 多变量决策树

决策树所形成的分类边界有一个明显的特点:轴平行,即它的分类边界由若干个与坐标轴平行的分段组成

为了节省预测时间,将每个非叶结点是对属性的线性组合进行测试,每个非叶节点 ∑ i = 1 d w i a i = t \sum_{i=1}^d w_i a_i =t i=1dwiai=t的线性分类器,其中 w i w_i wi未是属性 a i a_i ai的权重, w i , t w_i,t wi,t可从样本集和属性集上学得
【深度之眼《机器学习》西瓜书训练营第十三期】决策树_第5张图片
多变量决策树的决策边界能够斜着走,甚至绕曲线走,从而用更少的分支更好地逼近复杂的真实边界。

你可能感兴趣的:(西瓜书)