Python线性回归,一阶多项式

时间:2017-12-19 14:03:40

标签: python numpy regression

我有一个数据集,我被要求拟合一次多项式。

enter image description here

我正在使用numpy函数polyfit,但我得到了一些非常奇怪的结果 我使用以下代码来查找多项式并绘制它

import numpy as np

data = np.loadtxt('men-olympics-100.txt')
year = data[:,0]
time = data[:,1]
plt.scatter(year, time)
xplot=np.linspace(1896,2008,100)
poly =np.polyfit(year,time,1)
print(poly)
yplot = poly[0]+poly[1]*(xplot)
plt.plot(xplot,yplot)

这是结果图

enter image description here

显然我在这里做错了,但我无法确切地知道在哪里。我使用polyfit错了,还是我错了?

1 个答案:

答案 0 :(得分:3)

这一行

yplot = poly[0]+poly[1]*(xplot)

需要像这样

yplot = poly[1]+poly[0]*(xplot)

或者更普遍(感谢@Victor Chubukov)

np.polyval(poly,xplot)