顾名思义,决策树是基于树结构进行决策。决策树的训练通常由三部分组成:特征选择、树的生成、剪枝。
1.ID3决策树
以最大化信息增益为准则来选择划分属性。
假设离散属性a上有V个可能的取值{a1,...,aV}\{a^1,...,a^V\}{a1,...,aV},若使用a对样本集D进行划分,则会产生V个分支节点。其中第v个分支节点包含了D中所有在属性a上取值为ava^vav的样本,记为DvD^vDv。
maxGain(D,a)=Entropy(D)−Entropy(D∣a)=Entropy(D)−∑v=1V∣Dv∣∣D∣Entropy(Dv)max \quad Gain(D,a)=Entropy(D)-Entropy(D|a)
=Entropy(D)-\sum_{v=1}^V\frac{|D^v|}{|D|}Entropy(D^v)maxGain(D,a)=Entropy(D)−Entropy(D∣a)=Entropy(D)−v=1∑V∣D∣∣Dv∣Entropy(Dv)信息增益Gain(D,a)Gain(D,a)Gain(D,a)越大,则表示使用属性a进行划分所获得的纯度提升越大。
信息熵:越小则X的纯度越高。Entropy(X)=−∑x∈Xp(x)logp(x)Entropy(X)=-\sum_{x\in X} p(x)logp(x)Entropy(X)=−x∈X∑p(x)logp(x)条件熵:Entropy(Y∣X)=∑x∈Xp(x)Entropy(Y∣X=x)Entropy(Y|X)
=\sum_{x\in X}p(x)Entropy(Y|X=x)Entropy(Y∣X)=x∈X∑p(x)Entropy(Y∣X=x)
2.C4.5决策树
信息增益准则对取值数目较多的属性有所偏好,为了减少这种偏好可能带来的不利影响,C4.5决策树以最大化信息增益率为准则来选择划分属性。信息增益率代表单位代价所取得的信息量。maxGain_ratio(D,a)=Gain(D,a)Entropy(D,a)=Gain(D,a)−∑v=1V∣Dv∣∣D∣log∣Dv∣∣D∣max \quad Gain\_ratio(D,a)=\frac{Gain(D,a)}{Entropy(D,a)}=\frac{Gain(D,a)}{-\sum_{v=1}^V\frac{|D^v|}{|D|}log\frac{|D^v|}{|D|}}maxGain_ratio(D,a)=Entropy(D,a)Gain(D,a)=−∑v=1V∣D∣∣Dv∣log∣D∣∣Dv∣Gain(D,a)
联合熵:Entropy(X,Y)=−∑p(x,y)logp(x,y)Entropy(X,Y)=-\sum p(x,y)logp(x,y)Entropy(X,Y)=−∑p(x,y)logp(x,y)
3.CART决策树
以最小化基尼指数为准则来选择划分属性。
minGini_index(D,a)=∣DL∣∣D∣Gini(DL)+∣DR∣∣D∣Gini(DR)min \quad Gini\_index(D,a)=\frac{|D^L|}{|D|}Gini(D^L)+\frac{|D^R|}{|D|}Gini(D^R)minGini_index(D,a)=∣D∣∣DL∣Gini(DL)+∣D∣∣DR∣Gini(DR)
基尼值=样本被选中的概率*样本被分错的概率,基尼值越小则D的纯度越高。
Gini(D)=∑k=1Kpk(1−pk)=1−∑k=1Kpk2Gini(D)=\sum_{k=1}^Kp_k(1-p_k)=1-\sum_{k=1}^Kp_k^2Gini(D)=k=1∑Kpk(1−pk)=1−k=1∑Kpk2
CART 决策树既可以用于分类,也可以用于回归; 对回归树 CART 算法用平方误差最小化准则来选择特征,对分类树用基尼指数最小化准则选择特征
【例题1】:
【例题2】:
4.剪枝处理
- 预剪枝
事先给定阈值,使得很多分支没有展开,从而降低过拟合的风险 - 后剪枝
对多种不同的剪枝结果进行评价,选出最好的剪枝形式,评价方法是在训练误差和模型复杂度之间寻找一个平衡点。
5.特殊情况
- 连续变量:离散化处理(最简单:二分法,取中位点作为候选划分点)
- 缺失值:对每个样本赋予一个权重,推广信息增益公式