chenminyu

相对于不是很大的数据来说,正规方程相对于梯度下降运算更加的简便

直接上核心公式

代码实现:

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]]

分类:

技术点:

相关文章:

  • 2022-12-23
  • 2021-11-30
  • 2022-12-23
  • 2022-12-23
  • 2021-11-30
  • 2021-08-01
  • 2021-09-18
  • 2020-04-29
猜你喜欢
  • 2021-11-04
  • 2021-11-19
  • 2021-04-21
  • 2021-11-14
相关资源
相似解决方案