1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python实现最小二乘法进行线性拟合

python实现最小二乘法进行线性拟合

时间:2019-06-23 21:28:07

相关推荐

python实现最小二乘法进行线性拟合

基本原理

最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。最小二乘法还可用于曲线拟合。

对于线性拟合,最小二乘法存在解析解,其矩阵形式的公式如下所示:

XB=Y⇒B=(XTX)−1XTY\mathbf{X B}=\mathbf{Y} \Rightarrow \mathbf{B}=\left(\mathbf{X}^{T} \mathbf{X}\right)^{-1} \mathbf{X}^{T} \mathbf{Y} XB=Y⇒B=(XTX)−1XTY

代码实现

import numpy as npfrom matplotlib import pyplot as pltX = np.array([[0,1],[1,1],[2,1],[3,1],[4,1]])y = np.array([0,2,1,2,4])Xt = X.transpose()Xs = np.matmul(Xt,X)Xsi = np.linalg.inv(Xs)Wstar = np.matmul(np.matmul(Xsi,Xt),y)print(Wstar)Xhat = Wstar[0]*y + Wstar[1]print(Xhat)Xp = X[:,0]plt.scatter(Xp,y)plt.plot(Xhat,y)plt.show()

运行结果

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。