import numpy as np
from matplotlib import pylab as pl
def fitSLR(x,y):
n=len(x)
denominator=0.0
numerator=0.0
for i in range(n):
numerator+=(x[i]-np.mean(x))*(y[i]-np.mean(y))
denominator+=(x[i]-np.mean(x))**2
b1=numerator/denominator
b0=np.mean(y)/np.mean(x)
return b0,b1
def predict(x,b0,b1):
return b0+x*b1
x = [1,3,2,1,3]
y = [14,24,18,17,27]
b0,b1=fitSLR(x, y)
print("y=b0+x*b1")
print("b0:",b0," b1:",b1)
x_test=6
y_test=predict(6, b0, b1)
print( "x_test:",x_test," y_test:", y_test)
xx=np.linspace(0, 5)
yy=b0*xx + b1
pl.plot(xx,yy,'k-')
pl.scatter(x,y)
pl.show()
一元线性回归——numpy实现
最新推荐文章于 2023-03-16 17:39:47 发布