Python實現最小二乘法擬合直線(求斜率截距)

2021-10-08 14:50:34 字數 1289 閱讀 6201

利用最小二乘法擬合直線,實現了對一系列點擬合出其最接近的直線,並給出公式,包括斜率和截距。並且繪製出最終擬合線。

完整**如下:

# 核心**,求斜率w,截距b

deffit

(data_x, data_y)

: m =

len(data_y)

x_bar = np.mean(data_x)

sum_yx =

0 sum_x2 =

0 sum_delta =

0for i in

range

(m):

x = data_x[i]

y = data_y[i]

sum_yx += y *

(x - x_bar)

sum_x2 += x **

2# 根據公式計算w

w = sum_yx /

(sum_x2 - m *

(x_bar **2)

)for i in

range

(m):

x = data_x[i]

y = data_y[i]

sum_delta +=

(y - w * x)

b = sum_delta / m

return w, b

# 模擬資料

x = np.arange(1,

17,1)

y = np.array(

[4.00

,6.40

,8.00

,8.80

,9.22

,9.50

,9.70

,10.86

,10.00

,10.20

,10.32

,10.42

,10.50

,11.55

,12.58

,13.60])

# 計算並繪製

w, b = fit(x, y)

pred_y = w * x + b

plt.scatter(x, y)

plt.plot(x, pred_y, c=

'r', label=

'line'

)plt.show(

)

計算後繪製的圖形如下圖所示。 藍色為原始點資料,紅色為擬合線。

python最小二乘法擬合圓 最小二乘法擬合圓

有一系列的資料點 我們知道這些資料點近似的落在乙個圓上。依據這些資料預計這個圓的引數就是乙個非常有意義的問題。今天就來講講怎樣來做圓的擬合。圓擬合的方法有非常多種,最小二乘法屬於比較簡單的一種。今天就先將這樣的。我們知道圓方程能夠寫為 x?xc 2 y?yc 2 r2 通常的最小二乘擬合要求距離的平...

python最小二乘法擬合圓 最小二乘法擬合圓

有一系列的資料點 我們知道這些資料點近似的落在乙個圓上。依據這些資料預計這個圓的引數就是乙個非常有意義的問題。今天就來講講怎樣來做圓的擬合。圓擬合的方法有非常多種,最小二乘法屬於比較簡單的一種。今天就先將這樣的。我們知道圓方程能夠寫為 x?xc 2 y?yc 2 r2 通常的最小二乘擬合要求距離的平...

線性擬合最小二乘法Python實現

下面 實現的是最小二乘法線性擬合,並且包含自己造的輪子與別人造的輪子的結果比較。問題 對 y 2.5x 0.8 y 2.5x 0.8 直線附近的帶有雜訊的資料進行線性擬合,最終求出w,b的估計值。最小二乘法基本思想是使得樣本方差最小。中self func 函式為自定義擬合函式,skl func 為呼...