在回归分析中求多项式的次数

机器算法验证 机器学习 数理统计 优化
2022-04-04 18:15:43

我正在做一个机器学习项目,我试图在数据上拟合曲线。不幸的是,日期的特征向量有些高。所以,我不能真正将它们绘制在 2D 或 3D 空间上来猜测数据的形状。

因此,除了命中和试验之外,是否存在一种数学方法来找到可能最适合我的数据的多项式次数。

我的意思是我确实知道我可以查看每个度数的最小二乘误差,然后选择误差最小的那个,但这将是一个双重优化问题,因为第一个优化循环将包括找到一组权重拟合数据的曲线,而第二个循环将用于检查度数。有什么建议么?

2个回答

抱歉,如果这太简单了,我只是想让这个答案尽可能独立。事实上,你不能做你所描述的:次的最佳多项式总是至少与 k 次的最佳多项式一样好因为k次多项式的集合包括所有次多项式(只需设置)。随着您继续增加,在某一点上,您将能够找到一个完美拟合数据的多项式(即零误差)。k+1kk+1kak+1=0k

这通常不是一个非常有吸引力的解决方案,因为很难想象一个应该用例如百万次多项式来描述的过程,而且几乎可以肯定这种模型将比充分描述数据所必需的更复杂. 这种现象称为过拟合,一个很好的例子就是这张维基百科的图片。数据显然接近线性,但有可能(但不希望)使用更复杂的模型获得更低的误差。

过拟合

一般来说,目标是最小化来自同一基础模型的新数据而不是当前数据集的错误。通常仅仅获得更多数据是不可能或不切实际的,因此通常人们会采用某种形式的交叉验证来找到将最好的模型推广到看不见的数据的模型。交叉验证有很多种形式,您可以在 Wikipedia 文章或 CrossValidated 上的众多答案中了解它们(哈!)。但实际上,它们都可以简化为:在某些数据上拟合模型,并使用它来预测其余数据的值。重复执行此操作并选择平均性能最佳的模型(在本例中为多项式次数)。

解决这个“搜索”问题的方法之一是首先从一些元启发式算法开始,比如遗传编程,一旦程序能够创建一个“接近”函数(具有良好的适应度),从传统的机器学习回归算法开始由全科医生确定的学位。您仍然需要执行交叉验证来拟合您的 n 次多项式模型。运行 GP 时需要确保的几件事是不提供不应使用的函数,否则 GP 倾向于创建模仿决策树 + 线性 + 二次等的复杂模型。