最小二乘法是一种重要的数据拟合方法,广泛应用于统计学、机器学习等领域。将提供一个最小二乘法的完整Python实现,配有详细注释,适合刚接触这一方法的初学者进行练习和理解。以下是代码与注释:

步骤1:导入所需库

import numpy as np
import matplotlib.pyplot as plt

步骤2:生成数据

生成一些模拟数据用于回归拟合。

# 模拟数据
x = np.linspace(0, 10, 100)
y = 2.5 * x + np.random.normal(0, 1, 100)  # 真实方程为y = 2.5x + 噪声

步骤3:设计最小二乘法函数

创建一个最小二乘函数来计算线性回归的系数。

def least_squares(x, y):
    X = np.vstack([x, np.ones(len(x))]).T  # 构造矩阵
    theta = np.linalg.inv(X.T @ X) @ X.T @ y  # 最小二乘法公式
    return theta

# 获取系数
slope, intercept = least_squares(x, y)

步骤4:绘制结果

通过绘图观察拟合效果。

plt.scatter(x, y, label='Data')
plt.plot(x, slope * x + intercept, color='red', label='Fitted line')
plt.xlabel('X')
plt.ylabel('Y')
plt.legend()
plt.title('Least Squares Fit')
plt.show()

以上代码演示了如何用最小二乘法拟合一条直线,结果直观,便于理解。