1.简介
根据损失函数最小化原则建立决策树模型
损失函数一般是正则化的极大似然函数
本质上为从训练数据集中归纳出的一组分类规则
每一个子结点对应一个特征取值,叶节点即一个类
步骤
特征选择、决策树生成、决策树修剪4
2.特征选择
2.1 熵
使用熵度量随机变量不确定性
P ( X = x i ) = p i P(X=x_i) = p_i P(X=xi)=pi
则熵定义为 H ( X ) = H ( p ) = − s u m ( p i l o g p i ) H(X)=H(p)=-sum(p_ilogp_i) H(X)=H(p)=−sum(pilogpi)
对于条件概率分布
P ( X = x i , Y = y i ) = p i j P(X=x_i,Y=y_i)=p_{ij} P(X=xi,Y=yi)=pij
条件熵
H ( Y ∣ X ) = s u m ( p i H ( Y ∣ X = x i ) ) H(Y|X)=sum(p_iH(Y|X=x_i)) H(Y∣X)=sum(piH(Y∣X=xi))
通过极大似然估计获得经验熵
2.2信息增益
信息增益:特征A对训练数据集D的信息增益g(D,A),定义为集合D的经验熵H(D)与特征A给定条件下D的经验条件熵H(D|A)之差,即:
g ( D , A ) = H ( D ) − H ( D ∣ A ) g(D,A)= H(D)-H(D|A) g(D,A)=H(D)−H(D∣A)
等价于训练数据集中类与特征的互信息
即由于特征A使得分类不确定性减少的程度
2.3信息增益比
单纯使用信息增益可能存在偏向于选择取值较多的特征的问题
特征A对训练数据集D的信息增益比定义为其信息增益与训练数据集D关于特征A的值的熵之比
g R ( D , A ) = g ( D , A ) H A ( D ) g_R(D,A)=\frac{g(D,A)}{H_A(D)} gR(D,A)=HA(D)g(D,A)
H A ( D ) = − ∑ n 1 ( D i D l o g 2 D i D ) H_A(D)=-\sum{^n}{_1}(\frac{D_i}{D}log_2\frac{D_i}{D}) HA(D)=−∑n1(DDilog2DDi)
n 为 特 征 A 取 值 数 量 , D i 为 特 征 A 取 值 i 时 样 本 数 n为特征A取值数量,D_i为特征A取值i时样本数 n为特征A取值数量,Di为特征A取值i时样本数
理解:避免了信息增益时偏向于取值较多(n较大)的特征;取值数量n越大,分母越大,可以认为该项是一项惩罚项
3.决策树的生成
3.1 ID3算法
即在决策树各个结点上应用信息增益选择特征,递归地构建决策树
步骤:从根结点开始,对结点计算所有可能的特征,选择信息增益最大的特征作为节点的特征,由特征的不同取值建立子结点,递归构建直到所有信息增益都很小(无用特征抛弃)或者所有特征都选完
4.决策树的剪枝
提高模型的泛化能力(对预测数据的拟合)
一般通过使得损失函数最小决定剪枝
4.1 剪枝损失函数公式
C α ( T ) = s u m ( N t H t ( T ) + α ( T ) ) C_α(T)=sum(N_tH_t(T) +α(T)) Cα(T)=sum(NtHt(T)+α(T))
5.CART算法
即在给定输入随机变量X条件下输出随机变量Y的条件概率分布
5.1 最小二乘回归生成
递归地构建二叉决策树,对回归树用平方误差最小化准则,对分类树用基尼系数最小化准则,进行特征选择,生成最小树
f ( x ) = s u m ( c m I ( x ∈ R m ) f(x)=sum(c_mI(x∈R_m) f(x)=sum(cmI(x∈Rm)
即随机选择一个输入变量 x j = s x^j=s xj=s将训练集切分为两块
R 1 ( j , s ) = { x ∣ x j < = s } R_1(j,s)=\{x|x^j<=s\} R1(j,s)={ x∣xj<=s}
R 1 ( j , s ) = { x ∣ x j > s } R_1(j,s)=\{x|x^j>s\} R1(j,s)={ x∣xj>s}
通过损失函数寻找最优切分变量j与切分点s
l o s s = s u m ( y i − f ( x i ) ) 2 loss = sum(y_i-f(x_i))^2 loss=sum(yi−f(xi))2
m i n [ m i n ( l o s s 1 ) + m i n ( l o s s 2 ) ] min[min(loss1)+min(loss2)] min[min(loss1)+min(loss2)]
对于固定输入变量j,最优切分点可以通过求均值找出
c i = a v e ( y i ∣ x i ∈ R i ( j , s ) ) c_i=ave(y_i|x_i∈R_i(j,s)) ci=ave(yi∣xi∈Ri(j,s))
继续对子区域划分,最后得到回归树即最小二乘回归树
5.2分类树生成
基尼指数:用于选择最优特征
G i n i ( p ) = s u m ( p k ( 1 − p k ) ) = s u m k ( p k − p k 2 ) = 1 − s u m k ( k 2 ) Gini(p)=sum(p_k(1-p_k))=sum^k(p_k-p_k^2)=1-sum^k(k^2) Gini(p)=sum(pk(1−pk))=sumk(pk−pk2)=1−sumk(k2)
在特征A的情况下,依照A是否取值a分为D1,D2数据集
G i n i ( D , A ) = ∣ D 1 ∣ ∣ D ∣ G i n i ( D 1 ) + ∣ D 2 ∣ ∣ D ∣ G i n i D 2 Gini(D,A) =\frac{|D_1|}{|D|}Gini(D_1) + \frac{|D_2|}{|D|}Gini{D_2} Gini(D,A)=∣D∣∣D1∣Gini(D1)+∣D∣∣D2∣GiniD2
理解:表示经过特征A切割(按照A取值分割数据集)后,集合的不确定性
5.3 CART生成算法
5.4 CART剪枝
C α ( T ) = C ( T ) + α ∣ T ∣ C_α(T)=C(T)+α|T| Cα(T)=C(T)+α∣T∣
C(T)为预测误差,|T|为子数的叶结点个数(复杂度)
使用α衡量复杂度的影响
5.5CART剪枝算法
理解:由于α不固定,因此我们需要获得各种α取值情况下的最优子树,则在剪枝过程中,α也逐渐增大,最终得到n棵子树,通过比较损失函数确定最优情况