决策树 (Decision tree) 是一种基本的分类与回归方法。决策树学习的目的是为了生成一颗泛化能力强,即处理未见示例能力强的决策树,其基本流程遵循简单而直观的分治策略。
通俗理解:给定一个输入值,从树节点不断往下走,直至走到叶节点,这个叶节点就是对输入值的一个预测或者分类。
一、最优化分属性的选择
1.ID3(Iterative Dichotomiser 3,迭代二叉树3代)
信息熵:熵是热力学中的概念,是一种测量在动力学方面不能做功的能量总数,也就是当总体熵的增加,其做功能力也下降,熵的量度正是能量退化的指标——维基百科。香农将“熵”的概念引入到了信息论中,故在信息论中被称为信息熵,它是对不确定性的测量,熵越高,不确定性越大,熵越低,不确定性越低。
信息增益:IG(A) = H(D) – H(D|A)。D表示样本集,A表示属性(或特征),IG(A)表示特征A的信息增益,H(D)表示样本的信息熵,H(D|A)表示特征A对样本集D的经验条件熵,即条件概率分布。
2.C4.5
此算法也是由ID3算法的发明者Ross Quinlan所改进,那说明它们既有相同点也有不同点,相同点就是同样是基于信息熵,不同点就是ID3使用的是信息增益来作为选择分裂特征,而C4.5使用的则是信息增益率。
采用信息增益来进行划分属性的决策有一个潜在的问题,当某一个属性的取值种类非常多时,对应每一个属性取值的样本子集,其分类的信息熵可能会变得很小。为了说明,采用一种极端情况,假设我们对上一节中要分类的西瓜数据进行决策树生成时,把“编号”也当作一种可以作为划分依据的属性。则在这种情况下,每一个编号属性对应一个实例,且其分类是确定的,那么对于每一个“编号”属性取值来说,其分类信息熵为 0,最后计算出来的信息增益很大。但是显然,用“编号”属性来作为结点的划分是没有意义的。思考其中的问题在于,对数函数并不是线性的,信息量的减少速度大于类别数量的增加速度。信息增益准则对取值数目较多的属性有所偏好,为了减小这种偏好,C4.5 决策树 采用 信息增益率 (gain ratio) 来选择最优划分属性。其定义如下:
信息增益IG(A)已给出,此处不再重复。
选择增益率最大的特征。
3.CART(Classification and Regression Trees,分类回归树)
ID3、C4.5和CART都是决策树模型的经典算法。决策树不仅可以用来分类,同时它也可以做回归,CART就是既可以用作分类也可以用作回归。它是由Leo Breiman, Jerome Friedman, Richard Olshen与Charles Stone于1984年提出的。
Gini指数。与ID3和C4.5通过信息熵来确定分裂特征不同,CART通过一个叫基尼指数来确定分裂特征。基尼指数和信息熵类似,都是数值越大其不确定性越大,之所以选用基尼指数是因为相对于信息熵的计算更快一些。
CART算法其核心公式就是基尼指数的计算,基尼指数越大不确定越大,基尼指数的计算公式为:
其中pi是D中元组中Ci类的概率。
计算各个特征的基尼指数,选取最小的作为分裂特征。
二、决策树剪枝