决策树小结

来源:互联网 发布:华云数据 融资 编辑:程序博客网 时间:2024/05/17 02:22

近来一些事情没有更博,今儿继续o(* ̄▽ ̄*)ブ


讲讲决策树,想写的主要原因是这玩意儿不咋用,关键面试听说还爱问= =


首先,决策树背后的思想其实无它,主要是信息论,简言之,我对每个特征进行一个信息量增益的权衡,假使通过这个特征我所能够了解的信息能够尽可能多(反应在分类上就是,通过一个特征能够把类别划分的更清晰)我们就选择该特征对样本空间进行划分


而书上决策树的信息度量方式主要有两种:1)信息熵;2)基尼系数;


信息熵的形式是-Σplogp。主要是度量不纯度,也就是不确定性,当样本空间中所有类别的概率相等的时候,信息熵最大,此时我们猜该样本的类别就相当于瞎蒙,,ԾㅂԾ,,

于是乎在这种情况下我们希望在划分样本空间后,样本类别的不确定性尽可能的小,所以我们用信息增益来度量每个特征,这就是ID3算法;


但ID3算法有个很尬尴的点在于它会选择选择取值较多的特征,为啥?

你想想看嘛,你选择一多,样本空间被划分成很多份,那么不确定性当然能减少(如果还不能想象,你就想象极端情况,把样本id当作一个样本特征,那么我们可以直接根据id来进行分类了)

这样好么?不好,因为这样生成的树又“矮”又“胖”,不仅长得猥琐还容易过拟合,我们希望我们的决策树是基于多方面的因素进行分类(即我们希望我们的决策树长得“匀称”些,太长也会过拟合的,,ԾㅂԾ,,


于是乎人们想出来在信息增益上加了一个分母用以矫正,这个矫正之后的项就是信息增益比


基尼系数则是用Σp(1-p),同理用基尼增益来选择特征节点


所以决策树的生成算法是这样的:

1)你把样本喂给一个Node,确认是否所有样本属于同一类别,是则停止,否则进入2);

2)选择最优特征使得信息增益最大,通过它划分Node,生成新的Node,同时根据特征划分样本,重复操作1)。


停下来思考两分钟,如何快速挑选特征,特别是连续性特征怎么处理,我之前写的贝叶斯是有两种方法,一是化成离散型特征,可行是可行,但你需要认为的把它转变为离散型特征,也就是需要认为的先验知识,感觉不大好(毕竟数据分析在我理解就是大程度上减少人为的因素);另一种是根据正态分布的假设来估算概率,好像套不进决策这个过程中(我们不想要矮胖的树= =)


绕远了,书上写的是采用启发式算法极小化平方误差来找最佳特征以及最优分割阈值,想了想,感觉好花时间,抿一下道听途说来的直方图方法怎么整的,找该连续特征所对应的直方图找低谷当作阈值?回头看看验证一下


这样生成的树正常情况下可能会很深,所以常规我们需要进行正则项,正则项可以是树的深度,叶节点的个数



原创粉丝点击