随机森林和提升是参数的还是非参数的?

机器算法验证 机器学习 数据挖掘 随机森林 助推 装袋
2022-01-23 11:45:42

通过阅读优秀的统计建模:两种文化(Breiman 2001),我们可以抓住传统统计模型(例如线性回归)和机器学习算法(例如 Bagging、随机森林、增强树...)之间的所有差异。

Breiman 批评数据模型(参数),因为它们基于这样的假设,即观察结果是由统计学家规定的已知正式模型生成的,这可能很难模仿自然。另一方面,ML 算法不假设任何形式模型,而是直接从数据中学习输入和输出变量之间的关联。

我意识到 Bagging/RF 和 Boosting 也是一种参数化:例如,ntreeRF 中的 mtry、学习袋子分数、随机梯度提升树中的树复杂度都是调整参数我们也在某种程度上从数据中估计这些参数,因为我们正在使用数据来找到这些参数的最佳值。

那么有什么区别呢?RF 和 Boosted Trees 是参数模型吗?

4个回答

参数模型具有参数(推断它们)或关于数据分布的假设,而 RF、神经网络或增强树具有与算法本身相关的参数,但它们不需要关于您的数据分布的假设或将您的数据分类为理论分布. 事实上,几乎所有算法都有与优化相关的参数,例如迭代次数或边际值。

我认为参数和非参数的标准是这样的:参数的数量是否随着训练样本的数量而增长。对于逻辑回归和 svm,当你选择特征时,你不会通过添加更多的训练数据来获得更多的参数。但是对于 RF 等,即使树的数量没有改变,模型的细节也会改变(比如树的深度)。

术语“非参数”有点用词不当,因为通常这些模型/算法被定义为具有随着样本量增加而增加的参数数量。RF 是否这样做取决于树分裂/修剪算法的工作方式。如果不进行修剪,并根据样本大小规则对其进行拆分(例如,如果节点包含超过 10 个数据点,则拆分它),则 RF 将是非参数的。

但是,还有其他“参数”方法,例如回归,一旦添加特征选择方法,它们就会变得有些“非参数”。在我看来,线性/逻辑回归的特征选择过程与基于树的方法非常相似。我认为 ML 社区所做的很多工作都是填补如何将一组“原始输入”转换为“回归输入”的空间。在基本层面上,回归树仍然是“线性模型”——但具有一组转换的输入。样条曲线也属于类似的组。

关于假设,ML 模型不是“无假设”的。ML 的一些假设可能是“验证错误类似于新案例的错误”——这是关于错误分布的假设!

选择如何测量“误差”也是一个关于误差分布的假设——例如,使用平方误差与绝对误差作为您要最小化的度量(例如正态分布与拉普拉斯分布)。是否处理/去除“异常值”也是一个分布假设(例如正态分布与柯西分布)。

相反,我认为 ML 输出只是不打扰检查“基本假设”是否为真 - 更多基于检查输出是否“看起来不错/合理”(类似于 IT 测试文化......是否输入 + 过程 = 好输出?)。这通常更好,因为“建模假设”(例如,误差项是正态分布的)可能不会唯一地表征任何算法。此外,如果我们改变假设(例如,具有 30 个自由度的正常与 t),预测也可能没有那么不同。

然而,我们看到 ML 社区发现了许多统计学家知道的实际问题——偏差-方差权衡、需要大型数据集来拟合复杂模型(即 n<p 的回归是一个困难的建模问题),数据挖掘(过拟合)与省略关键因素(欠拟合)的问题。

我认为 ML 做得更好的一个方面是可重复性的概念——一个好的模型应该适用于多个数据集。test-train-validate 的想法是将这个概念带到实际水平的有用方法。

在统计意义上,如果参数是基于数据学习或推断的,则模型是参数化的。从这个意义上说,树是非参数的。当然树的深度是算法的一个参数,但它并不是从数据中推导出来的,而是一个必须由用户提供的输入参数。