最小二乘法是一种重要的数据拟合方法,广泛应用于统计学、机器学习等领域。将提供一个最小二乘法的完整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()
以上代码演示了如何用最小二乘法拟合一条直线,结果直观,便于理解。