我正在研究数据挖掘,更确切地说是决策树。
我想知道是否有多种算法来构建决策树(或只有一个?),哪个更好,基于
等标准答案 0 :(得分:77)
决策树实现主要沿着这些轴不同:
拆分标准 (即如何计算“方差”)
是否构建 回归 的模型(连续变量,例如a 得分)以及 分类 (离散变量,例如一个类 标签)
消除/减少 过度拟合的技术
是否可以处理 不完整数据
主要的决策树实现是:
ID3 或Iterative Dichotomizer是三个决策树中的第一个 由Ross Quinlan开发的实现(Quinlan,J。R. 1986.Induction of Decision Trees.Mach.Learn.1,1(Mar. 1986),81-106。)
CART 或分类和回归树通常用作通用 决策树一词的首字母缩写,虽然它显然具有更具体的含义。总之,CART实现与C4.5非常相似;一个值得注意的差异是CART根据递归应用于数据的数字分割标准构造树,而C4.5包括构建规则集的中间步骤。
C4.5 ,Quinlan的下一次迭代。新功能(与ID3相比)是: (i)接受连续和离散的特征; (ii)处理 不完整的数据点; (iii)解决过度拟合的问题(非常 聪明的自下而上的技术,通常被称为“修剪”; (iv) 不同的权重可以应用于构成的特征 培训数据。其中,第一个三个非常重要 - 我建议你选择的任何DT实现都有三个。第四个(差别加权)不太重要
C5.0 ,最近的Quinlan迭代。这个实现是 由专利覆盖,因此可能很少实施 (商业软件包之外)。我从未编写过C5.0 我自己实现(我从未见过源代码)因此我无法提供C5.0与C4.5的明智比较。我一直 对其发明者所声称的改进持怀疑态度(Ross Quinlan) - 例如,他声称它是“几个数量级” 比C4.5快。其他声明同样广泛(“显着更高的存储效率”)等等。我只想指出你studies 报告两种技术的比较结果,你可以自己决定。
CHAID (卡方自动交互检测器)实际上早于 最初的ID3实施大约六年(发表于 博士戈登卡斯在1980年的论文。我对这项技术知之甚少.R平台有一个名为CHAID的软件包 包括优秀的文档
MARS (多自适应回归样条)实际上是由索尔福德系统公司MARS的原始发明人注册的一个术语。作为一个 结果,Salford未出售的库中的MARS克隆被命名为MARS之外的其他东西 - 例如,在R中,相关函数是多样条库中的polymars。 Matlab和Statistica也有 具有MARS功能的实现
我会推荐使用CART或C4.5(虽然我对C5.0或CHAID没有直接经验,但我熟悉他们的功能集)。
C4.5是Orange中实施的决策树风格; CART是sklearn中的风格 - 两者都是出色的ML库中的优秀实现。
C4.5是超越ID3的重要一步 - 无论是范围(C4.5具有更广泛的用例谱,因为它可以处理训练数据中的连续变量) 模型质量的条款。
对于C5.0与C4.5相比,最重要的声称改进是支持 提升树 。 DT的集合支持 - 提升树木和随机森林 - 已包含在Orange的DT实施中;这里,集合支持被添加到C4.5算法中。 sklearn还提供一系列随机森林和助推方法。