如何选择多项式回归的阶数?

机器算法验证 回归 多项式
2022-04-01 15:16:08

对于由一个预测变量和一个变量组成的数据集,我们如何知道哪个次数多项式是最好的 fir?我们如何评估它们?

我已经开发了线性回归,然后上升到三次多项式,但我只需要做出如何评估拟合优度?

2个回答

这个问题可以概括为选择任何机器学习算法的超参数。例如,K-means 中的簇数、神经网络中的隐藏单元数等。

在非常高的层次上,有两种方式(不相互排斥,实际上将两种方式结合起来是理想的。):数据驱动和知识驱动。

  • 数据驱动意味着使用数据来确定哪一个是最好的。我们通常有训练集和测试集。还有一些其他的变化,例如添加一个额外的验证数据集,运行重复的交叉验证等。但总体思路是在测试集中选择最好的一个,我们可以确保测试集非常接近生产数据。

  • 知识驱动意味着使用“领域知识”来做出参数调整的决定。例如,我们正在从一些轨迹数据中拟合一些数据,并且我们知道我们的物理学数据通常会遵循抛物线趋势,而不是 5 阶多项式曲线。然后我们想选择二阶多项式来拟合。此外,如果我们知道我们的数据是周期性的,我们可以选择对数据进行傅里叶展开而不是多项式。看到这篇文章用多项式拟合周期性数据有什么问题?

总之,如果我们有很多数据,并且可以确保我们对测试集中的生产数据有一个公平的表示。那么数据驱动会很好。另一方面,如果我们对输入和输出之间的关系有大量的领域知识,那么知识驱动是好的。理想的情况是将两者结合起来:了解数据中的关系并使用良好的测试集对其进行仔细测试。

在多项式回归过程(梯度下降)中,尝试找到全局最小值以优化成本函数。我们选择多项式的次数,其方差由下式计算

Sr(m)nm1

是最小值,或者当多项式次数增加时其值没有显着降低。在上述公式中,

  • Sr(m) = m 阶多项式的残差平方和
  • n = 数据点数
  • m=多项式的阶数(所以 m+1 是模型的常数个数)

参考:https ://autarkaw.org/2008/07/05/finding-the-optimum-polynomial-order-to-use-for-regression/