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