4709 字
24 分钟
线性回归

复习#

核心问题:

  • 线性回归建模
  • 代价函数
  • 最小化代价函数的算法与计算
  • 欠拟合与过拟合定义与解决方案

Q&A#

(前置)矩阵求导
线性回归模型假设(长什么样)
代价函数(最小二乘)
单样本梯度推导
(LWS)WH学习规则
BGD vs SGD
!!!最小二乘正规方程
欠拟合与过拟合


前置线性代数知识 🟢 了解(当字典用,别死磕)#

这里给还没有学完线代的同学们(啊哈包括我自己),先补一下基础知识。
线性回归里用到的线代,其实就这几样:向量内积、矩阵乘法、转置、迹、矩阵求导、范数。
下面按“线性回归里哪里用到 → 这个概念是什么 → 怎么算”来补。

向量和向量内积#

1. 向量是什么 = 就是一串数竖着排。比如:

x=[x0x1x2],θ=[θ0θ1θ2]x = \begin{bmatrix} x_0 \\ x_1 \\ x_2 \end{bmatrix}, \quad \theta = \begin{bmatrix} \theta_0 \\ \theta_1 \\ \theta_2 \end{bmatrix}

  • xx 是”特征”(你输入的信息,比如面积、几间卧室)
  • θ\theta 是”参数”(模型要学的权重,也就是每个特征占多大分量)

2. 内积 = 对应位置相乘,再加起来。这就是”点乘”:

θTx=θ0x0+θ1x1+θ2x2\theta^T x = \theta_0 x_0 + \theta_1 x_1 + \theta_2 x_2

其中 θT\theta^T 表示把 θ\theta 这一列「横过来」:

θT=[θ0θ1θ2]\theta^T = \begin{bmatrix} \theta_0 & \theta_1 & \theta_2 \end{bmatrix}

所以:

θTx=[θ0θ1θ2][x0x1x2]=θ0x0+θ1x1+θ2x2\theta^T x = \begin{bmatrix} \theta_0 & \theta_1 & \theta_2 \end{bmatrix} \begin{bmatrix} x_0 \\ x_1 \\ x_2 \end{bmatrix} = \theta_0 x_0 + \theta_1 x_1 + \theta_2 x_2

哎你先别管为什么一定要转置才能相乘,反正你把它横过来就对了。

3. 在线性回归里它是干嘛的:

模型:

hθ(x)=θ0+θ1x1+θ2x2h_\theta(x) = \theta_0 + \theta_1 x_1 + \theta_2 x_2

约定 x0=1x_0 = 1 后:

hθ(x)=θ0⋅1+θ1x1+θ2x2=θTxh_\theta(x) = \theta_0 \cdot 1 + \theta_1 x_1 + \theta_2 x_2 = \theta^T x

💡 最土的说法:本来式子有一项”截距 θ0\theta_0“单独站着,很讨厌。我们硬塞一个永远等于 1 的 x0x_0 进去,这样截距也能写成"θ0×1\theta_0 \times 1",于是整个式子就统一成了”两个向量点乘”,后面求导、写成矩阵都省事。这就是原笔记说的”引入 x0=1x_0=1 是关键技巧”。

矩阵和矩阵乘法#

1. 矩阵是什么 = 数的二维表格。mm 个样本、nn 个特征,写成矩阵 XX:

X=[1x1(1)⋯xn(1)1x1(2)⋯xn(2)⋮⋮⋮1x1(m)⋯xn(m)]X = \begin{bmatrix} 1 & x_1^{(1)} & \cdots & x_n^{(1)} \\ 1 & x_1^{(2)} & \cdots & x_n^{(2)} \\ \vdots & \vdots & & \vdots \\ 1 & x_1^{(m)} & \cdots & x_n^{(m)} \end{bmatrix}

每一行 = 一个样本,第一列全是 1(对应 x0=1x_0=1)。

2. 矩阵乘法 = “行乘列”:拿左边的行,点乘右边的列。

(AB)ij=∑kAikBkj(AB)_{ij} = \sum_k A_{ik} B_{kj}

比如:

[1234][5678]=[1⋅5+2⋅71⋅6+2⋅83⋅5+4⋅73⋅6+4⋅8]=[19224350]\begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix} \begin{bmatrix} 5 & 6 \\ 7 & 8 \end{bmatrix} = \begin{bmatrix} 1\cdot5+2\cdot7 & 1\cdot6+2\cdot8 \\ 3\cdot5+4\cdot7 & 3\cdot6+4\cdot8 \end{bmatrix} = \begin{bmatrix} 19 & 22 \\ 43 & 50 \end{bmatrix}

3. 在线性回归里:所有样本的预测值,一次性写成 XθX\theta。

例:三个样本

X=[123151147],θ=[θ0θ1θ2]X = \begin{bmatrix} 1 & 2 & 3 \\ 1 & 5 & 1 \\ 1 & 4 & 7 \end{bmatrix}, \quad \theta = \begin{bmatrix} \theta_0 \\ \theta_1 \\ \theta_2 \end{bmatrix}

Xθ=[1θ0+2θ1+3θ21θ0+5θ1+1θ21θ0+4θ1+7θ2]=[h(1)h(2)h(3)]X\theta = \begin{bmatrix} 1\theta_0 + 2\theta_1 + 3\theta_2 \\ 1\theta_0 + 5\theta_1 + 1\theta_2 \\ 1\theta_0 + 4\theta_1 + 7\theta_2 \end{bmatrix} = \begin{bmatrix} h^{(1)} \\ h^{(2)} \\ h^{(3)} \end{bmatrix}

结果是一个 3×13 \times 1 的向量,正好是 3 个样本各自的预测值。

转置#

1. 定义:把矩阵的行列互换,记作 ATA^T。

A=[123456]⇒AT=[142536]A = \begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \end{bmatrix} \quad\Rightarrow\quad A^T = \begin{bmatrix} 1 & 4 \\ 2 & 5 \\ 3 & 6 \end{bmatrix}

2. 性质(照抄即可):

(AB)T=BTAT,(AT)T=A,(A+B)T=AT+BT(AB)^T = B^T A^T, \quad (A^T)^T = A, \quad (A+B)^T = A^T + B^T

3. 在回归里:θTx\theta^T x 做内积、XTXX^T X、(Xθ−y)T(X\theta-y)^T 都会用到。

矩阵的迹 🟢 了解(推导正规方程的工具,不用会推)#

1. 定义:方阵对角线元素之和。

A=[1234]⇒tr A=1+4=5A = \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix} \quad\Rightarrow\quad \mathrm{tr}\,A = 1 + 4 = 5

2. 常用性质:

性质公式
转置不变tr A=tr AT\mathrm{tr}\,A = \mathrm{tr}\,A^T
交换tr AB=tr BA\mathrm{tr}\,AB = \mathrm{tr}\,BA
轮换tr ABC=tr CAB=tr BCA\mathrm{tr}\,ABC = \mathrm{tr}\,CAB = \mathrm{tr}\,BCA
线性tr(A+B)=tr A+tr B\mathrm{tr}(A+B)=\mathrm{tr}\,A+\mathrm{tr}\,B

3. 在回归里:迹只是用来推导”正规方程”的计算工具,结论会用了就行(见👇)。

看不懂吧?我也看不懂。所以就不用看懂了,哈哈。说真的,一个计算过程而已,这里只需要明白迹可以简化计算就行。

矩阵求导(梯度)🔴 必会(LMS 的根源)#

1. 是什么:标量对向量求导,得到的是一个”梯度”向量——每个分量告诉你”往这个方向调 θ\theta,损失会变多快”。

∇θf=[∂f∂θ0∂f∂θ1⋮]\nabla_\theta f = \begin{bmatrix} \frac{\partial f}{\partial \theta_0} \\ \frac{\partial f}{\partial \theta_1} \\ \vdots \end{bmatrix}

2. 常用公式(考试能套就行,前两个最常用):

公式结果
∇θ(θTx)\nabla_\theta (\theta^T x)xx
∇θ(xTθ)\nabla_\theta (x^T \theta)xx
∇θ(θTθ)\nabla_\theta (\theta^T \theta)2θ2\theta
∇θ(θTAθ)\nabla_\theta (\theta^T A \theta)(A+AT)θ(A+A^T)\theta,AA 对称则 2Aθ2A\theta
∇Atr AB\nabla_A \mathrm{tr}\,ABBTB^T

3. 在回归里:单样本梯度就是 (预测值 − 真实值) × x,写成向量就是 (hθ(x)−y)x(h_\theta(x)-y)x,多样本 XT(Xθ−y)X^T(X\theta-y)。LMS 和正规方程都从这来。

范数 🟢 会用(记住 L1/L2 各是啥即可)#

1. 是什么:一个数(向量)的”大小”。

  • L2 范数(欧几里得长度):∥w∥2=∑iwi2\|w\|_2 = \sqrt{\sum_i w_i^2}
  • L1 范数(绝对值之和):∥w∥1=∑i∣wi∣\|w\|_1 = \sum_i |w_i|

💡 最土的记法:L2 = 平方和再开方,L1 = 直接加起来(带绝对值)。

2. 在回归里:用来做”正则化”(防止过拟合)——L2 就是 Ridge(岭回归),L1 就是 LASSO。

  • L2 平方后处处可导,梯度是 2λw2\lambda w,只会把权重整体缩小。
  • L1 在 0 处不可导,容易把权重压成 0,所以结果稀疏。

看不懂!反正就是用来纠正机器预测的偏差的!吧。(损失函数与正则化)

行列式和逆矩阵 🟢 了解(知道长啥样即可)#

1. 行列式:方阵的一个数,记 ∣A∣|A| 或 det⁡A\det A。二阶:det⁡[abcd]=ad−bc\det\begin{bmatrix} a & b \\ c & d \end{bmatrix} = ad - bc

2. 逆矩阵:若 A−1A=IA^{-1}A = I,则 A−1A^{-1} 是 AA 的逆。二阶:[abcd]−1=1ad−bc[d−b−ca]\begin{bmatrix} a & b \\ c & d \end{bmatrix}^{-1} = \frac{1}{ad-bc}\begin{bmatrix} d & -b \\ -c & a \end{bmatrix}

3. 在回归里:正规方程 θ=(XTX)−1XTy\theta = (X^T X)^{-1}X^T y 里的 (XTX)−1(X^T X)^{-1} 就是逆矩阵。如果 XTXX^T X 不可逆(特征共线),要改用正则化或伪逆。

总结:线代清单#

概念在线性回归里的作用掌握程度
向量内积模型 hθ(x)=θTxh_\theta(x)=\theta^T x🔴 必会
矩阵乘法多样本预测 XθX\theta🔴 必会
转置θT\theta^T、XTXX^T X 等🟡 会用
迹推导正规方程的工具🟢 了解
矩阵求导求梯度,得到 LMS🔴 必会
范数L1/L2 正则🟡 会用
逆矩阵正规方程里那一下🟢 了解

看矩阵公式,按这 4 步走(笨办法但有效):

  1. 这是什么形状?几行几列。
  2. 乘法能不能做?维数对不对得上。
  3. 结果是什么?标量、向量还是矩阵。
  4. 对应回归里的啥?预测值 / 误差 / 梯度 / 代价。

举例:XθX\theta → XX 是 m×(n+1)m\times(n+1),θ\theta 是 (n+1)×1(n+1)\times1,结果是 m×1m\times1 = 每个样本的预测值。


一、模型假设 🔴 必会#

💡 一句话:我们要用”面积 × 一个系数 + 卧室数 × 一个系数 + 截距”来预测房价。

以房价预测为例:特征是居住面积(feet²)和卧室数,输出是价格。模型:

hθ(x)=θ0+θ1x1+θ2x2h_\theta(x) = \theta_0 + \theta_1 x_1 + \theta_2 x_2

一般形式(令 x0=1x_0 = 1,把截距塞进向量,变成内积):

h(x)=∑i=0nθixi=θTxh(x) = \sum_{i=0}^{n} \theta_i x_i = \theta^T x
核心要点 🔴 必会

引入 x0=1x_0 = 1 把截距 θ0\theta_0 统一进向量是关键技巧:模型变成纯向量内积 h(x)=θTxh(x)=\theta^T x,后续求导、矩阵化都因此变简单。

实例结果:对面积/卧室数房价数据,最小二乘拟合得 θ0=89.60, θ1=0.1392, θ2=−8.738\theta_0 = 89.60,\ \theta_1 = 0.1392,\ \theta_2 = -8.738。

⚠️ 注意 θ2\theta_2 为负,不代表”卧室越多越便宜”,只是这组样本上碰巧拟合出来这样(特征之间有相关性,会互相抢解释权),别过度解读单个系数。


二、代价函数(Cost Function)🔴 必会#

你知道这个玩意是为了让模型的预测更加准确的就好,需要使代价函数尽可能小,就更贴合现实。所以求导求这个的最小值(大部分情况只能取到极小值其实)。

💡 一句话:代价函数就是”打分器”,衡量模型预测得多烂。目标是让这个分越低越好。

参数 θ\theta 到底定多少?需要一个”目标”——代价函数。最直观的想法是”误差取绝对值再相加”:

min⁡J(θ)=∑i=1m∣hθ(x(i))−y(i)∣\min J(\theta) = \sum_{i=1}^{m} \left| h_\theta(x^{(i)}) - y^{(i)} \right|

但实际用的是平方误差(最小二乘):

min⁡J(θ)=12∑i=1m(hθ(x(i))−y(i))2\min J(\theta) = \frac{1}{2} \sum_{i=1}^{m} \left( h_\theta(x^{(i)}) - y^{(i)} \right)^2
为什么用平方而不是绝对值 🟡 了解理由
  1. 方便梯度下降——平方函数处处可导,绝对值在 0 处是个”尖”,没法求导,梯度下降处理不了。
  2. 有物理意义——误差服从高斯分布时,最大似然估计(MLE)恰好等于最小化平方误差。
常见错误 🟡 会用

那个 12\frac{1}{2} 是为了求导时跟平方产生的 2 抵消,不影响最优解在哪;但考试写公式要跟讲义一致,不然对答案对不上。


三、梯度下降法与 LMS 规则 🔴 必会(本讲最核心)#

💡 一句话:参数往”让误差变小最快”的方向,一步步挪,直到挪不动(到谷底)。

3.1 单样本梯度推导 🔴 必会(要会自己推)#

只看一个样本,对某个参数 θj\theta_j 求导(中间用链式法则):

∂∂θjJ(θ)=∂∂θj12(hθ(x)−y)2=2⋅12(hθ(x)−y)⋅∂∂θj(hθ(x)−y)=(hθ(x)−y)⋅∂∂θj(∑i=0nθixi−y)=(hθ(x)−y)⋅xj\begin{aligned} \frac{\partial}{\partial \theta_j} J(\theta) &= \frac{\partial}{\partial \theta_j} \frac{1}{2} \left( h_\theta(x) - y \right)^2 \\ &= 2 \cdot \frac{1}{2}(h_\theta(x) - y) \cdot \frac{\partial}{\partial \theta_j}(h_\theta(x) - y) \\ &= (h_\theta(x) - y) \cdot \frac{\partial}{\partial \theta_j}\left( \sum_{i=0}^{n} \theta_i x_i - y \right) \\ &= (h_\theta(x) - y) \cdot x_j \end{aligned}

💡 最土的推导套路(记住三步):

  1. 平方求导,2 · ½ · (括号),2 和 ½ 一约没了;
  2. 剩下 (h−y) 再对 θj\theta_j 求导,只有 θjxj\theta_j x_j 这一项能求出来,结果是 xjx_j;
  3. 合起来 = (预测 − 真实) × xⱼ。

3.2 LMS 更新规则 🔴 必会#

代入梯度下降 θj:=θj−α∂J∂θj\theta_j := \theta_j - \alpha \frac{\partial J}{\partial \theta_j}:

θj=θj−α(hθ(x)−y)xj,0≤j≤n\theta_j = \theta_j - \alpha \left( h_\theta(x) - y \right) x_j, \quad 0 \le j \le n

这就是 LMS update rule(最小均方),也叫 Widrow-Hoff 学习规则。

核心要点 🔴 必会

Widrow-Hoff 规则的性质:更新量的大小正比于误差 hθ(x)−yh_\theta(x) - y。

  • 误差大 → 步子大,快速逼近;
  • 快收敛时 → 误差趋零 → 步子自动变小,自然稳下来。

💡 你可以把它理解成”错多少,就改多少”。这套”误差驱动学习”的最简形态,后面神经网络的反向传播就是它的超进化版。

WH 学习规则(随机 / 在线形式)

Widrow–Hoff 学习规则的标准用法是**随机(在线 / sequential)**式:每收到一个样本就立即用它更新一次 θ\theta,无需等全部样本到齐。它正是下面 3.3 里”随机梯度下降(SGD)“的更新规则本身——所以 WH 学习规则 = LMS = 随机/在线梯度下降的单样本版本。

记法:随机(在线) = 逐个样本,来一个改一次;批量(Batch) = 攒齐全部 mm 个样本,把每个样本的 (h(x(i))−y(i))x(i)(h(x^{(i)})-y^{(i)})x^(i) 累加起来再更新一次。

3.3 多个样本怎么办:BGD vs SGD 🔴 必会#

单个样本会了,m 个样本怎么办?两种搞法:

批量梯度下降 BGD随机梯度下降 SGD
每步更新用全部 m 个样本的梯度累加随机挑一个样本立即更新
收敛路径平滑,每步都在降抖动,但总体往下走
速度慢(每步扫全数据集)快(大数据集优势明显)
适用小数据集、理论分析在线学习、大数据
注意 🟡 会用

作业明确要求:SGD 要打乱数据顺序(shuffle)。不 shuffle 的话,如果数据是按某种规律排的(比如按房价从低到高),参数更新会带系统性偏差,收敛会变差。

3.4 最小二乘正规方程(Normal Equation)🔴 会推#

梯度下降是”一步步走下山”;正规方程是”直接算出最低点在几度”——前者是迭代法,后者是闭式解,一次就算出最优参数。

代价函数写成矩阵形式:

J(θ)=12(Xθ−y)T(Xθ−y)J(\theta) = \frac{1}{2}(X\theta - y)^T (X\theta - y)

令其对 θ\theta 的梯度等于 00(最小二乘原理):

∇θJ=XTXθ−XTy=0\nabla_\theta J = X^T X\theta - X^T y = 0

解出:

θ=(XTX)−1XTy\boxed{\theta = (X^T X)^{-1} X^T y}
核心要点 🔴 必会

这就是正规方程:不用选学习率 α\alpha、不用一点一点迭代,一次矩阵运算直接得到最优 θ\theta。

与梯度下降的对比(常考):

对比正规方程 Normal Equation梯度下降 Gradient Descent
方式闭式解,一次性算出迭代,多步逼近
学习率 α\alpha不需要需要调
特征缩放不需要通常需要
特征数 nn求 (XTX)−1(X^TX)^{-1} 是 O(n3)O(n^3),nn 大时很慢大数据集也更适用
前提XTXX^TX 必须可逆无矩阵可逆要求
适用小规模(nn 几千以内)大规模、在线学习
注意 🟡 会用

当特征共线(两个特征高度相关)或样本数 < 特征数时,XTXX^TX 不可逆,正规方程失效。此时改用正则化——Ridge 会给 XTXX^TX 加上 λI\lambda I 保证可逆。


四、矩阵迹的性质 🟢 了解(正规方程的推导工具,别死磕)#

tr A=∑i=1nAii,tr a=a\mathrm{tr}\,A = \sum_{i=1}^{n} A_{ii}, \qquad \mathrm{tr}\,a = a
性质公式
转置不变tr A=tr AT\mathrm{tr}\,A = \mathrm{tr}\,A^T
交换tr AB=tr BA\mathrm{tr}\,AB = \mathrm{tr}\,BA
轮换tr ABC=tr CAB=tr BCA\mathrm{tr}\,ABC = \mathrm{tr}\,CAB = \mathrm{tr}\,BCA
线性tr(A+B)=tr A+tr B\mathrm{tr}(A+B) = \mathrm{tr}\,A + \mathrm{tr}\,B
梯度∇Atr AB=BT\nabla_A \mathrm{tr}\,AB = B^T
二次型梯度∇Atr ABATC=CAB+CTABT\nabla_A \mathrm{tr}\,ABA^T C = CAB + C^T AB^T
行列式梯度∇A∣A∣=∣A∣(A−1)T\nabla_A \lvert A \rvert = \lvert A \rvert (A^{-1})^T
常见错误 🟢 了解

轮换性 tr AB=tr BA\mathrm{tr}\,AB = \mathrm{tr}\,BA 不能忘了”维数要匹配”这个前提。考试写推导最好顺手标注矩阵维数。


五、非线性模型的多元回归 🟡 会用#

💡 一句话:“线性回归”的”线性”指对参数 θ\theta 线性,不是对特征线性。你可以把特征随便折腾(平方、交叉相乘),只要参数还是一个个乘上去的加法,就还是线性回归。

把非线性项当”新特征”塞进去就行。matlab 示例(carsmall 数据集:Weight、Horsepower → MPG):

x1 = Weight; x2 = Horsepower;
X = [ones(size(x1)) x1 x2 x1.*x1 x1.*x2 x2.*x2];
b = regress(y, X) % 对扩展特征做线性回归

相当于模型 h=b1+b2x1+b3x2+b4x12+b5x1x2+b6x22h = b_1 + b_2 x_1 + b_3 x_2 + b_4 x_1^2 + b_5 x_1 x_2 + b_6 x_2^2,再用 mesh 画三维曲面看效果。

核心要点 🟡 会用

这招叫多项式特征扩展:还是标准线性回归(对参数线性),但能拟合曲线/曲面。代价是特征数随阶数暴涨——这就给后面的过拟合埋下伏笔。


六、欠拟合与过拟合 🔴 必会(理解层面)#

💡 一句话:模型太简单 = 欠拟合(没学到位);模型太复杂 = 过拟合(把噪声都背下来了,换个新数据就废)。

6.1 模型选择#

  • 奥卡姆剃刀(Occam’s razor):能用简单模型解释清楚的,就别上复杂模型。
  • 治理手段:正则化、特征选择。

💡 最土的理解:奥卡姆剃刀就是”别用大炮打蚊子”。能一条直线说明白的,就别上五次多项式。

6.2 正则化 🔴 必会#

💡 一句话:在代价函数后面加一个”罚款项”,罚的是”参数太大”。参数一大就说明模型在拼命记细节(过拟合),所以要按住它。

前面一项就是使误差小,后面一项是使系数小(系数过大说明模型强行拟合数据点,造成过拟合。)

  • L2 正则(Ridge / 岭回归):
min⁡w∑i=1m(yi−wTxi)2+λ∥w∥22\min_w \sum_{i=1}^{m} \left( y_i - w^T x_i \right)^2 + \lambda \| w \|_2^2
  • L1 正则(LASSO):
min⁡w∑i=1m(yi−wTxi)2+λ∥w∥1\min_w \sum_{i=1}^{m} \left( y_i - w^T x_i \right)^2 + \lambda \| w \|_1
核心要点 🔴 必会

L1(LASSO)容易得到稀疏解(很多系数被压成 0),所以自带”特征选择”功能;
L2(Ridge) 只想把权重整体缩小,一般不压成 0。

6.3 L1 为什么稀疏:几何解释 🟡 了解#

约束空间(L1 是菱形、L2 是圆)和损失函数等高线第一次相交的点,就是最优解。

  • L1 的菱形有尖角 → 交点常落在角上 → 角上某些坐标 wi=0w^i=0 → 稀疏。
  • L2 的圆光滑无角 → 交点几乎不会正好在坐标轴上 → 各分量都非零。
延伸理解 🟢 了解

从导数角度:L1 在 0 处次梯度是区间 [−λ,λ][-\lambda, \lambda],∣w∣<λ|w|<\lambda 时会把 ww 直接拉到 0(软阈值);L2 梯度是 2λw2\lambda w,在 0 处连续,只会按比例缩小。想自动挑特征用 LASSO,只想压过拟合、保留所有特征用 Ridge。


七、作业要点(波士顿房价)🔴 必会(动手)#

数据:housing_data.csv,波士顿 506 个郊区房价,506 条 × 13 属性 + 1 个房价均值。属性速查:

属性含义属性含义
CRIM城镇人均犯罪率RM住宅平均房间数
ZN25000 英尺以上住宅用地比例AGE1940 年前自建单位比例
INDUS非零售商业用地比例DIS到五个就业中心的加权距离
CHAS查尔斯河虚拟变量RAD高速公路可达性指数
NOX一氧化氮浓度TAX全值财产税率
B城镇黑人比例指标PTRATIO师生比例
LSTAT低地位人口比例MEDV房价中位数(目标)

要求 1:自己实现(不能调库的模型)

  1. 原始数据 vs 归一化数据分别跑线性回归梯度下降,画图对比结果;
  2. BGD vs SGD 分别实现并画图对比(SGD 要打乱顺序)。

要求 2:调库对比模型

  1. 线性回归 vs 岭回归 vs LASSO 对波士顿房价预测,图形化对比(归一化数据 + SGD);
  2. 对三个模型的系数做对比分析。
注意 🟡 会用
  • 归一化的作用会直观体现:原始特征量纲差太大(CRIM 是几十,NOX 是零点几),不归一化时等高线是狭长椭圆,收敛慢还震荡。
  • 系数对比的核心看点:LASSO 把弱相关特征系数压成 0(稀疏),Ridge 系数整体偏小但非零,普通线性回归系数偏大且对共线敏感。

八、本讲知识链回顾 🔴 必会(合上笔记能默出来)#

模型 h(x)=θᵀx → 代价函数(平方误差) → 梯度推导 → LMS 规则 → BGD/SGD
↓ 特征扩展(多项式)
模型变复杂 → 过拟合风险 → 奥卡姆剃刀 → 正则化(L1/L2) → Ridge/LASSO

一条主线:从”怎么拟合”,到”怎么防止拟合过头”。下一讲逻辑回归,就是把 hθ(x)h_\theta(x) 套一个 sigmoid,把回归升级成分类。


附:一句话版本(考前过一遍)#

  • 模型:预测 = θᵀx(截距靠 x0=1x_0=1 塞进去)
  • 代价:½Σ(预测−真实)²,平方是为了好求导
  • 更新:θⱼ := θⱼ − α·(预测−真实)·xⱼ(LMS,错多少改多少)
  • 两种梯度:BGD 全量、SGD 随机(要 shuffle)
  • 防过拟合:加罚项,L2=Ridge、L1=LASSO(LASSO 会稀疏)
  • 作业:自己写梯度下降 + 调库对比三种模型系数
线性回归
https://entropy.lighterever.com/posts/线性回归/
作者
Lighterever
发布于
2026-09-16
许可协议
CC BY-NC-SA 4.0