我一直在使用numpy.polyfit
函数来做一些预测。如果我输入1的次数,它可以,但我需要做一个二次多项式拟合。在某些情况下,它是有效的,在另一些情况下,预测的情节下降,然后永远上升。例如:
import matplotlib.pyplot as plt
from numpy import *
x=[1,2,3,4,5,6,7,8,9,10]
y=[100,85,72,66,52,48,39,33,29,32]
fit = polyfit(x, y, degree)
fitfunction = poly1d(z4)
to_predict=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
plt.plot(to_predict,fitfunction(to_predict))
plt.show()
在我运行之后,这个出现了(我试着放一张图片,但是stackoverflow不允许我这样做)。在
我想强迫它通过零。在
我该怎么做?在
如果有人必须在截止日期前完成这项工作,一个快速的解决方案就是在0处加上一堆额外的点,以使权重偏离。我这样做了:
如果不需要使用原始最小二乘公式计算拟合误差(即最小化∑| yi—(axi2+bxi)|2),您可以尝试对{}进行线性拟合,因为(ax2+bx)/x=ax+b
如果必须使用相同的误差度量,请直接构造系数矩阵并使用^{} :
(请注意,您提供的数据序列看起来不像y截距为0的抛物线。)
相关问题 更多 >
编程相关推荐