正规方程法简介
正规方程法(Normal Equation)是一种用于求解线性回归问题的解析方法,通过直接计算最小二乘法的闭式解来获取模型参数。与梯度下降等迭代方法相比,正规方程法无需选择学习率或多次迭代,适用于特征数量较少的情况。
数学原理
假设线性回归模型为:
y = X\\theta + \\epsilon
其中:
- X 为设计矩阵(m \\times n,m 为样本数,n 为特征数);
- \\theta 为参数向量(n \\times 1);
- \\epsilon 为误差项。
通过最小化损失函数(均方误差):
J(\\theta) = \\frac{1}{2m} \\sum_{i=1}\^m (y_i - X_i\\theta)\^2
对 \\theta 求导并令导数为零,得到正规方程的解:
\\theta = (X\^T X)\^{-1} X\^T y
适用条件
- 特征数较少:矩阵 X\^T X 的逆计算复杂度为 O(n\^3),当 n 较大时(如 n \> 10\^4),计算效率低。
- 矩阵可逆 :若 X\^T X 是奇异矩阵(如存在线性相关的特征),需使用伪逆(如
np.linalg.pinv)。
实现步骤
数据准备
确保设计矩阵 X 包含一列全1的截距项(若需拟合截距),目标变量 y 为向量形式。
计算参数
使用数值计算库(如 NumPy)直接求解:
python
import numpy as np
theta = np.linalg.inv(X.T @ X) @ X.T @ y
或更稳定的伪逆解法:
python
theta = np.linalg.pinv(X.T @ X) @ X.T @ y
预测新数据
对新样本 X_{\\text{new}} 进行预测:
python
y_pred = X_new @ theta
优缺点对比
优点
- 无需迭代调参,一次计算得到最优解;
- 在特征数少时计算速度快。
缺点
- 特征数多时计算逆矩阵开销大;
- 若 X\^T X 不可逆(如特征共线性),需额外处理。
改进与替代方案
- 特征缩放:虽不必要,但可提升数值稳定性。
- 梯度下降:适用于大规模数据或高维特征。
- 正则化:通过岭回归(Ridge)或 Lasso 解决不可逆问题。
通过合理选择方法,正规方程法在小规模线性回归问题中仍是高效且直观的解决方案。