最小平方法範例

最小平方法(Least Squares Method)是一種數學最佳化技術,用於找到數據點最佳擬合的一條直線(一元線性回歸)或一個平面(多元線性回歸)。這種方法通過最小化誤差的平方和來求得模型的參數,使得這些參數能夠最好地代表數據。

以下是一個最小平方法的最小二乘擬合的簡單示例,我們假設有一組數據點,我們希望找到一條直線來擬合這些數據點。

import numpy as np

# 假設我們有一些數據點,x和y是對應的數據
x = [1, 2, 3, 4, 5]  # 假設x是我們數據點的橫坐標
y = [1, 2, 3, 4, 5]  # 假設y是我們數據點的縱坐標

# 我們需要找到直線y = mx + c來擬合這些數據點
# m是斜率,c是截距

# 首先,我們需要計算x和y的平均值,這些值將用於確定直線的截距
mean_x = np.mean(x)
mean_y = np.mean(y)

# 然後,我們可以使用以下公式來計算斜率m和截距c
m = np.sum(x * (y - mean_y)) / (np.sum(x * x) - np.sum(x) * mean_x)
c = mean_y - m * mean_x

# 現在我們有了斜率和截距,我們可以寫出擬合直線的方程
fitted_line = m * x + c

# 我們可以繪製原始數據點和擬合直線
import matplotlib.pyplot as plt

plt.plot(x, y, 'o', label='Data Points')
plt.plot(x, fitted_line, 'r-', label='Fitted Line')
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Least Squares Method Example')
plt.legend()
plt.show()

在這個示例中,我們首先計算了x和y的平均值,然後使用這些平均值來計算斜率m和截距c。最後,我們使用這些參數來繪製擬合直線,並與原始數據點進行比較。

請注意,這個示例非常簡單,只適用於一元線性回歸的情況。對於多元線性回歸或更複雜的情況,最小平方法可能會變得更加複雜,但基本原理是相同的。