决策树(decision tree)是一种基本的分类与回归方法,主要优点时模型具有可读性,分类速度快,学习时利用训练数据根据损失函数最小化的原则建立决策树模型。预测时,对新的数据,利用决策树模型进行分类。决策树学习通常包括三个步骤:特征选择,决策树的生成和决策树的修剪。
决策树学习的损失函数通常是正则化的极大似然函数,决策树学习的策略是以损失函数为目标函数的最小化。确定了损失函数后,学习问题就变为在损失函数意义下选择最优决策树的问题,但这是个NP完全问题,一般采用启发式算法来近似求解这一最优化问题。
1. 信息增益(ID3算法)
特征AAA对训练数据集DDD信息增益g(D,A)g(D,A)g(D,A),定义为集合DDD的经验熵H(D)H(D)H(D)与特征AAA给定条件下DDD的经验条件熵H(D∣A)H(D|A)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)
假设训练数据集为DDD,容量为∣D∣|D|∣D∣。有KKK个CkC_{k}Ck类,个数为∣Ck∣|C_{k}|∣Ck∣。特征AAA有n个不同的取值,根据这些取值会把DDD划分为n个子集,样本个数是∣Di∣|D_{i}|∣Di∣。DiD_{i}Di子集中属于CkC_{k}Ck类的样本个数是∣Dik∣|D_{ik}|∣Dik∣。那么通过计算选择出信息增益最大的特征作为切分点。H(D)=−∑k=1K∣Ck∣∣D∣log(∣Ck∣∣D∣)H(D)=-\sum_{k=1}^{K}\frac{|C_{k}|}{|D|}log(\frac{|C_{k}|}{|D|})H(D)=−k=1∑K∣D∣∣Ck∣log(∣D∣∣Ck∣) H(D∣A)=∑i=1n∣Di∣∣D∣H(Di)=−∑i=1n∣Di∣∣D∣∑k=1K∣Dik∣∣Di∣log(∣Dik∣∣Di∣)H(D|A)=\sum_{i=1}^{n}\frac{|D_{i}|}{|D|}H(D_{i})=-\sum_{i=1}^{n}\frac{|D_{i}|}{|D|}\sum_{k=1}^{K}\frac{|D_{ik}|}{|D_{i}|}log(\frac{|D_{ik}|}{|D_{i}|})H(D∣A)=i=1∑n∣D∣∣Di∣H(Di)=−i=1∑n∣D∣∣Di∣k=1∑K∣Di∣∣Dik∣log(∣Di∣∣Dik∣)
2. 信息增益比(C4.5生成算法)
以信息增益作为划分训练数据的特征,存在偏向于选择取值较多的特征的问题,使用信息增益比可以解决这个问题。
gR(D,A)=g(D,A)HA(D)HA(D)=−∑i=1n∣Di∣∣D∣log(∣Di∣∣D∣)g_{R}(D,A)=\frac{g(D,A)}{H_{A}(D)}\qquad H_{A}(D)=-\sum_{i=1}^{n}\frac{|D_{i}|}{|D|}log(\frac{|D_{i}|}{|D|})gR(D,A)=HA(D)g(D,A)HA(D)=−i=1∑n∣D∣∣Di∣log(∣D∣∣Di∣)
3. 基尼指数(CART分类与回归树)
分类问题中,假设有K个类,样本点属于第kkk类的概率为pkp_{k}pk,则概率分布的基尼指数为Gini(p)=∑k=1Kpk(1−pk)=1−∑k=1Kpk2Gini(p)=\sum_{k=1}^{K}p_{k}(1-p_{k})=1-\sum_{k=1}^{K}p_{k}^{2}Gini(p)=k=1∑Kpk(1−pk)=1−k=1∑Kpk2对于给定的样本集合DDD,基尼指数为Gini(D)=1−∑k=1K(∣Ck∣∣D∣)2Gini(D)=1-\sum_{k=1}^{K}(\frac{|C_{k}|}{|D|})^{2}Gini(D)=1−k=1∑K(∣D∣∣Ck∣)2在特征AAA(是否是A,所以只有两类情况)的条件下,集合DDD的基尼指数定义为Gini(D,A)=∣D1∣∣D∣Gini(D1)+∣D2∣∣D∣Gini(D2)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∣Gini(D2)