测试:决策过程中提出的每个判定问题都是对某个属性的测试
决策树基本结构
过程
每个结点包含的样本集合根据属性测试的结果被划分到子结点中
根结点包含样本全集
从根结点到每个叶结点的路径对应了一个判定测试序列
目的:产生一颗泛化能力强,即处理未见示例能力强的决策树
基本流程:遵循简单且直观的分而治之策略
决策树的生成是一个递归过程
三种递归返回
一般而言,随着划分过程不断进行,我们希望决策树的分支结点所包含的样本尽可能属于同一类别,即结点的“纯度”(purity)越来越高.
ID3名字中的ID是lterative Dichotomiser(迭代二分器)的简称。
以信息增益为准则来选择划分属性
信息熵是对量样本集合纯度最常用的一种指标
信息熵
假定当前样本集合 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 0≤pk≤1,∑k=1∣Y∣pk=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=1∑∣Y∣pklog2pk
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}| 0≤Ent(D)≤log2∣Y∣
- 求 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=1∑nxklog2xk
其中 0 ≤ x k ≤ 1 , ∑ k = 1 n x k = 1 0 \leq x_{k} \leq 1, \sum_{k=1}^{n} x_{k}=1 0≤xk≤1,∑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=1∑nxklog2xk, S.t. k=1∑nxk=1
显然,在 0 ≤ x k ≤ 1 0\leq x_k \leq 1 0≤xk≤1时此问题为凸优化(拆开分析二阶导数大于零,或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=1∑nxklog2xk+λ(k=1∑nxk−1)
对于拉格朗日函数分别关于 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} ∂x1∂L(x1,…,xn,λ)=∂x1∂[k=1∑nxklog2xk+λ(k=1∑nxk−1)]=0=log2x1+x1⋅x1ln21+λ=0=log2x1+ln21+λ=0⇒λ=−log2x1−ln21
同理可得
λ = − 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} λ=−log2x1−ln21=−log2x2−ln21=…=−log2xn−ln21
又因为
∂ 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=1∑nxklog2xk+λ(k=1∑nxk−1)]=0⇒k=1∑nxk=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=1∑nn1log2n1=−n⋅n1log2n1=log2n
纯度最低是为样本为均匀分布的时候- 求 Ent ( D ) \operatorname{Ent}(D) Ent(D)的最小值
仅考虑 0 ≤ x k ≤ 1 0 \leq x_k \leq 1 0≤xk≤1, 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=1∑ng(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,0≤xk≤1。当各个 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)=−log2x1−x1⋅x1ln21=−log2x1−ln21=dx1d(g′(x1))=dx1d(−log2x1−ln21)=−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
条件熵
在已知样本属性 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(D∣a)=v=1∑V∣D∣∣Dv∣Ent(Dv)
H ( D ∣ a ) H(D | a) H(D∣a)值越小,纯度越高
- 联合熵
同时发生事件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)=−x∈X∑y∈Y∑p(x,y)log2p(x,y)=−Ep(x,y)log2p(x,y)=−Ep(x,y)(log2(p(x)p(y∣x)))=−Ep(x,y)(log2p(x)+log2p(y∣x))=−Ep(x)log2p(x)−Ep(x,y)log2p(y∣x)=H(X)+H(Y∣X)
信息增益(互信息)
属性 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=1∑V∣D∣∣Dv∣Ent(Dv)=Ent(D)−H(D∣a)
其中 ∣ 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∗=a∈AargmaxGain(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=1∑V∣D∣∣Dv∣Ent(Dv)=Ent(D)−v=1∑V∣D∣∣Dv∣⎝⎛−k=1∑∣y∣pklog2pk⎠⎞=Ent(D)−v=1∑V∣D∣∣Dv∣⎝⎛−k=1∑∣y∣∣Dv∣∣Dkv∣log2∣Dv∣∣Dkv∣⎠⎞
离散和连续变量
解决信息增益的确定,不直接使用信息增益,而是使用增益率来选择最优化分属性
定义:
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=1∑V∣D∣∣Dv∣log2∣D∣∣Dv∣称为属性 a a a的固有值
属性 a a a的可能取值数目越多(即V越大),则 I V ( a ) \mathrm{IV}(a) IV(a)的值通常会越大
信息熵衡量的是样本集在类别上的混乱程度,而固有值衡量的是样本集在某个属性上的混乱程度。固有值越大,则该属性混乱程度越高,可能的取值越多。
算法并不是直接选择增益率最大的候选划分属性,而是使用了一个启发式:先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的.
CART是Classification and Regression Tree的简称,这是一种著名的决策树学习算法,分类和回归任务都可用。
最优化分属性
a ∗ = arg min a ∈ A Gini index ( D , a ) a_{*}=\underset{a \in A}{\arg \min } \operatorname{Gini}_{\text {index }}(D, a) a∗=a∈AargminGiniindex (D,a)
剪枝(pruning)是决策树学习算法对付“过拟合”的主要手段.
在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶结点
先从训练集生成一棵完整的决策树,然后自底向上地对非叶结点进行考察,若将该结点对应的子树替换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶结点.
实际任务中,即使没有提升,只要不是性能下降,一般也会剪枝,因为根据奥卡姆剃刀准则,简单的模型更好。
连续属性离散化:二分法(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 n−1个元素的候选划分点集合
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+1∣1≤i≤n−1}
把区间 [ 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)=t∈TamaxGain(D,a,t)=t∈TamaxEnt(D)−λ∈{−,+}∑∣D∣∣∣Dtλ∣∣Ent(Dtλ)
在对连续属性值排序完之后,由于有 n n n 个不同取值,取每两个取值的平均值作为划分点的话,就有 n − 1 n-1 n−1 个候选划分点。我们需要做得就是按照准则(比方说用ID3算法的话就是信息增益)进行 n − 1 n-1 n−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=1∣Y∣D~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=∑x∈Dwx∑x∈D~wx=∑x∈D~wx∑x∈D~kwx,(1≤k≤∣Y∣),=∑x∈D~wx∑x∈D~vwx,(1≤v≤V),k=1∑∣Y∣p~kv=1∑Vr~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=1∑∣Y∣p~klog2p~k=ρ×Gain(D~,a)=ρ×(Ent(D~)−v=1∑Vr~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~v⋅wx;直观地看,这就是让同一个样本以不同的概率划入到不同的子结点中去.
可以把无缺失值的决策树建模想象为各样本权值恒为1的情形,它们只对自己所属的属性值子集作贡献。而样本含缺失值时,它会以不同的概率对所有属性值子集作贡献。
决策树所形成的分类边界有一个明显的特点:轴平行,即它的分类边界由若干个与坐标轴平行的分段组成
为了节省预测时间,将每个非叶结点是对属性的线性组合进行测试,每个非叶节点 ∑ 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可从样本集和属性集上学得
多变量决策树的决策边界能够斜着走,甚至绕曲线走,从而用更少的分支更好地逼近复杂的真实边界。