统计学习方法 决策树模型

1. 算法的提出

1984年Breiman等人提出CART算法;1986年Quinlan提出ID3算法,并在1993年提出C4.5算法
这是一种可用于二分类、多分类的一种非线性分类算法,也可用于回归(回归树)。

2. 算法的思想

基本思想:针对原始数据集,不断地选取一定的特征,然后根据此特征,把数据空间进行划分,从而一步步生成一棵类似树的分类模型,
基于这棵树,我们可以进行决策,因而叫决策树。

决策树可以看成一系列的if-then规则的集合,具备完备性与互斥性
决策树也可以理解成特征空间与类空间上的条件概率分布;训练过程可以理解成对特征空间的划分
决策树学习的本质是从训练数据集中归纳出一组分类规则,使其具有良好的分类能力与泛化能力。
模型训练的步骤:特征选择 + 树生成 + 树剪枝

3. 算法原理推导

(1)特征选择:决定用哪个特征来划分特征空间:信息增益、信息增益率、基尼系数
信息增益:表示得知特征X的信息而使得类Y的信息的不确定性减少的程度;信息增益越大,分类效果越好。
存在倾向于选择取值较多的特征的问题(问题的证明可使用极端思考的方式)
信息增益比:解决信息增益中的问题,原理同信息增益。选择使得信息增益率最大的特征进行分割。
基尼系数:是一种不确定性度量。代表样本集合经过某特征分割之后的不确定性,基尼指数越大,不确定性越大。选择使得基尼指数最小的特征进行分割。
(2)树生成:跟(1)中三种准则相对应的树生成算法是:ID3、C4.5、CART
(3)树剪枝:ID3的剪枝等价于 正则化的极大似然估计;
CART剪枝,自下而上不断剪枝,形成最优子树序列,然后通过交叉验证的方法选择最优子树。
ID3算法
树生成的过程相当于用极大似然函数估计;剪枝过程则相当于正则化的极大似然函数。

C4.5算法
主要是针对ID3算法中倾向于选择取值较多的特征进行分裂这个缺点进行修正。其他的同ID3算法
CART算法
可应用于回归,对应于最小二乘回归树,此时用均方误差作为损失函数;而用于分类的分类树使用Gini指数作为评判标准。

4. 算法应用(推广)

5. 算法的优缺点

优点
可读性强,可以解释,可以可视化
分类速度快,对中间值的缺失不敏感,可以处理不相关特征数据
缺点
容易造成过拟合,泛化能力弱;解决:可以考虑集成方法,随机森林
决策树可能是不稳定的,因为即使非常小的变异,可能会产生一颗完全不同的树
偏向于处理样本均衡的数据,不均衡时先进行抽样
没有考虑变量之间相关性,每次筛选都只考虑一个变量(因此不需要归一化)

6. 总结

决策树是一种非常直观的分类方法,可以抽取出分类规则,可视化树结构;有着较好的分类效果
在SVM出来之后被碾压,幸亏后来有了GBDT(梯度提升决策树)这个被称为机器学习界的屠龙宝刀,
才扳回一局.相关的方法有随机森林,一种基于决策树的集成方法.效果也是很ok的.
理解决策树的几个经典问题:
(1)决策树的本质
(2)决策树模型的构建步骤
(3)决策树的损失函数,如何推导
(4)怎么理解ID3 算法是等价于用极大似然法作为损失函数进行估计
(5)为何ID3 算法倾向于选择取值较多的特征进行分裂
(6)CART回归树中单元上最优值如何推导
(7)CART剪枝中,给定alpha 后的最优子树是唯一的如何证明

7. 参考

基尼指数比较有意思的理解
详细而繁琐的理论,有GBDT的点点东西
有随机森林的点点东西

8. 面试相关

(1)各种熵的计算
  熵、联合熵、条件熵、交叉熵、KL散度(相对熵) 互信息
熵用于衡量不确定性,所以均分的时候熵最大(离散时候是均匀分布,连续的时候是高斯分布,微分熵最大)
KL散度用于度量两个分布的不相似性,KL(p||q)等于交叉熵H(p,q)-熵H(p)。交叉熵可以看成是用q编码P所需的bit数,减去p本身需要的bit数,KL散度相当于用q编码p需要的额外bits。
交互信息Mutual information :I(x,y) = H(x)-H(x|y) = H(y)-H(y|x) 表示观察到x后,y的熵会减少多少。(y的值因为有了x观察后的不确定性的减少,用于决策树中的ID3 算法中的信息增益)
(2)常用的树搭建方法:ID3、C4.5、CART
  上述几种树分别利用信息增益、信息增益率、Gini指数作为数据分割标准。
其中信息增益衡量按照某个特征分割前后熵的减少程度,其实就是上面说的交互信息。
用上述信息增益会出现优先选择具有较多属性的特征,毕竟分的越细的属性确定性越高(这里可以利用极端的思考方式,比如说某特征有样本量大小的取值,则据此特征分类之后类别已经完全确定;
反之,当取值只有一个的时候对分类没有效用)。所以提出了信息增益率的概念,让含有较多属性的特征的作用降低。
CART树在分类过程中使用的基尼指数Gini,只能用于切分二叉树,而且和ID3、C4.5树不同,Cart树不会在每一个步骤删除所用特征。
(3)防止过拟合:剪枝
  剪枝分为前剪枝和后剪枝,前剪枝本质就是早停止,后剪枝通常是通过衡量剪枝后损失函数变化来决定是否剪枝。后剪枝有:错误率降低剪枝、悲观剪枝、代价复杂度剪枝
(4)前剪枝的几种停止条件
<1>节点中样本为同一类
<2><特征不足返回多类
<3>如果某个分支没有值则返回父节点中的多类
<4>样本个数小于阈值返回多类
(5)决策树于logistic回归的区别
决策树局部优化,在剪枝过程中才是全局;logistic 回归全局。

posted on 2019-03-12 11:25  仁在江湖飘  阅读(704)  评论(0编辑  收藏  举报

导航