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)中是否还有其他工具和方法可以帮助找到合适的多项式拟合(无需我指定顺序/度)?我将不胜感激任何想法或建议!谢谢!
答案 0 :(得分:0)
要选择“正确的”拟合并防止过度拟合,可以使用Akiake Information Criterion或Bayesian Information Criterion。请注意,您的拟合过程可以是非贝叶斯方法,您仍然可以使用它们来比较拟合。这是两种方法之间的quick comparison。