2、决策树ID3、C4.5、CART

转载 2016年08月30日 22:18:11

转自http://blog.csdn.net/qq_16365849/article/details/50644476#

决策树

1、决策树概念

决策树(decision tree)也称为分类树(分类)或者回归树(数值预测)。是一种有监督的机器学习算法,是一个分类算法。在给定训练集的条件下,生成一个自顶而下的决策树,树的根为起点,树的叶子为样本的分类,从根到叶子的路径就是一个样本进行分类的过程。 
决策树(decision tree):是一个树结构(可以是二叉树或非二叉树)。其每个非叶节点表示一个特征属性上的测试,每个分支代表这个特征属性在某个值域上的输出,而每个叶节点存放一个类别。使用决策树进行决策的过程就是从根节点开始,测试待分类项中相应的特征属性,并按照其值选择输出分支,直到到达叶子节点,将叶子节点存放的类别作为决策结果。决策树优点:1)模型容易展示:决策树模型可读性好,具有描述性,有助于人工分析;2)效率高,决策树只需要一次构建,反复使用。3)训练时间复杂度较低,预测的过程比较快速,每一次预测的最大计算次数不超过决策树的深度

2、ID3、C4.5、CART的区别

一)ID3算法:只能处理离散型的数据

ID3算法用于决策树建立的过程: 
(1)对于当前的所有样本集合,计算每个属性的信息增益(即划分前后数据集的熵的差异) 
(2)选择信息增益最大的属性(假设为Ai) 
(3)把在Ai处取值相同的样本归于同一个子集,Ai有几个属性,就合成几个子集 
(4)重复以上的三个过程,直到结束(熵值为0或者一个阈值) 
ID3算法使用的是自顶向下的贪婪搜索遍历可能的决策树空间构造,属于局部最优,不一定全局最优。

停止条件为: 
1)该节点的所有样本属于同一类,该节点成为叶节点,存放相应的类别。 
2)所有的属性都已被父节点或祖先使用。这种情况下,该节点成为叶节点,并以样本中元组个数最多的类别作为类别标记,同时也可以存放该结点样本的类别分布。

缺点: 
1)容易造成过度拟合(over fitting); 
2)只能处理标称型数据(离散型); 
3)信息增益的计算依赖于特征数目较多的特征,而属性取值最多的属性并不一定最优; 
4)抗噪性差,训练例子中正例和反例的比例较难控制

二)C4.5算法:

可以处理连续型和离散型的数据,处理连续型的数据时和CART的回归树处理方法类似 
C4.5是另一种决策树构造算法,它是上文ID3的一个改进。主要的差别如下: 
(1)用信息增益率代替信息增益来选择属性,ID3选择属性用的是子树的信息增益,而C4.5用的是信息增益率。克服了用信息增益选择属性时偏向选择取值多的属性的不足。 
(2)在树构造过程中进行剪枝。合并相邻的无法产生大量信息增益的叶节点,消除过渡匹配问题。 
(3)既能处理标称型数据,又能连续型数据。为了处理连续型数据,该算法在相应的节点使用一个属性的阈值,利用阈值将样本划分成两部分。 
(4)能处理缺失了一些属性的数据。该算法允许属性值缺失时被标记为?,属性值缺失的样本在计算熵增益时被忽略。 
C4.5的优点:产生的分类规则易于理解,准确率较高。 
C4.5的缺点: 
1:算法低效,在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效 
2:内存受限,只适合于能够驻留于内存的数据集,当训练集大得无法在内存容纳时程序无法运行。 
另外,无论是ID3还是C4.5最好在小数据集上使用,决策树分类一般只适用于小数据。当属性取值很多时最好选择C4.5算法,ID3得出的效果会非常差。

三)CART算法(Classification And Regression Tree):回归树

CART中文叫分类与回归树,既可以用于分类也可以用于回归,回归树其实并没有使用线性回归,而是使用到达叶子节点的样本的均值。CART(分类与回归)模型既可以用于分类、也可以用于回归,对于回归树(最小二乘回归树生成算法),需要寻找最优切分变量和最优切分点,对于分类树(CART生成算法),使用基尼指数选择最优特征。 
CART也是决策树的一种生成算法,主要的差别在于CART的决策是二叉树的,它同样可以处理离散值,但是,只能选择其中一种来把数据分成两个部分。 
CART与ID3区别:ID3和CART算法的区别主要集中在树的生成和树的修剪方面,但是ID3算法只能处理离散型的描述性属性 
1)CART中用于选择属性的不纯性度量是Gini指数; 
2)如果目标变量是标称的,并且是具有两个以上的类别,则CART可能考虑将目标类别合并成两个超类别(双化); 
3)如果目标变量是连续的,则CART算法找出一组基于树的回归方程来预测目标变量。

回归树的缺点:不如线性回归普遍;要求大量训练数据;难以确定某个特征的整体影响;比线性回归模型难解释

基尼不纯度是一种度量集合有多纯的方法,如果集合里面的值都是一个数的话,则基尼不纯度的值为0,随着混合的东西越多,则基尼不纯度值越高。 
“熵”是对混乱程度的度量,越乱熵越大,与之相对应的概念是“序”,就是有规律。越有序,越纯,熵越小;越乱,熵越大,越不纯。

总结:

总体内包含的类别越杂乱,GINI指数就越大(跟熵的概念很相似),最好的划分就是使得GINI_Gain最小的划分。 
1、 决策树度量方式的选择: 
1) 信息增益:倾向多值属性; 
2) 增益率:倾向不平衡分裂,其中一个子集比其它小很多; 
3) Gini index:偏向多值属性;当类数目较大时,计算困难;倾向导致大小相等的分区和纯度。 
2、决策树解决过度拟合 
过度拟合:也就是该决策树对训练数据可以得到很低的错误率,但是运用到测试数据上却得到非常高的错误率。过渡拟合的原因有以下几点: 
①噪音数据:训练数据中存在噪音数据,决策树的某些节点有噪音数据作为分割标准,导致决策树无法代表真实数据。 
②缺少代表性数据:训练数据没有包含所有具有代表性的数据,导致某一类数据无法很好的匹配,这一点可以通过观察混淆矩阵(Confusion Matrix)分析得出。 
③多重比较(Mulitple Comparition):举个列子,股票分析师预测股票涨或跌。假设分析师都是靠随机猜测,也就是他们正确的概率是0.5。每一个人预测10次,那么预测正确的次数在8次或8次以上的概率为 0.0547,只有5%左右,比较低。但是如果50个分析师,每个人预测10次,选择至少一个人得到8次或以上的人作为代表,那么概率为 0.9399,概率十分大,随着分析师人数的增加,概率无限接近1。但是,选出来的分析师其实是打酱油的,他对未来的预测不能做任何保证。上面这个例子就是多重比较。这一情况和决策树选取分割点类似,需要在每个变量的每一个值中选取一个作为分割的代表,所以选出一个噪音分割标准的概率是很大的。

优化方案1:修剪枝叶 
决策树过渡拟合往往是因为节点过多,所以需要裁剪(Prune Tree)枝叶。裁剪枝叶的策略对决策树正确率的影响很大。主要有两种裁剪策略: 
①前置裁剪:在构建决策树的过程时,提前停止。那么,会将切分节点的条件设置的很苛刻,导致决策树很短小。结果就是决策树无法达到最优。实践证明这中策略无法得到较好的结果。 
②后置裁剪:决策树构建好后,然后才开始裁剪。采用两种方法:1)用单一叶节点代替整个子树,叶节点的分类采用子树中最主要的分类;2)将一个字数完全替代另外一颗子树。后置裁剪有个问题就是计算效率,有些节点计算后就被裁剪了,导致有点浪费。

优化方案2:K-Fold Cross Validation 
首先计算出整体的决策树T,叶节点个数记作N,设i属于[1,N]。对每个i,使用K-Fold Validataion方法计算决策树,并裁剪到i个节点,计算错误率,最后求出平均错误率。这样可以用具有最小错误率对应的i作为最终决策树的大小,对原始决策树进行裁剪,得到最优决策树。

优化方案3:Random Forest 
Random Forest是用训练数据随机的计算出许多决策树,形成了一个森林。然后用这个森林对未知数据进行预测,选取投票最多的分类。实践证明,此算法的错误率得到了进一步的降低。这种方法背后的原理可以用“三个臭皮匠定一个诸葛亮”这句谚语来概括。一颗树预测正确的概率可能不高,但是集体预测正确的概率却很高。 
3、与其他算法比较及用到的函数和包 
决策树与K-近邻相比:k-近邻算法也可以完成很多分类任务,但是他的缺点就是含义不清,说不清数据的内在逻辑,而决策树则很好地解决了这个问题,他十分好理解。


相关文章推荐

机器学习:决策树ID3\C4.5\CART\随机森林总结及python上的实现 (2)

本文主要根据Mitchell的机器学习总结归纳,图片大多来源于此,同时结合网上搜索到的资料和几篇较新的文献,自己写的决策树总结,当中的python算法摘自《集体智慧编程》,算法可在python2.7环...

2、决策树ID3、C4.5、CART

决策树1、决策树概念决策树(decision tree)也称为分类树(分类)或者回归树(数值预测)。是一种有监督的机器学习算法,是一个分类算法。在给定训练集的条件下,生成一个自顶而下的决策树,树的根为...

决策树ID3、C4.5、CART算法:信息熵,区别,剪枝理论总结

今天学习了决策树算法中的ID3、c4.5、CART算法,记录如下:     决策树算法:顾名思义,以二分类问题为例,即利用自变量构造一颗二叉树,将目标变量区分出来,所有决策树算法的关键点如下:    ...

决策树、ID3、C4.5以及CART算法小结

决策树、ID3、C4.5以及CART算法决策树模型在监督学习中非常常见,可用于分类和回归。虽然将多棵弱决策树的Bagging、Random Forest、Boosting等tree ensemble ...
  • End0o0
  • End0o0
  • 2017年01月02日 19:56
  • 1935

决策树归纳一般框架(ID3,C4.5,CART)

构建决策树的目的是对已有的数据进行分类,得到一个树状的分类规则,然后就可以拿这个规则对未知的数据进行分类预测。 决策树归纳是从有类标号的训练元祖中学习决策树。 决策树是一种类似于流程图的树结构,其中每...

基于决策树系列算法(ID3, C4.5, CART, Random Forest, GBDT)的分类和回归探讨

现在的r或者spark集成的机器学习包里面,基于决策树的算法都分回归或者分类。而实际这些回归可能和我们平常的理解存在一些偏差,因此写下此文一起探讨! 决策树常见算法有以下几种: ID3算法主要...

决策树算法ID3,C4.5, CART

决策树是机器学习中非常经典的一类学习算法,它通过树的结构,利用树的分支来表示对样本特征的判断规则,从树的叶子节点所包含的训练样本中得到预测值。决策树如何生成决定了所能处理的数据类型和预测性能。主要的决...
  • taigw
  • taigw
  • 2015年04月03日 01:02
  • 11237

经典决策树算法:ID3、C4.5和CART

ID3(Iterative Dichotomiser 3) 是一种基本的决策树算法。它可用于对只含离散属性的样本集的分类任务。ID3每次根据信息增益选择最佳划分属性,基于样本该属性值的不同,把样本划分...

决策树(ID3,C4.5,CART)

将训练样本的信息以一颗树的形式表达,大多数算法采用自顶而下递归的方法构建这棵树,其关键在于如何确定分裂准则。 ID3,C4.5,CART...

决策树:ID3\C4.5\Cart

决策树:决策树是一种简单的机器学习方法,它是对被观测数据进行分类的一种相当直观的方法,决策树在经过训练之后,看起来就像是以树状形式排列的一系列if-then语句,一旦我们有了决策树,根据决策树进行决策...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:2、决策树ID3、C4.5、CART
举报原因:
原因补充:

(最多只允许输入30个字)