← 返回算法与AI总览 算法与AI · 知识点深化 · 线性回归:最小二乘与梯度下降入门
知识点深化 · 线性回归

线性回归:最小二乘与梯度下降入门

你已经会解方程了——y=wx+b 就是一条直线。线性回归做的事:给一堆散点,找一条让残差平方和最小的直线。它是机器学习最基础的模型,也是理解后面所有模型的起点。这一页把最小二乘解析解(一步算出)和梯度下降数值解(慢慢下山)两条路都讲透。

① 小白第一课怎么学(4 步走,约 60 分钟)

别急着调库,先按这四步建立直觉:

1看图建立直觉(10 分钟)
读第②③部分:看散点图和那条"最贴合的直线",搞懂"残差=点到线的竖直距离"。
2记公式与推导(15 分钟)
读第④部分:损失函数 MSE、最小二乘解析解 θ=(XᵀX)⁻¹Xᵀy、梯度下降更新式。
3手算例题(20 分钟)
精读第⑤部分 3 道例题,跟着算一遍斜率和截距。
4刷题+纠错(15 分钟)
做第⑦⑩部分,错题回到第⑥部分高频错误里找原因。
本课小目标学完你要能:① 说出线性回归在"找什么";② 手算两个点的回归直线 w、b;③ 解释梯度下降每步在干嘛、学习率太大太小会怎样。

② 一图看懂:线性回归全地图

线性回归 模型 h(x)=wx+b 一条直线拟合数据 损失 MSE 残差平方和 / 2n 最小二乘解析解 θ=(XᵀX)⁻¹Xᵀy 一步出 梯度下降数值解 θ←θ−α·∂J/∂θ 迭代 应用:预测房价/销量 连续数值预测 易错:过拟合/量纲 不标准化、外推太远
读法:中心是"线性回归",分四大块——模型长什么样、用什么损失、怎么求解(解析解 vs 数值解);下方是应用场景和易错点。

③ 本质直觉:给一堆散点配一条"最公平"的直线

想象你在黑板上撒了一把点(x=学习时长,y=考试分数),现在要拉一条直线从这些点中间穿过去。

每条直线都有偏差:每个点到直线有一段竖直距离(残差 e = 真实 y − 预测 y)。有的点在直线上方,有的在下方。

"最贴合"的标准是什么?不是让点都压在线上(做不到),而是让所有残差的平方加起来最小。平方是为了:① 正负残差不抵消;② 大偏差惩罚更重。

两条求解路线:① 最小二乘——把损失函数对 w、b 求导令其为 0,一步解出最优直线(公式法);② 梯度下降——先瞎猜一条线,再沿着"下坡方向"一点点挪,挪到最低点(迭代法)。

x y 直线 h(x)=wx+b,虚线=残差
为什么是"平方"而不是绝对值绝对值在 0 点不可导;平方损失处处可导,求导后是二次函数有唯一最小值,解起来干净。这就是"最小二乘"名字的由来。

④ 完整体系与公式表

模型与假设

项目内容说明
模型hθ(x) = θ₀ + θ₁x₁ + θ₂x₂ + …线性组合,θ₀ 是偏置 b
输出连续实数不是分类概率,是数值
假设y = h(x) + ε误差 ε 服从均值 0 的正态分布
向量形式h(x) = θᵀx(含 x₀=1)把偏置并入 θ

损失函数(MSE)

均方误差损失 J(θ) = (1/2n) · Σi=1..n ( h(x(i)) − y(i) )²

前面乘 1/2 是为求导后系数约掉。

求解路线一:最小二乘解析解

正规方程(Normal Equation) θ = (XᵀX)−1 Xᵀ y

一维情形(只有一个特征 x)手算公式:

单变量回归手算 w = Σ(xi−x̄)(yi−ȳ) / Σ(xi−x̄)²    b = ȳ − w·x̄

求解路线二:梯度下降更新式

批量梯度下降(BGD) θj ← θj − α · (1/n) · Σi(h(x(i))−y(i))·xj(i)

两种解法对照

对比项最小二乘解析解梯度下降数值解
是否迭代一步算出多轮迭代逼近
大数据量慢(要算矩阵逆)快(可小批量)
学习率不需要关键超参,需调

Python 代码片段

from sklearn.linear_model import LinearRegression
model = LinearRegression().fit(X_train, y_train) → 得 w、b

⑤ 用法场景与典型例题

例1(基础·两点回归)已知数据点 (1,2)、(2,4)、(3,5),求回归直线 y=wx+b
用单变量手算公式,先算均值。
① x̄=(1+2+3)/3=2,ȳ=(2+4+5)/3=11/3≈3.667。
② 分子 Σ(xi−x̄)(yi−ȳ) = (−1)(−1.667)+(0)(0.333)+(1)(1.333) = 1.667+0+1.333 = 3。
③ 分母 Σ(xi−x̄)² = (−1)²+0²+1² = 2。
④ w = 3/2 = 1.5;b = ȳ − w·x̄ = 3.667 − 1.5×2 = 0.667。
答案:y = 1.5x + 0.667。
例2(损失函数)接上题,计算 MSE
预测值减真实值,平方再平均。
① x=1:ŷ=1.5+0.667=2.167,残差=2−2.167=−0.167,平方=0.028。
② x=2:ŷ=3.667,残差=4−3.667=0.333,平方=0.111。
③ x=3:ŷ=5.167,残差=5−5.167=−0.167,平方=0.028。
④ MSE = (0.028+0.111+0.028)/3 = 0.167/3 ≈ 0.056。
答案:MSE ≈ 0.056,模型拟合得很好。
例3(梯度下降一步)设当前 w=0, b=0,学习率 α=0.1,数据 (x=2, y=4)。更新一次 w、b
用梯度下降更新式,先算当前预测和误差。
① 当前预测 h = w·x+b = 0。
② 误差 h−y = 0−4 = −4。
③ ∂J/∂w = (1/n)(h−y)·x = (−4)×2 = −8(单样本 n=1)。
④ ∂J/∂b = (h−y) = −4。
⑤ w ← w − α·∂J/∂w = 0 − 0.1×(−8) = 0.8;b ← 0 − 0.1×(−4) = 0.4。
答案:更新后 w=0.8, b=0.4,预测值从 0 往 4 的方向挪了一步。
梯度下降的直觉每次更新让预测往真实值方向走一步。误差为负(预测偏小),梯度为负,减去负梯度 = 加正数,w、b 往增大预测方向调。这就是"下山"。

⑥ 高频错误诊断(4 条)

错误 1:把线性回归当分类用线性回归输出连续数值(房价、温度),不是"是猫/不是猫"的概率。要分类用逻辑回归。
错误 2:特征不标准化就梯度下降x₁ 是面积(几千)、x₂ 是房间数(个位数),损失被 x₁ 主导,走得慢又歪。务必先标准化。
错误 3:学习率太大导致发散α 太大时每步跨过最低点,loss 越跳越大变 NaN。对策:α 从 0.01 试,不降就减半。
错误 4:用回归直线做远距离外推回归直线只在数据范围内可信。数据是 10~30 岁身高,预测 80 岁身高就是瞎扯——关系早非线性了。

⑦ 考点真题演练(4 题)

考点分布

考法出题形式应对
最小二乘手算给 3~5 个点求 w、b套公式 w=Σ(x−x̄)(y−ȳ)/Σ(x−x̄)²
损失函数含义问 MSE 衡量什么残差平方和的平均,越小拟合越好
梯度下降给当前参数和 α,更新一步先算预测和误差,再套更新式
解析解 vs 数值解大数据选哪种大数据选梯度下降,小数据可正规方程

真题基础1. 线性回归最小二乘法优化的目标是最小化什么?

真题中档2. 用梯度下降训练线性回归时,学习率 α 设置过大,最可能出现什么现象?

真题中档3. 正规方程 θ=(XᵀX)⁻¹Xᵀy 的主要缺点是?

真题拔高4. 数据点 (0,1)、(1,3)、(2,5),回归直线 y=wx+b 中的 w 最接近?

⑧ 必背公式卡

模型:h(x) = wx + b 一条直线
损失:J = (1/2n)Σ(h(xi)−yi)² 残差平方和
解析解:θ = (XᵀX)⁻¹Xᵀy 一步到位
手算斜率:w = Σ(xi−x̄)(yi−ȳ) / Σ(xi−x̄)² 协方差除以方差
截距:b = ȳ − w·x̄ 直线必过 (x̄, ȳ)
梯度下降:θj ← θj − α·(1/n)Σ(h−y)·xj 沿下坡走一步
铁律:特征先标准化,α 从小往大试 不标准化必翻车

⑨ 应用输出:用线性回归建模房价

建模场景:根据房屋面积预测房价
已知某小区成交数据:面积 x(㎡)和房价 y(万元)。我们想建模型:给面积,预测房价。
① 选模型:房价随面积大致呈线性增长,用 h(x)=wx+b。
② 准备数据:收集 50 条成交记录,划分训练集 40 条、测试集 10 条。
③ 训练:调用 LinearRegression().fit(X_train, y_train),得到 w≈0.8(每平米涨 0.8 万)、b≈10(基础价 10 万)。
④ 预测:一套 90㎡ 的房子,预测价 = 0.8×90+10 = 82 万。
⑤ 评估:测试集 MSE=25(万元²),预测误差约 ±5 万,可接受。
口述训练思路合上课本说一遍:"先假设房价是面积的线性函数,用最小二乘让残差平方和最小,解出 w 和 b;新面积代进去就出预测值;只在数据范围内用。"

⑩ 分层练习 18 题(基础 6 + 中档 6 + 拔高 6)

▍基础 6 题

基础1线性回归的输出是连续值还是离散类别?
连续值。回归预测数值(房价、温度),分类预测类别。
基础2损失函数 MSE 衡量的是什么?
预测值与真实值的平均平方偏差,越小拟合越好。
基础3线性回归模型 h(x)=wx+b 中,b 叫什么?
偏置/截距,直线在 y 轴上的截距。
基础4最小二乘让什么最小?
残差平方和(预测减真实,平方后求和)。
基础5梯度下降中 α 叫什么?
学习率,每一步走多大。
基础6正规方程的公式是?
θ=(XᵀX)⁻¹Xᵀy。

▍中档 6 题

中档7数据 (1,3)、(2,5),求 w。
x̄=1.5, ȳ=4;分子=(−0.5)(−1)+(0.5)(1)=1;分母=0.25+0.25=0.5;w=2。
中档8上题求 b。
b=ȳ−w·x̄=4−2×1.5=1。直线 y=2x+1。
中档9为什么特征要先标准化?
不同量纲会让损失函数"扁长",梯度下降走得慢且震荡;标准化后各特征尺度一致,收敛快。
中档10批量梯度下降每更新一次用多少数据?
全部训练数据(Batch GD)。计算准但慢。
中档11预测值 ŷ=8,真实值 y=10,残差和平方残差各是多少?
残差=ŷ−y=−2;平方残差=4。
中档12解析解和梯度下降,哪个不需要迭代?
最小二乘解析解一步算出;梯度下降要多轮。

▍拔高 6 题

拔高13当前 w=1, b=1,样本 (x=3, y=10),α=0.1,更新一次 w。
h=1×3+1=4;误差 h−y=−6;∂J/∂w=(−6)×3=−18;w←1−0.1×(−18)=2.8。
拔高14上题更新后 b。
∂J/∂b=−6;b←1−0.1×(−6)=1.6。
拔高15XᵀX 不可逆时(特征线性相关),正规方程会怎样?
矩阵不可逆,无法求逆,正规方程失效。此时应去掉冗余特征或改用梯度下降。
拔高16训练误差很低但测试误差很高,是什么问题?怎么缓解?
过拟合。对策:增加数据、减少特征、加正则(L1/L2)。
拔高17R²=0.85 说明什么?
模型解释了 85% 的方差,拟合很好;R² 越接近 1 越好。
拔高18为什么线性回归对异常点敏感?
损失是平方,远离群体的点平方后被极度放大,会把直线拉偏。

⑪ 记忆口诀 + 7 天复习计划

三句口诀 ① 回归就是配直线,残差平方和最小。
② 解析一步 θ 等于 XᵀX 逆乘 Xᵀy,梯度下山慢慢挪。
③ 特征先标准化,学习率从小试,外推别太远。
天任务自检
第 1 天读②③④,手推一遍 w 公式能说出残差为什么平方
第 2 天背公式卡 + 做基础 1-6基础全对
第 3 天做中档 7-12,手算 3 个点回归w、b 算对
第 4 天做拔高 13-18,手推一次梯度更新梯度方向没算反
第 5 天做⑦真题 4 题限时每题 2 分钟
第 6-7 天合上书口述三句口诀,写正规方程和更新式不看资料全默对

← 返回算法与AI总览