简单线性回归-最小二乘法公式推导


附python代码:(网上很多版本bo计算公式有误)

import numpy as np
def LSmethod(x,y):
    n=len(x)
    numerator = 0#分子
    dinominator=0#分母
    for i in range(0,n):
        numerator +=(x[i]-np.mean(x))*(y[i]-np.mean(y))
        dinominator+=(x[i]-np.mean(x))**2
    b1=numerator/float(dinominator)
    b0=np.mean(y)-b1*np.mean(x)
    return b0,b1
def predict(x,b0,b1):
    return b0+b1*x
x = [1, 3, 2, 1, 3]  
y = [14, 24, 18, 17, 27]    
b0, b1 =LSmethod(x, y)  
print( "intercept:", b0, " slope:", b1)   
x_test = 6  
y_test = predict(6, b0, b1)  
print ("y_test:", y_test)  

猜你喜欢

转载自blog.csdn.net/qq_31442743/article/details/79696139
今日推荐