📚 本章导览
本章在上一章线性方程组的基础上,深入探讨线性回归和最小二乘法。通过鸡兔同笼问题的扩展,介绍从无截距到有截距的回归模型,以及矩阵求解和统计视角的理解。
24.1 拟合,无截距
y = ax模型与最小二乘法
24.2 回归,有截距
y = ax + b模型与参数求解
24.3 矩阵运算求解
最小二乘法的矩阵形式
24.4 统计视角
协方差、相关系数与回归
24.1 拟合,无截距
比例模型 y = ax
在某些情况下,我们假设变量之间存在比例关系,即通过原点的直线。对于鸡和兔子的数量, 我们可以尝试用最简单的模型:
ypred = a · x
其中 x 是鸡的数量,y 是兔子的数量,a 是待求的比例系数
最小二乘法目标
找到最佳的 a 值,使得预测值与实际值之间的误差平方和(SSE)最小:
SSE(a) = Σ(yi - a·xi)²
求解过程
步骤1:构建误差函数
f(a) = 65428a² - 72228a + 20179
步骤2:求一阶导数
df/da = 130856a - 72228
步骤3:令导数为零,求解
130856a - 72228 = 0
a* ≈ 0.5520
💡 模型特点
- • 过原点:模型假设当鸡的数量为0时,兔子数量也为0
- • 一个参数:只需要确定斜率 a
- • 简单快速:计算量小,适合比例关系明确的场景
- • 局限性:无法处理有截距的情况
24.2 回归,有截距
线性模型 y = ax + b
更一般的情况下,我们需要考虑截距项,即直线不一定通过原点:
ypred = a · x + b
a 是斜率,b 是截距(y轴截距)
两参数优化问题
现在需要同时找到最优的 a 和 b,使得误差平方和最小:
SSE(a,b) = Σ(yi - (a·xi + b))²
偏导数求解
误差函数
f(a,b) = 65428a² + 1784ab - 72228a + 14b² - 1014b + 20179
对 a 求偏导
∂f/∂a = 130856a + 1784b - 72228 = 0
对 b 求偏导
∂f/∂b = 1784a + 28b - 1014 = 0
最优解
a* ≈ 0.4434
斜率
b* ≈ 7.9641
截距
最小误差:SSE ≈ 128.67
🎯 模型改进
- • 更灵活:可以拟合不通过原点的数据
- • 误差更小:相比无截距模型,SSE显著降低
- • 实际意义:截距b表示基础数量或偏移
- • 广泛应用:线性回归的标准形式
24.3 矩阵运算求解回归参数
最小二乘法的矩阵形式
使用矩阵运算可以更简洁地表示和求解线性回归问题。
比例模型:y = ax
矩阵形式
y = Xa
其中 X 是鸡数量的列向量
最小二乘解
a* = (XTX)-1XTy
线性模型:y = ax + b
增广矩阵
X = [1, x]
第一列全为1(截距项),第二列为x(斜率项)
参数向量
[b, a]T = (XTX)-1XTy
NumPy实现
# 比例模型
x = num_chickens[:, None]y = num_rabbits[:, None]a_star = np.linalg.inv(x.T @ x) @ x.T @ y# 线性模型
X = np.hstack((np.ones_like(x), x))sol = np.linalg.inv(X.T @ X) @ X.T @ yb_star = sol[0] # 截距a_star = sol[1] # 斜率⚡ 矩阵方法的优势
- • 简洁表达:统一的数学形式
- • 高效计算:利用优化的线性代数库
- • 易于扩展:可以轻松处理多元回归
- • 数值稳定:现代库提供稳定的求解算法
24.4 统计视角下的回归
统计量与回归系数
从统计学角度,线性回归的参数可以用协方差和相关系数表示。
关键统计量
标准差
σX, σY
相关系数
ρXY
均值
x̄, ȳ
协方差
Cov(X,Y)
回归系数公式
斜率
a = ρXY · (σY / σX)
或 a = Cov(X,Y) / Var(X)
截距
b = ȳ - a · x̄
回归线必过均值点 (x̄, ȳ)
与sklearn的对比
统计公式计算
σ_X = num_chickens.std(ddof=1)
σ_Y = num_rabbits.std(ddof=1)
ρ_XY = np.corrcoef(x, y)[1][0]
a = ρ_XY * σ_Y / σ_X
b = ȳ - a * x̄
sklearn实现
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(x, y)
a = model.coef_[0]
b = model.intercept_
结果一致
a ≈ 0.4434, b ≈ 7.9641
📊 统计视角的意义
- • 直观理解:通过相关性理解变量关系
- • 标准化:相关系数消除了量纲影响
- • 几何意义:回归线过均值点
- • 统计推断:便于进行假设检验和置信区间估计
章节总结
🎯 核心概念
- •线性回归:拟合数据的最佳直线
- •最小二乘法:最小化误差平方和
- •无截距vs有截距:模型复杂度权衡
- •矩阵求解:统一的数学框架
- •统计视角:协方差与相关性
📐 关键公式
无截距模型
a* = (XTX)-1XTy
有截距模型
[b,a]T = (XTX)-1XTy
统计公式
a = ρ·σY/σX
b = ȳ - a·x̄
🔍 几何直观
- •误差平方和对应点到直线的垂直距离平方和
- •最优解是误差函数的极值点
- •回归线总是经过数据的均值点
- •等高线图展示误差在参数空间的分布
💻 实际应用
- •预测模型:基于历史数据预测未来
- •趋势分析:发现变量之间的线性关系
- •机器学习:监督学习的基础算法
- •科学研究:实验数据拟合与分析
🚀 从Ch23到Ch24的进展
Ch23介绍了线性方程组的精确解,Ch24则处理过定方程组(数据点多于未知数)的情况, 通过最小二乘法找到最佳近似解。这是从代数问题到统计问题的转变, 也是机器学习中从求解到优化的重要思想转变。矩阵方法提供了统一的数学框架, 而统计视角则给出了直观的几何和概率解释。