利用最小二乘法擬合直線,實現了對一系列點擬合出其最接近的直線,並給出公式,包括斜率和截距。並且繪製出最終擬合線。
完整**如下:
# 核心**,求斜率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 為呼...