数据挖掘十大经典算法--cart:分类与回归树

yutingliuyl yutingliuyl     2022-09-06     295

关键词:

一、决策树的类型 
在数据挖掘中,决策树主要有两种类型:

分类树 的输出是样本的类标。
回归树 的输出是一个实数 (比如房子的价格,病人呆在医院的时间等)。

术语分类和回归树 (CART) 包括了上述两种决策树, 最先由Breiman 等提出.分类树和回归树有些共同点和不同点—比如处理在何处分裂的问题。

分类回归树(CART,Classification And Regression Tree)也属于一种决策树,之前我们介绍了基于ID3和C4.5算法的决策树。

这里仅仅介绍CART是如何用于分类的。

分类回归树是一棵二叉树,且每一个非叶子节点都有两个孩子,所以对于第一棵子树其叶子节点数比非叶子节点数多1。


CART与ID3差别:
CART中用于选择变量的不纯性度量是Gini指数。
假设目标变量是标称的,而且是具有两个以上的类别。则CART可能考虑将目标类别合并成两个超类别(双化);
假设目标变量是连续的。则CART算法找出一组基于树的回归方程来预測目标变量。


二、构建决策树

构建决策树时通常採用自上而下的方法,在每一步选择一个最好的属性来分裂。

"最好" 的定义是使得子节点中的训练集尽量的纯。不同的算法使用不同的指标来定义"最好"。本部分介绍一中最常见的指标。


有4中不同的不纯度量能够用来发现CART模型的划分,取决于目标变量的类型,对于分类的目标变量,能够选择GINI,双化或有序双化;
对于连续的目标变量。能够使用最小二乘偏差(LSD)或最小绝对偏差(LAD)。

以下我们仅仅讲GINI指数。


GINI指数:
1、是一种不等性度量;
2、通经常使用来度量收入不平衡,能够用来度量不论什么不均匀分布;
3、是介于0~1之间的数,0-全然相等。1-全然不相等。
4、整体内包括的类别越杂乱,GINI指数就越大(跟熵的概念非常相似)

CART分析步骤

1、从根节点t=1開始。从全部可能候选S集合中搜索使不纯性减少最大的划分S*,然后,使用划分S*将节点1(t=1)划分成两个节点t=2和t=3;
2、在t=2和t=3上分别反复划分搜索过程。

基尼不纯度指标
在CART算法中, 基尼不纯度表示一个随机选中的样本在子集中被分错的可能性。

基尼不纯度为这个样本被选中的概率乘以它被分错的概率。当一个节点中全部样本都是一个类时,基尼不纯度为零。

如果y的可能取值为{1, 2, ..., m},令fi是样本被赋予i的概率,则基尼指数能够通过例如以下计算:

比如:


上例是属性有8个。每个属性又有多少离散的值可取。在决策树的每个节点上我们能够按任一个属性的任一个值进行划分。比方最開始我们按:

1)表面覆盖为毛发和非毛发

2)表面覆盖为鳞片和非鳞片

3)体温为恒温柔非恒温

等等产生当前节点的左右两个孩子。以下我们按GINI指数划分有:

GINI指数

整体内包括的类别越杂乱,GINI指数就越大(跟熵的概念非常相似)。

比方体温为恒温时包括哺乳类5个、鸟类2个,则:

体温为非恒温时包括爬行类3个、鱼类3个、两栖类2个,则

所以假设依照“体温为恒温柔非恒温”进行划分的话,我们得到GINI的增益(类比信息增益):

最好的划分就是使得GINI_Gain最小的划分。

终止条件

一个节点产生左右孩子后,递归地对左右孩子进行划分就可以产生分类回归树。这里的终止条件是什么?什么时候节点就能够停止分裂了?直观的情况,当节点包括的数据记录都属于同一个类别时就能够终止分裂了。

这仅仅是一个特例。更一般的情况我们计算χ2值来推断分类条件和类别的相关程度。当χ2非常小时说明分类条件和类别是独立的,即依照该分类条件进行分类是没有道理的,此时节点停止分裂。注意这里的“分类条件”是指依照GINI_Gain最小原则得到的“分类条件”。

假如在构造分类回归树的第一步我们得到的“分类条件”是:体温为恒温柔非恒温。此时:



三、剪枝

决策树为什么(WHY)要剪枝?原因是避免决策树过拟合(Overfitting)样本。

前面的算法生成的决策树很具体而且庞大,每一个属性都被具体地加以考虑。决策树的树叶节点所覆盖的训练样本都是“纯”的。因此用这个决策树来对训练样本进行分类的话。你会发现对于训练样本而言。这个树表现完善。误差率极低且可以正确得对训练样本集中的样本进行分类。训练样本中的错误数据也会被决策树学习,成为决策树的部分,可是对于測试数据的表现就没有想象的那么好,或者极差,这就是所谓的过拟合(Overfitting)问题。Quinlan教授试验,在数据集中。过拟合的决策树的错误率比经过简化的决策树的错误率要高。

怎么剪枝

如今问题就在于,怎样(HOW)在原生的过拟合决策树的基础上,生成简化版的决策树?能够通过剪枝的方法来简化过拟合的决策树。

剪枝能够分为两种:预剪枝(Pre-Pruning)和后剪枝(Post-Pruning),以下我们来具体学习下这两种方法:
PrePrune:预剪枝。及早的停止树增长。方法能够參考见上面树停止增长的方法。
PostPrune:后剪枝,在已生成过拟合决策树上进行剪枝。能够得到简化版的剪枝决策树。
事实上剪枝的准则是怎样确定决策树的规模。能够參考的剪枝思路有下面几个:
1:使用训练集合(Training Set)和验证集合(Validation Set),来评估剪枝方法在修剪结点上的效用
2:使用全部的训练集合进行训练。可是用统计測试来预计修剪特定结点是否会改善训练集合外的数据的评估性能,如使用Chi-Square(Quinlan,1986)測试来进一步扩展结点能否改善整个分类数据的性能。还是只改善了当前训练集合数据上的性能。
3:使用明白的标准来衡量训练例子和决策树的复杂度,当编码长度最小时,停止树增长。如MDL(Minimum Description Length)准则。


1、Reduced-Error Pruning(REP,错误率减少剪枝)
该剪枝方法考虑将书上的每一个节点作为修剪的候选对象。决定是否修剪这个结点有例如以下步骤组成:
1:删除以此结点为根的子树
2:使其成为叶子结点
3:赋予该结点关联的训练数据的最常见分类
4:当修剪后的树对于验证集合的性能不会比原来的树差时,才真正删除该结点
由于训练集合的过拟合,使得验证集合数据可以对其进行修正,重复进行上面的操作,从底向上的处理结点。删除那些可以最大限度的提高验证集合的精度的结点。直到进一步修剪有害为止(有害是指修剪会减低验证集合的精度)
REP是最简单的后剪枝方法之中的一个,只是在数据量比較少的情况下。REP方法趋于过拟合而较少使用。这是由于训练数据集合中的特性在剪枝过程中被忽略。所以在验证数据集合比训练数据集合小的多时,要注意这个问题。
虽然REP有这个缺点,只是REP仍然作为一种基准来评价其他剪枝算法的性能。

它对于两阶段决策树学习方法的长处和缺点提供了了一个非常好的学习思路。

因为验证集合没有參与决策树的创建,所以用REP剪枝后的决策树对于測试例子的偏差要好非常多,可以解决一定程度的过拟合问题。
 
2、Pessimistic Error Pruning(PEP。悲观剪枝)
先计算规则在它应用的训练例子上的精度。然后假定此预计精度为二项式分布。并计算它的标准差。

对于给定的置信区间。採用下界预计作为规则性能的度量。这样做的结果,是对于大的数据集合,该剪枝策略可以很接近观察精度,随着数据集合的减小,离观察精度越来越远。该剪枝方法虽然不是统计有效的,可是在实践中有效。


PEP为了提高对測试集合的预測可靠性。PEP对误差预计添加了连续性校正(Continuity Correction)。

PEP方法觉得,假设:

成立,则Tt应该被剪枝,

上式中:


当中,e(t)为结点t出的误差;i为覆盖Tt的叶子结点。Nt为子树Tt的叶子树。n(t)为在结点t处的训练集合数量。PEP採用自顶向下的方式,假设某个非叶子结点符合上面的不等式。就裁剪掉该叶子结点。

该算法被觉得是当前决策树后剪枝算法中经度比較高的算法之中的一个。可是饿存在有缺陷。首先,PEP算法是唯一使用Top-Down剪枝策略。这样的策略会导致与先剪枝出现相同的问题,将该结点的某子节点不须要被剪枝时被剪掉;另外PEP方法会有剪枝失败的情况出现。
尽管PEP方法存在一些局限性,可是在实际应用中表现出了较高的精度,。

两外PEP方法不须要分离训练集合和验证机和。对于数据量比較少的情况比較有利。再者其剪枝策略比其他方法相比效率更高,速度更快。由于在剪枝过程中,树中的每颗子树最多须要訪问一次,在最坏的情况下,它的计算时间复杂度也仅仅和非剪枝树的非叶子节点数目成线性关系。

Cost-Complexity Pruning(CCP、代价复杂度)
CCP方法包括两个步骤:
1:从原始决策树T0開始生成一个子树序列{T0、T1、T2、...、Tn},当中Ti+1是从Ti总产生,Tn为根节点
2:从子树序列中,依据树的真实误差预计选择最佳决策树。

对于分类回归树中的每个非叶子节点计算它的表面误差率增益值α。

是子树中包括的叶子节点个数;

是节点t的误差代价。假设该节点被剪枝;

r(t)是节点t的误差率;

p(t)是节点t上的数据占全部数据的比例。

是子树Tt的误差代价,假设该节点不被剪枝。它等于子树Tt上全部叶子节点的误差代价之和。

比方有个非叶子节点t4如图所看到的:

比方有个非叶子节点t4如图所看到的:

已知全部的数据总共同拥有60条。则节点t4的节点误差代价为:

子树误差代价为:

以t4为根节点的子树上叶子节点有3个,终于:

找到α值最小的非叶子节点,令其左右孩子为NULL。

当多个非叶子节点的α值同一时候达到最小时,取最大的进行剪枝。

剪枝过程特别重要,所以在最优决策树生成过程中占有重要地位。

有研究表明。剪枝过程的重要性要比树生成过程更为重要。对于不同的划分标准生成的最大树(Maximum Tree),在剪枝之后都可以保留最重要的属性划分,区别不大。反而是剪枝方法对于最优树的生成更为关键。

cart分类与回归树

fromwww.jianshu.com/p/b90a9ce05b28本文结构:CART算法有两步回归树的生成分类树的生成剪枝CART-ClassificationandRegressionTrees分类与回归树,是二叉树,可以用于分类,也可以用于回归问题,最先由Breiman等提出。分类树的输出是样本的类别... 查看详情

数据挖掘领域经典算法——cart算法

简介CART与C4.5类似,是决策树算法的一种。此外,常见的决策树算法还有ID3,这三者的不同之处在于特征的划分:ID3:特征划分基于信息增益C4.5:特征划分基于信息增益比CART:特征划分基于基尼指数基本思想CART假设决策树是二... 查看详情

数据挖掘领域经典算法——cart算法

简介CART与C4.5类似,是决策树算法的一种。此外,常见的决策树算法还有ID3,这三者的不同之处在于特征的划分:ID3:特征划分基于信息增益C4.5:特征划分基于信息增益比CART:特征划分基于基尼指数基本思想CART假设决策树是二... 查看详情

cart分类与回归树与gbdt(gradientboostdecisiontree)

...的决策树,属于TopTenMachineLearningAlgorithm。顾名思义,CART算法既可以用于创建分类树(Class 查看详情

cart算法

参考技术ACART算法就是分类回归树,它只支持二叉树,既可以作分类树,又可以作回归树。那什么是分类树,什么是回归树呢?假如有个数据集,分别给出了,不同年龄、职业、性别的不同学习时间。如果我构造了一棵决策树,... 查看详情

cart分类回归树算法(代码片段)

CART分类回归树算法与上次文章中提到的ID3算法和C4.5算法类似,CART算法也是一种决策树分类算法。CART分类回归树算法的本质也是对数据进行分类的,最终数据的表现形式也是以树形的模式展现的,与ID3,C4.5算法... 查看详情

数据挖掘gbdt面试题:其中基分类器cart回归树,节点的分裂标准是什么?与rf的区别?与xgb的区别?

1、简单介绍GBDTGBDT(GradientBoostingDecisionTree)梯度提升决策树,理解为梯度提升+决策树。利用最速下降的近似方法,利用损失函数的负梯度拟合基学习器。利用损失函数的负梯度,替代提升树算法中的残差&#... 查看详情

数据挖掘十大经典算法

十大经典算法1)C4.5决策树是一种依托决策而建立起来的一种树。是一种预测模型,代表的是一种对象属性与对象值之间的一种映射关系。每一个节点代表一个对象,树中的每一个分叉路径代表某个可能的属性值,... 查看详情

十大经典预测算法七---随机森林

算法概述  随机森林,顾名思义就是由很多决策树融合在一起的算法,它属于Bagging框架的一种算法。  随机森林的“森林”,它的弱模型是由决策树算法训练的(CART算法),CART算法即能做回归也能做分类,“随机”是指构... 查看详情

机器学习算法决策树-5cart回归树法,m5回归树算法对cart算法改进了什么

目录Cart字段回归树算法CART回归树的字段选择方式:小插曲:M5如何利用模型树来提升CART回归树的效能继续CART字段选择方式我的主页:晴天qt01的博客_CSDN博客-数据分析师领域博主目前进度:第四部分【机器学习算... 查看详情

机器学习决策树理论第二卷

...on,相互学习,不足之处请大家多多指教!本卷的大纲为1CART算法1.1CART回归树1.2CART分类树2CART剪枝3总结1CART算法CART分类与回归树(classificationandregressiontree,CART)模型室友Breiman等人1984年提出,是应用广泛的决策 查看详情

18大经典数据挖掘算法小结

 18大经典数据挖掘算法小结本文所有涉及到的数据挖掘代码的都放在了我的github上了。地址链接: https://github.com/linyiqun/DataMiningAlgorithm大概花了将近2个月的时间,自己把18大数据挖掘的经典算法进行了学习并且进行了代码... 查看详情

数据挖掘十大经典算法

1、c4.5c4.5算法是机器学习算法中的一种分类决策树算法,其核心是ID3算法,c4.5算法继承了ID3算法的优点,并在一下几个放米娜对ID3算法进行了改进:1)用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的... 查看详情

十大经典算法

以下就是从参加评选的18种候选算法中,最终决选出来的十大经典算法:一、C4.5C4.5,是机器学习算法中的一个分类决策树算法,它是决策树(决策树也就是做决策的节点间的组织方式像一棵树,其实是一个倒树)核心算法,ID3的改... 查看详情

决策树算法

 在决策树算法原理(上)这篇里,我们讲到了决策树里ID3算法,和ID3算法的改进版C4.5算法。对于C4.5算法,我们也提到了它的不足,比如模型是用较为复杂的熵来度量,使用了相对较为复杂的多叉树,只能处理分类不能处理回归... 查看详情

数据挖掘十大经典算法

 一、C4.5 C4.5算法是机器学习算法中的一种分类决策树算法,其核心算法是ID3算法. C4.5算法继承了ID3算法的优点,并在以下几方面对ID3算法进行了改进: 1)用信息增益率来选择属性,克服了用信息增益选择属性时偏... 查看详情

决策树算法

 决策树算法在机器学习中算是很经典的一个算法系列了。它既可以作为分类算法,也可以作为回归算法,同时也特别适合集成学习比如随机森林。本文就对决策树算法原理做一个总结,上篇对ID3,C4.5的算法思想做了总结,下... 查看详情

李航统计学习方法(第二版):决策树cart算法

1简介1.1介绍   1.2生成步骤CART树算法由以下两步组成:(1)决策树生成:基于训练数据集生成决策树,生成的决策树要尽量大;(2)决策树剪枝:用验证数据集对己生成的树进行剪枝并选择最优子树,这时用损失函数址小作为剪... 查看详情