我听说决策树可能有很大的方差,而对于数据集,拆分为测试/训练,决策树可能会根据数据的拆分方式而大不相同。显然,这为随机森林等算法提供了动力。
它是否正确?为什么决策树存在高可变性?
编辑:
只是一个注释-我并没有真正遵循当前的答案,也无法在评论中解决这个问题。
我听说决策树可能有很大的方差,而对于数据集,拆分为测试/训练,决策树可能会根据数据的拆分方式而大不相同。显然,这为随机森林等算法提供了动力。
它是否正确?为什么决策树存在高可变性?
编辑:
只是一个注释-我并没有真正遵循当前的答案,也无法在评论中解决这个问题。
如果您了解在这种情况下所指的方差是相对简单的。如果模型对训练数据的(小)变化非常敏感,则该模型具有高方差。
决策树具有高方差,因为如果您想象一棵非常大的树,它基本上可以根据每个输入调整其预测。
假设您想预测足球比赛的结果。决策树可以做出如下决策:
如果
- 球员 X 在场上并且
- A队有主场比赛并且
- 天气晴朗并且
- 出席粉丝人数 >= 26000 AND
- 已经过了下午 3 点
然后A队获胜。
如果树非常深,它会变得非常具体,您的训练数据中可能只有一个这样的游戏。仅将您的预测建立在一个示例上可能是不合适的。
现在,如果你做一个小的改变,例如将参加的粉丝数设置为 25999,决策树可能会给你一个完全不同的答案(因为游戏现在不满足第 4 个条件)。
例如,线性回归对微小的变化不会那么敏感,因为它仅限于线性关系(“有偏差”-> 参见偏差-方差权衡),并且不能代表从 25999 到 26000 粉丝的突然变化。
这就是为什么不要让决策树任意大/深很重要。这限制了它的方差。
(有关随机森林如何进一步帮助解决此问题的更多信息,请参见此处。)
关键是,如果您的训练数据没有具有不同标签的相同输入特征,则会导致贝叶斯错误,决策树可以完全学习它,这可能导致过度拟合,也称为高方差。这就是为什么人们通常使用交叉验证进行剪枝来避免树过度拟合训练数据的原因。
决策树是强大的分类器。Bagging 等算法尝试使用强大的分类器来实现集成学习,以找到不具有高方差的分类器。一种方法是忽略某些特征并使用其他特征,即随机森林,以便找到可以很好地泛化的最佳特征。另一个可以使用选择随机训练数据来训练每个决策树,然后将其再次放入训练数据中,引导。
决策树可以过拟合的原因是由于它们的 VC。虽然它不是无限的,但与1-NN不同,它非常大,会导致过度拟合。它只是意味着您必须提供多个大量数据才能避免过度拟合。要了解决策树的 VC 维度,请查看决策树算法是线性的还是非线性的。
我参加聚会可能有点晚了。是的,我会说这是正确的。
决策树容易过拟合。表现出过拟合的模型通常是非线性的,并且具有低偏差和高方差(请参阅偏差-方差权衡)。决策树是非线性的,现在的问题是为什么它们应该具有高方差。
为了说明这一点,请考虑您处于时间序列回归设置中。通常的过程是选择您的特征并将您的数据拆分为训练和测试数据。作为特征,我们将假设目标值的时间滞后值。此外,让我们假设数据呈现趋势,这意味着值在不断增长。不可避免地,测试集将包含比训练数据更大的值。
现在,您在训练集上训练一个决策树回归器。决策树将根据训练数据找到分裂,即将特征空间划分为区域。从这个意义上说,特征空间取决于每个单独特征的范围。训练集的特征范围明显较低。随后,在测试数据上测试模型时,决策树无法预测较大的值。它将在训练数据中遇到的最高值处“截断”。这表明决策树对数据的变化很敏感,因此具有很高的可变性。
我不完全同意@oW_♦ 的回答。让我们以线性回归为例(并假设真实模型是具有高斯误差的线性回归)。
基于正规方程,我们可以很容易地推断出模型方差,例如这篇文章: https ://stats.stackexchange.com/a/306790
这里模型的方差意味着给定一个输入行预测将如何根据真实错误而变化。通俗的讲,就是说如果我们再次采集相同的数据(X相同),由于不可约误差,输出会有所不同。那么我的拟合模型将如何变化?
我认为我们应该保持特征不变,但在标签 y 中引入小错误,看看模型预测是如何进行的。我生成了一个简单的模拟来证明我的想法:https ://github.com/raingstar/BiasVarianceAnalysis/blob/main/Bias-Variance%20analysis.ipynb