有人可以解释一下 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算法中某一属性分类后,是不是能运用该属性继续分类