决策树学习的特征选择
来源:互联网 发布:java继承 编辑:程序博客网 时间:2024/06/06 00:09
本文新的链接地址:点击打开 本人新博客地址:点击打开
决策树学习
决策树学习通常包含三个方面:特征选择、决策树生成和决策树剪枝。决策树学习思想主要来源于:Quinlan在1986年提出的ID算法、在1993年提出的C4.5算法和Breiman等人在1984年提出的CART算法。
特征选择
为了解释清楚各个数学概念,引入例子
- 信息熵(entropy)
引入概念,对于第一个要用到的概念:信息熵在另外一篇博客——数据压缩与信息熵中详细解释了信息熵为什么度量的是不确定性,下文也不再赘述,直接引用。
设D为按照目标类别(或称目标属性)对训练数据(即样本数据)进行的划分,则D的信息熵(information entropy)表示为:
其中pi表示第i个类别在整个训练数据中出现的概率,可以用属于此类别元素的数量除以训练数据(即样本数据)总数量作为估计。
具体问题具体分析
在上表中目标类别:是否发放贷款,将9个发放归为一类,剩余6个不发放归为一类,这样进行分类的信息熵为:
注:这个根据目标类别分类得出的信息熵,在样本给出的情况下就已经知晓,根据概率统计,也称经验熵。
现在我们假设将训练数据D按属性A进行划分,则按A属性进行分裂出的v个子集(即树中的v个分支),这些子集按目标类别(发放与不发放两类)进行分类所对应的熵的期望(即:按属性A划分出不同子集的信息熵的平均值):
注:这个实际上是经验条件熵,因为确认是在A属性划分出子集的前提下再按照目标类别分类得出的熵的期望,见下文信息增益计算就可以一目了然。
- 信息增益(information gain)
为上述两者的差值:
具体问题具体分析
- 按照年龄属性(记为A1)划分:青年(D1表示),中年(D2表示),老年(D3表示)
- 按照是否有工作(记为A2)划分:有工作(D1表示),无工作(D2表示)
- 按照是否有自己房子(记为A3)划分:有自己房子(D1表示),无自己房子(D2表示)
- 同理,根据最后一个属性:信贷情况算出其信息增益:
所以可以看出信息增益度量的是:信息熵的降低量,这个降低是经过某个属性对原数据进行划分得出的。信息熵的降低,即确定性的提高,进一步讲,就是类别的数量在下降,那么确定为哪一类的可能性就提高,这样就更容易分类了。ID3算法就是基于信息增益来衡量属性(即特征)划分数据的能力,进而为特征(即属性)选择提供原则。
增益比率(gain ratio)
信息增益选择方法有一个很大的缺陷,它总是会倾向于选择属性值多的属性,如果我们在上面的数据记录中加一个姓名属性,假设15条记录中的每个人姓名不同,那么信息增益就会选择姓名作为最佳属性,因为按姓名分裂后,每个组只包含一条记录,而每个记录只属于一类(要么发放要么不发放),因此不确定性最低,即纯度最高,(注:为什么最高呢?大家可以根据导数计算一下,最大值的情况,这里不赘述)以姓名作为测试分裂的结点下面有15个分支。但是这样的分类没有意义,它没有任何泛化能力。增益比率对此进行了改进,它引入一个分裂信息:
注:分裂信息即按照某个属性划分的信息熵,而本文前面叙述的熵全部是按照目标属性进行分类的信息熵。
增益比率定义为信息增益与分裂信息的比率:
我们找GainRatio最大的属性作为最佳分裂属性。如果一个属性的取值很多,那么SplitInfoR(D)会大,从而使GainRatio(R)变小。不过增益比率也有缺点,SplitInfo(D)可能取0,此时没有计算意义;且当SplitInfo(D)趋向于0时,GainRatio(R)的值变得不可信,改进的措施就是在分母加一个平滑,这里加一个所有分裂信息的平均值:
C4.5算法就是按照信息增益比来计算各属性的分类能力,进而为特征(即属性)选择提供原则。
基尼指数(Gini coefficient)
定义(基尼指数):在分类问题中,假设有K个类,样本点属于第K类的概率为p(k),则概率分布的基尼指数定义为
对于给定的样本集合D的基尼指数为:
这里,C(k)是D中属于第k类的样本子集,K是类的个数。
如果样本集合D根据特征A是否取某一可能值α被分割成D1和D2两部分,即
则在特征A的条件下,集合D的基尼指数定义为
基尼指数Gini(D)表示集合D的不确定性,基尼指数Gini(D, A)表示经A=α分割后集合D的不确定性。基尼指数值越大,样本集合的不确定性也就越大,这一点与熵相似。
ID3算法
信息增益算法
ID3算法
示例
C4.5生成算法
CART生成算法
- 示例
- 决策树学习的特征选择
- 机器学习实战之决策树(2)---选择最好的特征来划分数据集
- 机器学习笔记(八)——决策树模型的特征选择
- 【机器学习系列之六】决策树中的特征选择及树的剪枝()
- 决策树1---特征选择(信息增益)
- 机器学习中的特征选择——决策树模型预测泰坦尼克号乘客获救实例
- 特征选择与特征学习
- 特征选择与特征学习
- 特征选择与特征学习
- 特征选择与特征学习
- 机器学习中特征降维和特征选择的区别
- 机器学习中特征降维和特征选择的区别
- 机器学习的特征选择(feature selection)
- 【特征工程】特征选择与特征学习
- 【特征工程】特征选择与特征学习
- 机器学习--特征选择
- 机器学习:特征选择
- 机器学习-特征选择
- view的setTag() 和 getTag()应用
- java 类的声明周期
- 数字图像处理(毕设)过程中遇到的MATLAB小技巧
- How to make a ipcamera
- 深入理解java异常处理机制
- 决策树学习的特征选择
- android sdk离线安装
- Hibernate与 MyBatis的比较
- 8 UVA 10790 How Many Points of Intersection?
- 4.29总结
- 使用instancetype替代id的好处
- DNS(域名系统)
- java 拦截器、过滤器、监听器
- 如何快糙好猛地在Windows下编译CAFFE并使用其matlab和python接口