决策树(上)-ID三、C4.五、CART

参考资料(要是对于本文的理解不够透彻,必须将如下博客认知阅读,方可全面了解决策树):git

1.https://zhuanlan.zhihu.com/p/85731206github

2.https://zhuanlan.zhihu.com/p/29980400算法

3.https://github.com/Vay-keen/Machine-learning-learning-notes/blob/master/%E5%91%A8%E5%BF%97%E5%8D%8E%E3%80%8AMachine%20Learning%E3%80%8B%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0(5)--%E5%86%B3%E7%AD%96%E6%A0%91.mddom


决策树是一个很是常见而且优秀的机器学习算法,它易于理解、可解释性强,其可做为分类算法,也可用于回归模型。本文将分三篇介绍决策树,第一篇介绍基本树(包括 ID三、C4.五、CART),第二篇介绍 Random Forest、Adaboost、GBDT,第三篇介绍 Xgboost 和 LightGBM。机器学习

在进入正题以前,先让咱们了解一些有关信息论的知识!性能

信息论

1.信息熵

在决策树算法中,熵是一个很是很是重要的概念。一件事发生的几率越小,咱们说它所蕴含的信息量越大。好比:咱们听女人能怀孕不奇怪,若是某天听到哪一个男人怀孕了,咱们就会以为emmm…信息量很大了。学习

因此咱们这样衡量信息量:测试

 

 其中,P(y)是事件发生的几率。信息熵就是全部可能发生的事件的信息量的指望:优化

表达了Y事件发生的不肯定度。spa

决策树属性划分算法

众所周知,决策树学习的关键在于如何选择最优划分属性,通常而言,随着划分过程不断进行,咱们但愿决策树的分支结点所包含的样本尽量属于同一类别,即结点的“纯度”愈来愈高。

1.ID3

(1)思想

从信息论的知识中咱们知道:信息熵越大,从而样本纯度越低,。ID3 算法的核心思想就是以信息增益来度量特征选择,选择信息增益最大的特征进行分裂。算法采用自顶向下的贪婪搜索遍历可能的决策树空间(C4.5 也是贪婪搜索)。

(2)划分标准(详细过程以及公式推导见西瓜书便可)

ID3算法使用信息增益为准则来选择划分属性,“信息熵”(information entropy)是度量样本结合纯度的经常使用指标,假定当前样本集合D中第k类样本所占比例为pk,则样本集合D的信息熵定义为:

3.png

假定经过属性划分样本集D,产生了V个分支节点,v表示其中第v个分支节点,易知:分支节点包含的样本数越多,表示该分支节点的影响力越大。故能够计算出划分后相比原始数据集D得到的“信息增益”(information gain)。

4.png

信息增益越大,表示使用该属性划分样本集D的效果越好,所以ID3算法在递归过程当中,每次选择最大信息增益的属性做为当前的划分属性。

(3)缺点

  • ID3 没有剪枝策略,容易过拟合;
  • 信息增益准则对可取值数目较多的特征有所偏好,相似“编号”的特征其信息增益接近于 1;
  • 只能用于处理离散分布的特征;
  • 没有考虑缺失值。

 

2. C4.5

2.1 思想

C4.5 算法最大的特色是克服了 ID3 对特征数目的偏重这一缺点,引入信息增益率来做为分类标准。

C4.5 相对于 ID3 的缺点对应有如下改进方式:

  • 引入悲观剪枝策略进行后剪枝;
  • 引入信息增益率做为划分标准;
  • 能够处理连续值:将连续特征离散化,假设 n 个样本的连续特征 A 有 m 个取值,C4.5 将其排序并取相邻两样本值的平均数共 m-1 个划分点,分别计算以该划分点做为二元分类点时的信息增益,并选择信息增益最大的点做为该连续特征的二元离散分类点;
  • 能够处理缺失值:对于缺失值的处理能够分为两个子问题:
  • 问题一:在特征值缺失的状况下进行划分特征的选择?(即如何计算特征的信息增益率)
  • 问题二:选定该划分特征,对于缺失该特征值的样本如何处理?(即到底把这个样本划分到哪一个结点里)
  • 针对问题一,C4.5 的作法是:对于具备缺失值特征,用没有缺失的样本子集所占比重来折算;
  • 针对问题二,C4.5 的作法是:将样本同时划分到全部子节点,不过要调整样本的权重值,其实也就是以不一样几率划分到不一样节点中。

2.2 划分标准

利用信息增益率能够克服信息增益的缺点,其公式为:

5.png

 

注意:信息增益率对可取值较少的特征有所偏好(分母越小,总体越大),所以 C4.5 并非直接用增益率最大的特征进行划分,而是使用一个启发式方法:先从候选划分特征中找到信息增益高于平均值的特征,再从中选择增益率最高的。

2.3 剪枝策略(预剪枝+后剪枝)

决策树解决过拟合的主要方法:剪枝、随机森林

2.3.1 预剪枝

(1) 在决策树生成过程当中,对每一个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提高,则中止划分并将当前结点标记为叶结点。在构造的过程当中先评估,再考虑是否分支。衡量决策树泛化性能提高的方法:

  • 节点内数据样本低于某一阈值;
  • 全部节点特征都已分裂;
  • 节点划分前准确率比划分后准确率高。

(2)优缺点

  • 下降过拟合风险、显著减小决策树的训练时间开销和测试时间开销。
  • 预剪枝基于“贪心”策略,有可能会带来欠拟合风险。
2.3.2 后剪枝(C4.5采用的是基于后剪枝的悲观剪枝方法)

(1) 后剪枝是先从训练集生成一棵完整的决策树,而后自底向上地对非叶子结点进行考察,若将该结点对应的子树替换为叶结点能带来决策树泛化性能提高,则将该子树替换为叶结点。

(2) 后剪枝决策树的欠拟合风险很小,泛化性能每每优于预剪枝决策树。但同时其训练时间会大的多。

2.4 缺点

  • 剪枝策略能够再优化;
  • C4.5 用的是多叉树,用二叉树效率更高;
  • C4.5 只能用于分类;
  • C4.5 使用的熵模型拥有大量耗时的对数运算,连续值还有排序运算;
  • C4.5 在构造树的过程当中,对数值属性值须要按照其大小进行排序,从中选择一个分割点,因此只适合于可以驻留于内存的数据集,当训练集大得没法在内存容纳时,程序没法运行。

 

3. CRAT

ID3 和 C4.5 虽然在对训练样本集的学习中能够尽量多地挖掘信息,可是其生成的决策树分支、规模都比较大,CART 算法的二分法能够简化决策树的规模,提升生成决策树的效率。

3.1 思想

CART 在 C4.5 的基础上进行了不少提高。

  • C4.5 为多叉树,运算速度慢,CART 为二叉树,运算速度快;
  • C4.5 只能分类,CART 既能够分类也能够回归;
  • CART 使用 Gini 系数做为变量的不纯度量,减小了大量的对数运算;
  • CART 采用代理测试来估计缺失值,而 C4.5 以不一样几率划分到不一样节点中;
  • CART 采用“基于代价复杂度剪枝”方法进行剪枝,而 C4.5 采用悲观剪枝方法。

3.2 划分标准

CART决策树(分类树)使用“基尼指数”(Gini index)来选择划分属性,基尼指数反映的是从样本集D中随机抽取两个样本,其类别标记不一致的几率,所以Gini(D)越小越好,这和信息增益(率)正好相反,基尼指数定义以下:

6.png

进而,使用属性α划分后的基尼指数为:

7.png

 

3.3 剪枝策略

采用一种“基于代价复杂度的剪枝”方法进行后剪枝,这种方法会生成一系列树,每一个树都是经过将前面的树的某个或某些子树替换成一个叶节点而获得的,这一系列树中的最后一棵树仅含一个用来预测类别的叶节点。而后用一种成本复杂度的度量准则来判断哪棵子树应该被一个预测类别值的叶节点所代替。这种方法须要使用一个单独的测试数据集来评估全部的树,根据它们在测试数据集熵的分类性能选出最佳的树。

3.4类别不平衡

CART 的一大优点在于:不管训练数据集有多失衡,它均可以将其消除不须要建模人员采起其余操做。

CART 使用了一种先验机制,其做用至关于对类别进行加权。这种先验机制嵌入于 CART 算法判断分裂优劣的运算里,在 CART 默认的分类模式中,老是要计算每一个节点关于根节点的类别频率的比值,这就至关于对数据自动重加权,对类别进行均衡。

3.5 回归树

CART(Classification and Regression Tree,分类回归树),从名字就能够看出其不只能够用于分类,也能够应用于回归。其回归树的创建算法上与分类树部分类似,这里简单介绍下不一样之处。

3.6.1 连续值处理

对于连续值的处理,CART 分类树采用基尼系数的大小来度量特征的各个划分点。在回归模型中,咱们使用常见的和方差度量方式,对于任意划分特征 A,对应的任意划分点 s 两边划分红的数据集 [公式] 和 [公式] ,求出使 [公式] 和 [公式] 各自集合的均方差最小,同时 [公式] 和 [公式] 的均方差之和最小所对应的特征和特征值划分点。表达式为:

[公式]

其中, [公式] 为 [公式] 数据集的样本输出均值, [公式] 为 [公式] 数据集的样本输出均值。

3.6.2 预测方式

对于决策树创建后作预测的方式,上面讲到了 CART 分类树采用叶子节点里几率最大的类别做为当前节点的预测类别。而回归树输出不是类别,它采用的是用最终叶子的均值或者中位数来预测输出结果。

 

4.总结

最后经过总结的方式对比下 ID三、C4.5 和 CART 三者之间的差别。

除了以前列出来的划分标准、剪枝策略、连续值确实值处理方式等以外,我再介绍一些其余差别:

  • 划分标准的差别:ID3 使用信息增益偏向特征值多的特征,C4.5 使用信息增益率克服信息增益的缺点,偏向于特征值小的特征,CART 使用基尼指数克服 C4.5 须要求 log 的巨大计算量,偏向于特征值较多的特征。
  • 使用场景的差别:ID3 和 C4.5 都只能用于分类问题,CART 能够用于分类和回归问题;ID3 和 C4.5 是多叉树,速度较慢,CART 是二叉树,计算速度很快;
  • 样本数据的差别:ID3 只能处理离散数据且缺失值敏感,C4.5 和 CART 能够处理连续性数据且有多种方式处理缺失值;从样本量考虑的话,小样本建议 C4.五、大样本建议 CART。C4.5 处理过程当中需对数据集进行屡次扫描排序,处理成本耗时较高,而 CART 自己是一种大样本的统计方法,小样本处理下泛化偏差较大 ;
  • 样本特征的差别:ID3 和 C4.5 层级之间只使用一次特征,CART 可屡次重复使用特征;
  • 剪枝策略的差别:ID3 没有剪枝策略,C4.5 是经过悲观剪枝策略来修正树的准确性,而 CART 是经过代价复杂度剪枝
相关文章
相关标签/搜索