不同决策树算法的复杂度或性能比较

我正在进行数据挖掘研究,特别是关于决策树的部分。

我想知道是否有多种构建决策树的算法(还是只有一种?),以及根据以下标准,哪一种更好:

  • 性能
  • 复杂度
  • 决策中的错误
  • 以及其他更多标准。

回答:

决策树的实现主要在以下几个方面有所不同:

  • 分割标准(即如何计算“方差”)

  • 是否为回归(连续变量,例如得分)以及分类(离散变量,例如类别标签)构建模型

  • 消除/减少过拟合的技术

  • 是否能处理不完整数据

主要的决策树实现包括:

  • ID3,或迭代二分器,是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) 可以对构成训练数据的特征应用不同的权重。其中,前三个非常重要——我建议您选择的任何决策树实现都应具备这三个功能。第四个(差异加权)则不太重要

  • C5.0,Quinlan的最新迭代。此实现受专利保护,因此可能很少在(商业软件包之外)实现。我从未自己编写过C5.0的实现(我甚至从未见过源代码),因此无法提供C5.0与C4.5的有根据的比较。我一直对其发明者(Ross Quinlan)声称的改进持怀疑态度——例如,他声称它比C4.5“快几个数量级”。其他声明同样宽泛(“显著更节省内存”)等等。我只会指向研究,这些研究报告了两种技术比较的结果,您可以自己决定。

  • CHAID(卡方自动交互检测器)实际上比最初的ID3实现早了大约六年(在Gordon Kass 1980年的博士论文中发表)。我对这项技术知之甚少。R平台有一个名为CHAID的包,其中包含了出色的文档

  • MARS(多适应性回归样条)实际上是MARS的原始发明者Salford Systems注册的商标。因此,Salford未销售的库中的MARS克隆体被命名为其他名称——例如,在R中,相关函数是poly-spline库中的polymars。Matlab和Statistica也有实现MARS功能的实现

我推荐使用CART或C4.5(尽管我对C5.0或CHAID没有直接经验,但我熟悉它们的功能集)。

C4.5是Orange中实现的决策树类型;CART是sklearn中的类型——两者都是优秀的机器学习库中的优秀实现。

C4.5是ID3的一个重大进步——无论是在范围(C4.5具有更广泛的用例谱,因为它可以处理训练数据中的连续变量)还是在模型质量方面。

C5.0相对于C4.5最重要的声称改进是支持提升树。Orange中的决策树实现已包含对DT的集成支持——提升树和随机森林;在这里,集成支持被添加到C4.5算法中。sklearn还提供了一系列随机森林和提升方法。

Related Posts

Keras Dense层输入未被展平

这是我的测试代码: from keras import…

无法将分类变量输入随机森林

我有10个分类变量和3个数值变量。我在分割后直接将它们…

如何在Keras中对每个输出应用Sigmoid函数?

这是我代码的一部分。 model = Sequenti…

如何选择类概率的最佳阈值?

我的神经网络输出是一个用于多标签分类的预测类概率表: …

在Keras中使用深度学习得到不同的结果

我按照一个教程使用Keras中的深度神经网络进行文本分…

‘MatMul’操作的输入’b’类型为float32,与参数’a’的类型float64不匹配

我写了一个简单的TensorFlow代码,但不断遇到T…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注