ecoding:utf-8
import numpy as np
def fitSLR(x, y):
n = len(x)
dinominator = 0 #初始化分母
numerator = 0 #初始化分子
for i in range(0, n):
numerator += (x[i] - np.mean(x))*(y[i] - np.mean(y)) #(x-x均值)(y-y均值)…..分子
dinominator += (x[i] - np.mean(x))**2 #(x-x均值)(x-x均值)……..分母
print "numerator: ", numerator
print "dinominator: ",dinominator
b1 = numerator/float(dinominator) #分子/分母
b0 = np.mean(y)/float(np.mean(x)) #y均值/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 “intercept:”, b0, ” slope:”, b1
x_test = 6
y_test = predict(6, b0, b1)
print “y_test:”, y_test