决策树
信息熵: 随机变量的不确定性的度量.
H ( X ) = − ∑ i = 1 n p i log p i H(X)=-\sum_{i=1}^{n} p_{i} \log p_{i} H(X)=−i=1∑npilogpi
0 ≤ H ( X ) ≤ log n 0 \leq H(X) \leq \log n 0≤H(X)≤logn
信息增益: 得知特征X的信息而使得类Y的信息的不确定性减少的程度.
g ( Y , X ) = H ( Y ) − H ( Y │ X ) g(Y,X)=H(Y)-H(Y│X) g(Y,X)=H(Y)−H(Y│X)
信息增益算法
输入:训练数据集D和特征A
输出:特征A对训练数据集D的信息增益g(D,A)
- 计算数据集D的经验熵H(D)
-
计算特征A对数据D的经验条件熵H(D|A)
H ( D ) = − ∑ i = 1 n ∣ C k ∣ ∣ D ∣ log 2 ∣ C k ∣ ∣ D ∣ H(D)=-\sum_{i=1}^{n} \frac{\left|C_{k}\right|}{|D|} \log _{2} \frac{\left|C_{k}\right|}{|D|} H(D)=−i=1∑n∣D∣∣Ck∣log2∣D∣∣Ck∣
-
计算信息增益
g ( D , A ) = H ( D ) − H ( D │ A ) g(D,A)=H(D)-H(D│A) g(D,A)=H(D)−H(D│A)
ID3算法
思想: 在决策树各个节点上应用信息增益准则选择特征, 递归地构建决策树.
方法:从根节点出发, 对结点计算所有可能的特征的信息增益, 选择信息增益最大的特征作为节点的特征, 并递归构建决策树.
(ID3相当于用极大似然法进行概率模型的选择)
输入: 训练数据集D, 特征集A, 阈值ε
输出: 决策树T
- 若D中所有实例属于同一类 C k C_k Ck, 则T为单节点数, 并将类 C k C_k Ck作为该节点的类标记,返回T.
- 若A=∅, 则T为单节点树, 并将D中实例数最大的类 C k C_k Ck作为该节点的类标记, 返回T.
- 否则,安装信息增益算法, 计算A中各特征对D的信息增益, 选择信息增益最大的特征 A g A_g Ag.
- 若A_g的信息增益小于阈值ε,则设置T为单节点树, 并将D 中实例数最大的类C_k作为该节点的类标记, 返回T.
- 否则,对 A g A_g Ag的每一可能值 a i a_i ai, 依 A g = a i A_g=a_i Ag=ai将D分割为若干非空子集 D i D_i Di, 将 D i D_i Di中实例数最大的类作为标记,构建子节点, 由结点及其子结点构成树T, 返回T.
- 对第i个子结点, 以 D i D_i Di为训练集, 以A- A g {A_g} Ag为特征集, 递归调用(1)~(5), 得到子树 T i T_i Ti, 返回 T i T_i Ti
Cart 树
Cart树是二叉树,每次分裂产生两个子节点.
Cart 分类树
采用Gini指数选择最优特征, Gini指数反应样本集合的不确定性
Gini ( p ) = ∑ i = 1 n p k ( 1 − p k ) = 1 − ∑ k = 1 K p k 2 \operatorname{Gini}(p)=\sum_{i=1}^{n} p_{k}\left(1-p_{k}\right)=1-\sum_{k=1}^{K} p_{k}^{2} Gini(p)=i=1∑npk(1−pk)=1−k=1∑Kpk2
其中假设有k个类, p k p_k pk表样本点属于第k个类的概率.
在特征A的条件下,集合D的基尼指数定义为:
Gini ( D , A ) = ∣ D 1 ∣ ∣ D ∣ Gini ( D 1 ) + ∣ D 2 ∣ ∣ D ∣ Gini ( D 2 ) \operatorname{Gini}(D, A)=\frac{\left|D_{1}\right|}{|D|} \operatorname{Gini}\left(D_{1}\right)+\frac{\left|D_{2}\right|}{|D|} \operatorname{Gini}\left(D_{2}\right) Gini(D,A)=∣D∣∣D1∣Gini(D1)+∣D∣∣D2∣Gini(D2)
选取Gini指数最小的特征作为划分特征
CART回归树
思想: 将输入空间划分为M个单元(R1, R2, …, R M R_M RM), 并且在每个单元 R m R_m Rm上有一个固定的输出值 c m c_m cm
回归模型:
f ( x ) = ∑ m = 1 M c m I ( x ∈ R m ) f(x)=\sum_{m=1}^{M} c_{m} I\left(x \in R_{m}\right) f(x)=m=1∑McmI(x∈Rm)
训练误差:
∑ x i ∈ R m ( y i − f ( x i ) ) 2 \sum_{x_{i} \in R_{m}}\left(y_{i}-f\left(x_{i}\right)\right)^{2} xi∈Rm∑(yi−f(xi))2
单元 R m R_m Rm上的最优输出值 c m ∗ c_m^* cm∗
c m ∗ = ave ( y i ∣ x i ∈ R m ) c_{m}^{*}=\operatorname{ave}\left(y_{i} \mid x_{i} \in R_{m}\right) cm∗=ave(yi∣xi∈Rm)
空间划分
采用启发式,选择第j个变量 x j x^{j} xj和它取值s, 作为切分变量和切分点,并定义两个区域
R 1 ( j , s ) = { x ∣ x ( j ) ≤ s } , R 2 ( j , s ) = { x ∣ x ( j ) ≥ s } R_{1}(j, s)=\left\{x \mid x^{(j)} \leq s\right\}, \quad R_{2}(j, s)=\left\{x \mid x^{(j)} \geq s\right\} R1(j,s)={x∣x(j)≤s},R2(j,s)={x∣x(j)≥s}
最优化切分点
min j , s [ min c 1 ∑ x i ∈ R 1 ( j , s ) ( y i − c 1 ) 2 + min c 2 ∑ x i ∈ R 2 ( j , s ) ( y i − c 2 ) 2 ] \min _{j, s}\left[\min _{c_{1}} \sum_{x_{i} \in R_{1}(j, s)}\left(y_{i}-c_{1}\right)^{2}+\min _{c_{2}} \sum_{x_{i} \in R_{2}(j, s)}\left(y_{i}-c_{2}\right)^{2}\right] j,smin⎣⎡c1minxi∈R1(j,s)∑(yi−c1)2+c2minxi∈R2(j,s)∑(yi−c2)2⎦⎤
附录
- 实例: Decision Trees