日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python最小二乘法拟合直线

發布時間:2024/1/1 python 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python最小二乘法拟合直线 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最小二乘法的推導可參考下面這個博客,推導非常詳細.
https://my.oschina.net/keyven/blog/526010
首先畫一個加入了噪聲的散點圖,函數是y=0.2x,加入噪聲后如下圖所示:


代碼如下:

# -*- coding: utf-8 -* import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 30, num=50) y = 0.2*x+[np.random.random() for _ in range(50)] if __name__ == '__main__':plt.figure(figsize=(10, 5), facecolor='w')plt.plot(x, y, 'ro', lw=2, markersize=6)plt.grid(b=True, ls=':')plt.xlabel(u'X', fontsize=16)plt.ylabel(u'Y', fontsize=16)plt.show()

我將上面這個代碼保存為paint_scatter_plot.py這個名字,方便其他地方調用.
接下來畫出擬合直線:

代碼如下:

from paint_scatter_plot import x,y import numpy as np import matplotlib.pyplot as plt def Least_squares(x,y):x_ = x.mean()y_ = y.mean()m = np.zeros(1)n = np.zeros(1)k = np.zeros(1)p = np.zeros(1)for i in np.arange(50):k = (x[i]-x_)* (y[i]-y_)m += kp = np.square( x[i]-x_ )n = n + pa = m/nb = y_ - a* x_return a,b if __name__ == '__main__':a,b = Least_squares(x,y)print a,by1 = a * x + bplt.figure(figsize=(10, 5), facecolor='w')plt.plot(x, y, 'ro', lw=2, markersize=6)plt.plot(x, y1, 'r-', lw=2, markersize=6)plt.grid(b=True, ls=':')plt.xlabel(u'X', fontsize=16)plt.ylabel(u'Y', fontsize=16)plt.show()

代碼運算結果: a = 0.19784577, b = 0.48503344 ,還是非常接近正確結果的.

總結

以上是生活随笔為你收集整理的python最小二乘法拟合直线的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。