有人可以解释一下 ID3 和 CART 算法之间的区别吗?

Posted

技术标签:

【中文标题】有人可以解释一下 ID3 和 CART 算法之间的区别吗?【英文标题】:Can someone explain me the difference between ID3 and CART algorithm? 【发布时间】:2013-12-04 06:00:31 【问题描述】:

我必须使用 R 软件和 rpart 包创建决策树。 在我的论文中,我应该首先定义 ID3 算法,然后实现各种决策树。

我发现 rpart 包不适用于 ID3 算法。它使用 CART 算法。我想了解其中的差异,并可能在我的论文中解释一下差异,但我没有找到任何比较双方的文献。

你能帮帮我吗?你知道一篇比较两者的论文吗?或者你能向我解释一下不同之处吗?

【问题讨论】:

他们使用不同的损失函数,参见***:en.wikipedia.org/wiki/… 唯一的区别是 ID3 使用 Entropie 的 Information gain 和 CART the Gini Impurity? 【参考方案1】:

我无法访问原始文本 1,2 但使用一些二手资料,这些递归(“贪婪”)分区(“树”)算法之间的主要区别似乎是:

    学习类型:

    ID3,作为“迭代二分法”,仅用于二元分类 CART 或“分类回归树”是一系列算法(包括但不限于二分类树学习)。使用rpart(),您可以指定method='class'method='anova',但rpart 可以从因变量的类型(即因子或数值)推断出这一点。

    用于分割选择的损失函数。

    ID3,正如其他 cmets 所提到的,根据信息增益选择其拆分,这是父节点和子节点(加权和)之间entropy 的减少。 CART,当用于分类时,选择它的拆分来实现最小化Gini impurity 的子集

有趣的是,作为一名从业者,我几乎从没听说过使用 ID3 一词,而 CART 经常被用作决策树的一个包罗万象的术语。 CART 在 R 的 rpart 包中有一个非常流行的实现。 ?rpart 指出“在大多数细节上,它非常接近 Breiman 等人 (1984)。”

但是,您可以传递 rpart(..., parms=list(split='information')) 来覆盖默认行为并拆分信息增益。

1 Quinlan, J. R. 1986。决策树的归纳。马赫学习。 1, 1(1986 年 3 月),81–106

2 布雷曼,里奥;弗里德曼,J.H.;奥尔森,R. A.;斯通,C. J. (1984)。 分类和回归树。加利福尼亚州蒙特雷:Wadsworth & ***s/Cole Advanced Books & Software。

【讨论】:

【参考方案2】:

http://www.cs.umd.edu/~samir/498/10Algorithms-08.pdf

阅读论文的1 C4.5 及更高版本 它将澄清您的所有疑问,帮助我解决我的问题。 不要被标题气馁,它是关于不同树算法的差异。 总之是一篇不错的文章,值得一读

【讨论】:

以上是关于有人可以解释一下 ID3 和 CART 算法之间的区别吗?的主要内容,如果未能解决你的问题,请参考以下文章

机器学习总结决策树ID3,C4.5算法,CART算法

决策树ID3,C4.5,CART算法中某一属性分类后,是不是能运用该属性继续分类

分类和回归-决策树算法(ID3C4.5和CART)

决策树算法

ID3C4.5CART树算法简介,这几个算法有什么区别?对于异常值和分类值有什么需要注意的?

机器学习回顾篇:CART决策树算法