3

Python中是否有函数或库可以自动计算一组数据点的最佳多项式拟合?我对泛化到一组新数据的 ML 用例并不真正感兴趣,我只关注我拥有的数据。我意识到度数越高,越合身。但是,我想要一些惩罚或查看错误肘部的地方?当我说肘击时,我的意思是这样的(尽管通常它不是那么激烈或明显):在此处输入图像描述

我的一个想法是使用 Numpy 的 polyfit:https ://docs.scipy.org/doc/numpy-1.15.0/reference/generated/numpy.polyfit.html来计算一系列阶数/度数的多项式回归。Polyfit 要求用户指定多项式的次数,这带来了挑战,因为我没有任何假设或先入为主的概念。拟合度越高,误差越低,但最终会像上图一样平稳。因此,如果我想自动计算误差曲线弯曲的多项式的次数:如果我的错误是 E 并且 d 是我的次数,我想最大化 (E[d+1]-E[d]) - (E[d +1] - E[d])。

这甚至是一种有效的方法吗?在完善的 Python 库(如 Numpy 或 Scipy)中是否有其他工具和方法可以帮助找到适当的多项式拟合(无需我指定阶数/度数)?我将不胜感激任何想法或建议!谢谢!

4

1 回答 1

1

要选择“正确”拟合并防止过度拟合,您可以使用Akiake Information CriterionBayesian Information Criterion。请注意,您的拟合过程可以是非贝叶斯的,您仍然可以使用它们来比较拟合。这是两种方法之间的快速比较。

于 2019-01-08T08:15:20.140 回答