机器学习算法——决策树

决策树(Decession Tree) 算法用处很多,而且还是一些集成算法的基础。它的基本原理是:选取某个特征属性,按照特征值来讲最初的样本集分开成两个节点,对分开的节点再选取特征进行划分生成新的节点,一直递归地划分下去直到满足一定条件为止(全部叶子节点中都是一类,或者树的层数、宽度达到一定数值)。这个过程有点像有一堆混在一起的豆子,我们手上有几种筛子,通过几次筛选后讲不通的豆子分开,这个“筛子”对样本筛过和留下的标准就是其选取的某个特征值。对于构建好的模型,我们只需把要预测的数据放进去,通过层层“筛子”后,漏在哪个类那么其分类结果就是哪个了。

那么关键就是如何选取根节点了。根据选取根据的标准不同,产生了三种不同的决策树算法:ID3、C4.5、CART。

ID3产生节点划分的依据是“最大信息熵增益”,也就是选择能使节点中样本整体的“信息熵”减小程度最多的那个特征值最为划分依据。“熵”是表征整体样本中混乱度的一个值,熵值越大,样本中的不确定度也越大。一个具体计算如下:

                                           

ID3最大的问题是它的居于贪心算法的,也就是说它对于特征的选取以及样本的划分只是基于当前的“最大信息熵增益”,并不一定会产生全局最优的决策树。当前最佳的特征来分割数据,并按照该特征的所有取值来切分,也就是说如果一个特征有4种取值,数据将被切分4份,一旦按某特征切分后,该特征在之后的算法执行中,将不再起作用,所以有观点认为这种切分方式过于迅速。

C4.5是在ID3的基础上进行改进的。ID3一般会优先选择有较多属性值的特征,因为这样数据就会被划分成更多份,会有相对较大的信息熵增益。为了避免这个不足,C4.5使用信息增益率(gain ratio)来作为选择分支的准则。信息增益比率通过引入一个被称作分裂信息(Split information)的项来惩罚取值较多的特征,也就是说前面的最大信息熵增益还要除以一个数据子集自身的熵值。具体算法如下:

                                             

C4.5还解决了ID3中不能处理特征属性值连续的问题,但是对连续属性值的扫描排序会使C4.5性能下降。C4.5对连续属性值的处理是对连续纸进行离散化,例如某特征属性值为连续的,在样本中有[60, 70, 75, 80, 85, 90, 95, 100]这8个值,那么可以有7中划分的方法,在这7种中选取一种能使Gain Rate最大的,就可以确定划分的方法了。

CART(Classification and Regression tree)采用二元划分,是一棵二叉树。CART使用基尼系数(Gini)来选择最好的数据分割的特征,Gini系数描述的是纯度,与信息熵的含义相似。Gini系数的计算如下:

                                                  

ID3和C4.5根据属性值分割数据之后,该特征就不会再用了,这种快速切割的方式会影响算法的准确率,CART中避免了这个缺点。相比ID3和C4.5,CART应用要多一些,既可以用于分类也可以用于回归。

对于分类树,我们知道ID3、C4.5分类树在每次分枝时,是穷举每一个特征属性的每一个阈值,找到使得按照feature<=阈值和feature>阈值分成的两个分枝的信息熵增益(或者增益率)最大的特征和阈值。按照该标准分枝得到两个新节点,然后接着使用同样方法继续分枝,直到所有数据样本点都被分入性别唯一的叶子节点,或达到预设的终止条件,若最终叶子节点中的性别不唯一,则以多数人的性别作为该叶子节点的性别。

而回归树流程也是类似,不过在每个节点(不一定是叶子节点)都会得一个预测值,以售价为例,该预测值等于属于这个节点的所有样本售价的平均值。分枝时穷举每个特征的每个阈值找最好的分割点,但衡量最好的标准不再是最大熵,而是最小化均方差,即∑(实际售价-预测售价)^2  / N。这很好理解,被预测出错的个数越多,错的越离谱,均方差就越大,通过最小化均方差能够找到最靠谱的分枝依据。分枝直到每个叶子节点上样本的售价都唯一(这太难了)或者达到预设的终止条件(如叶子中样本的方差小于特定阈值,或者叶子个数上限),若最终叶子节点中各样本的售价不唯一,则以该节点上所有样本的平均售价做为该叶子节点的预测售价。

最好还要讲下剪枝,决策树的剪枝是为了防止过拟合风险,比如决策树任意发展下去成为一个叶子节点只包含一个样本的情况,这样讲样本集分开的纯度很高,但是是没有什么实际意义的。剪枝分为两种:预剪枝和后剪枝。预剪枝是边建立决策树边进行剪枝的操作,这种在实际操作中更常用也更实际。后剪枝是在建立完决策树后再进行剪枝操作,使用的比较少。

下面总结优缺点:

 决策树
优点

1)决策树算法中学习简单的决策规则建立决策树模型的过程非常容易理解;

2)决策树模型可以可视化,非常直观,解释性强;

3)应用范围广,可用于分类和回归,而且非常容易做多类别的分类;

4)能够处理数值型和连续的样本特征;

缺点

1)很容易在训练数据中生成复杂的树结构,造成过拟合,剪枝可以缓解过拟合的负作用,常用方法是限制树的高度、叶子节点中最少样本数量等;

2)学习一棵最优的决策树被认为是NP-Complete问题,实际中的决策树是基于启发式的贪心算法建立的,这种算法不能保证建立全局最优的决策树,随机森林引入随机能缓解这个问题。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值