术语“非参数”有点用词不当,因为通常这些模型/算法被定义为具有随着样本量增加而增加的参数数量。RF 是否这样做取决于树分裂/修剪算法的工作方式。如果不进行修剪,并根据样本大小规则对其进行拆分(例如,如果节点包含超过 10 个数据点,则拆分它),则 RF 将是非参数的。
但是,还有其他“参数”方法,例如回归,一旦添加特征选择方法,它们就会变得有些“非参数”。在我看来,线性/逻辑回归的特征选择过程与基于树的方法非常相似。我认为 ML 社区所做的很多工作都是填补如何将一组“原始输入”转换为“回归输入”的空间。在基本层面上,回归树仍然是“线性模型”——但具有一组转换的输入。样条曲线也属于类似的组。
关于假设,ML 模型不是“无假设”的。ML 的一些假设可能是“验证错误类似于新案例的错误”——这是关于错误分布的假设!
选择如何测量“误差”也是一个关于误差分布的假设——例如,使用平方误差与绝对误差作为您要最小化的度量(例如正态分布与拉普拉斯分布)。是否处理/去除“异常值”也是一个分布假设(例如正态分布与柯西分布)。
相反,我认为 ML 输出只是不打扰检查“基本假设”是否为真 - 更多基于检查输出是否“看起来不错/合理”(类似于 IT 测试文化......是否输入 + 过程 = 好输出?)。这通常更好,因为“建模假设”(例如,误差项是正态分布的)可能不会唯一地表征任何算法。此外,如果我们改变假设(例如,具有 30 个自由度的正常与 t),预测也可能没有那么不同。
然而,我们看到 ML 社区发现了许多统计学家知道的实际问题——偏差-方差权衡、需要大型数据集来拟合复杂模型(即 n<p 的回归是一个困难的建模问题),数据挖掘(过拟合)与省略关键因素(欠拟合)的问题。
我认为 ML 做得更好的一个方面是可重复性的概念——一个好的模型应该适用于多个数据集。test-train-validate 的想法是将这个概念带到实际水平的有用方法。