核心原理
最小二乘法通过求损失函数$L(a,b) = sum_{i=1}^{n}(y_i - (ax_i + b))^2$的最小值,确定参数`a`和`b`。析公式为: $hat{a} = frac{nsum x_iy_i - sum x_isum y_i}{nsum x_i^2 - (sum x_i)^2}$,$hat{b} = bar{y} - hat{a}bar{x}$Python实现
使用NumPy的线性代数模块直接计算参数: ```python n = len(x) sum_x = np.sum(x) sum_y = np.sum(y) sum_xy = np.sum(x * y) sum_x2 = np.sum(x **2)a = (n * sum_xy - sum_x * sum_y) / (n * sum_x2 - sum_x** 2) b = (sum_y - a * sum_x) / n y_fit = a * x + b # 拟合结果 ```
三、结果可视化与评估 通过Matplotlib绘制原始数据与拟合曲线,并计算决定系数$R^2$评估拟合优度: ```python import matplotlib.pyplot as plt plt.scatter(x, y, label='原始数据', color='lightblue') plt.plot(x, y_fit, 'r-', label=f'拟合直线: y={a:.2f}x+{b:.2f}') 计算R² ss_total = np.sum((y - np.mean(y)) **2) ss_residual = np.sum((y - y_fit)** 2) r2 = 1 - (ss_residual / ss_total) plt.text(1, 25, f'$R^2$ = {r2:.4f}', fontsize=12)plt.legend() plt.show() ``` 关键输出:拟合直线方程与$R^2$值越接近1表示拟合效果越好。
四、高阶拟合扩展 最小二乘法支持多项式拟合,通过NumPy的`polyfit`函数实现: ```python degree = 3 # 三次多项式拟合 coeffs = np.polyfit(x, y, degree) # 返回多项式系数 y_poly = np.poly1d(coeffs)(x) # 生成拟合函数并计算预测值 ``` 优势:通过调整`degree`参数,可灵活适配非线性数据分布。 五、应用场景 最小二乘法广泛应用于物理实验数据校准、经济趋势预测、机器学习线性回归等场景。在Python生态中,结合`scikit-learn`的`LinearRegression`类可实现更复杂的多变量拟合。通过本次打卡实践,我们掌握了最小二乘法的数学原理与Python实现流程。核心在于理误差平方和最小化的优化目标,并利用NumPy与Matplotlib工具链高效成数据处理与可视化。这一方法为后续复杂模型构建奠定了基础。
