Answers:
这是我能想到的几个:
其中一些与多重共线性问题有关:当两个变量都解释同一件事时,决策树将贪婪地选择最佳变量,而许多其他方法将同时使用它们。诸如随机森林之类的集成方法可以在一定程度上抵消这一点,但是您会失去理解的便利。
但是,至少从我的角度来看,最大的问题是缺乏原则性的概率框架。许多其他方法具有置信区间,后验分布等,这使我们对模型的好坏有所了解。决策树最终是一种临时的启发式方法,它仍然非常有用(它们非常适合在数据处理中查找错误的来源),但是存在人们将输出视为“正确的”模型的危险(来自我的经验,这在营销中经常发生)。
一个缺点是假定所有术语都相互作用。也就是说,您不能有两个独立运行的解释变量。树中的每个变量都必须与树上的每个变量进行交互。如果存在没有交互或交互作用弱的变量,则效率极低。
我的回答是针对CART(C 4.5 / C 5实现)的,尽管我认为不限于此。我的猜测是,这就是OP的想法-通常是某人说“决策树”时的意思。
决策树的局限性:
效能低下
“性能”不是指分辨率,而是执行速度。它之所以很差,是因为每次您希望更新CART模型时都需要“重绘树”-由已经训练过的树分类的数据,然后您想要添加到树中(即,用作树训练数据点)要求您从头开始-不能增量添加训练实例,对于大多数其他受监督的学习算法而言,它们不能这样做。也许最好的说法是,决策树不能在线模式下训练,而只能在批处理模式下训练。显然,如果不更新分类器,您将不会注意到此限制,但是我希望您看到分辨率下降。
这很重要,因为例如对于多层感知器,一旦进行了训练,便可以开始对数据进行分类。该数据还可以用于“调整”已经训练的分类器,尽管使用决策树,您需要使用整个数据集(训练中使用的原始数据以及任何新实例)进行重新训练。
变量之间具有复杂关系的数据的分辨率差
决策树通过逐步评估未知类的数据点(一次为一个节点,从根节点开始到终端节点结束)进行分类。而且在每个节点上,只有两种可能(左右),因此决策树无法学习某些可变关系。
实际上仅限于分类
训练决策树的最佳方法是训练它们为一个类分配数据点-最好是少数几个可能的类之一。我不认为我曾经在回归模式下使用决策树取得过任何成功(例如,连续输出,例如价格或预期的终身收入)。这不是形式上或固有的限制,而是实际的限制。大多数时候,决策树用于预测因素或离散结果。
具有持续期望变量的分辨率差
同样,原则上,可以使用自变量,例如“下载时间”或“自上次在线购买以来的天数”,只需将拆分标准更改为方差(离散变量通常为信息熵或基尼杂质),但在我在这些情况下,决策树很少能很好地工作。诸如“学生年龄”之类的情况看起来是连续的,但是在例外情况下,值的范围很小(特别是如果它们以整数形式报告的话),情况例外。
这里有很好的答案,但令我惊讶的是没有强调一件事。CART不对数据做出任何分布假设,尤其是响应变量。相反,例如,OLS回归(对于连续响应变量)和逻辑回归(对于某些分类响应变量)确实有很强的假设;具体来说,OLS回归假定响应是有条件的正态分布,而逻辑运算则假定响应是二项式或多项式。
CART缺乏这样的假设是一把双刃剑。当这些假设不成立时,这将使该方法具有相对优势。另一方面,当这些假设成立时,可以通过考虑这些事实从数据中提取更多信息。也就是说,当假设为真时,标准回归方法比CART更具参考价值。