python實現正規方程線性回歸


相對於不是很大的數據來說,正規方程相對於梯度下降運算更加的簡便

直接上核心公式

代碼實現:

import numpy as np
import matplotlib.pyplot as plt
x=[[400],[450],[484],[500],[510],[525],[540],[549],[558],[590],[610],[640],[680],[750],[900]]
y=[[80],[89],[92],[102],[121],[160],[180],[189],[199],[203],[247],[250],[259],[289],[356]]
plt.plot(x,y,'ks')
end=[[0],[0]]
for i in range(len(x)):
    x[i].insert(0,1)
x=np.mat(x)#轉成矩陣
y=np.mat(y)
end=np.mat([0,0])
end=end.T#矩陣轉逆
end=(x.T*x).I*x.T*y
end=end.getA().tolist()#矩陣轉成列表
print(end)
X=[400,900]
Y=[]
Y.append(end[0][0]+end[1][0]*X[0])
Y.append(end[0][0]+end[1][0]*X[1])
plt.plot(X,Y,'g-')
plt.show()

結果

[[-173.50754254952682], [0.6238329654896275]]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM