最小二乘法(Least Squares)是一种用于寻找线性回归模型的最佳拟合直线的标准方法。它通过最小化数据点与拟合直线之间的平方差来找到最佳拟合的线性模型。
线性回归模型
假设我们有一组数据点 (xi,yi)
,线性回归模型的目标是找到系数 w
和截距 b
,使得线性方程:
y=wx+b
最佳拟合这些数据点。
最小二乘法的公式
最小二乘法的目标是最小化以下损失函数(平方误差和):
通过求解这类优化问题,我们可以得到线性回归模型的参数。解析解可以使用矩阵运算来表示:
矩阵形式
在矩阵形式中,线性方程可以表示为:
Y=Xw
其中,X 是输入特征矩阵,Y 是目标值向量,w 是系数向量。
最小二乘法的解析解为:
代码示例
import numpy as np# 示例数据
X = np.array([[1, 1], [1, 2], [2, 2], [2, 3]]) # 特征矩阵,包含截距项
y = np.array([6, 8, 9, 11]) # 目标值# 添加一个全为1的列以表示截距项
X = np.c_[np.ones(X.shape[0]), X]# 计算最小二乘解
w = np.linalg.inv(X.T @ X) @ X.T @ y
print(f"回归系数: {w}")# 拆分回归系数和截距
intercept = w[0]
coefficients = w[1:]
print(f"截距: {intercept}")
print(f"回归系数: {coefficients}")