我正在研究数据挖掘,更准确地说,是决策树。
我想知道是否有多种算法来构建决策树(或只有一个?),哪个更好,基于标准,例如
- 表现
- 复杂
- 决策失误
- 和更多。
我正在研究数据挖掘,更准确地说,是决策树。
我想知道是否有多种算法来构建决策树(或只有一个?),哪个更好,基于标准,例如
决策树的实现主要在这些轴上有所不同:
拆分标准(即,如何计算“方差”)
是否为回归(连续变量,例如分数)和分类(离散变量,例如类别标签)建立模型
消除/减少过拟合的技术
是否可以处理不完整的数据
主要的决策树实现是:
ID3或 Iterative Dichotomizer 是 Ross Quinlan 开发的三个决策树实现中的第一个(Quinlan, JR 1986. Induction of Decision Trees. Mach. Learn. 1, 1 (Mar. 1986), 81-106。)
CART或分类和回归树通常用作术语决策树的通用首字母缩写词,尽管它显然具有更具体的含义。总之,CART 实现与 C4.5 非常相似;一个显着的区别是 CART 基于递归应用于数据的数值分割标准构造树,而 C4.5 包括构造规则集s 的中间步骤。
C4.5,昆兰的下一次迭代。新特征(与 ID3 相比)是:(i)接受连续和离散特征;(ii) 处理不完整的数据点;(iii) 通过(非常聪明的)通常称为“剪枝”的自下而上技术解决过拟合问题;(iv) 可以对构成训练数据的特征应用不同的权重。其中,前三个非常重要——我建议您选择的任何 DT 实现都具有这三个。第四个(差分加权)不那么重要
C5.0,最新的 Quinlan 迭代。此实现受专利保护,因此可能很少实现(在商业软件包之外)。我自己从未编写过 C5.0 实现(我什至从未看过源代码),因此我无法提供 C5.0 与 C4.5 的知情比较。我一直对它的发明者(Ross Quinlan)声称的改进持怀疑态度——例如,他声称它比 C4.5 快“几个数量级”。其他声明同样广泛(“显着提高内存效率”)等等。我只会向您指出报告两种技术比较结果的研究 ,您可以自己决定。
CHAID(卡方自动交互检测器)实际上比最初的 ID3 实现早了大约六年(在 1980 年 Gordon Kass 的博士论文中发表)。我对这项技术了如指掌。R 平台有一个名为CHAID的包,其中包含出色的文档
MARS(多自适应回归样条)实际上是 MARS 的原始发明者 Salford Systems 的商标。因此,Salford 不出售的库中的 MARS 克隆被命名为 MARS 以外的名称——例如,在 R 中,相关功能是 poly-spline 库中的 polymars。Matlab 和 Statistica 也具有 MARS 功能的实现
我会推荐 CART 或 C4.5(尽管我对 C5.0 或 CHAID 的功能集很熟悉,但我对 C5.0 或 CHAID 没有直接经验)。
C4.5 是用Orange实现的决策树风格;CART 是sklearn中的特色——两者都是优秀 ML 库中的优秀实现。
C4.5 是超越 ID3 的重要一步——无论是在范围(C4.5 具有更广泛的用例范围,因为它可以处理训练数据中的连续变量)和模型质量方面。
也许 C5.0 与 C4.5 相比最显着的改进是对增强树的支持。对 DT(增强树和随机森林)的集成支持已包含在 Orange 的 DT 实现中;在这里,集成支持被添加到 C4.5 算法中。sklearn 还具有一系列随机森林和提升方法。