本文是周志华《机器学习》(西瓜书)第3章 线性模型(Linear Models)的学习笔记,涵盖本章所有核心知识点,配有通俗类比与公式推导。

1基本形式

线性模型试图学得一个通过属性的线性组合来进行预测的函数:

📐 公式

f(x)=w1x1+w2x2++wdxd+b=wx+b f(\boldsymbol{x}) = w_1 x_1 + w_2 x_2 + \cdots + w_d x_d + b = \boldsymbol{w}^\top \boldsymbol{x} + b

其中 w=(w1,,wd)\boldsymbol{w} = (w_1,\dots,w_d)权重向量bb偏置(bias),x\boldsymbol{x}dd 维样本向量。

📌 核心定义

核心思想:用一条直线(二维)、一个平面(三维)、一个超平面(高维)去拟合数据。简单、可解释性强 —— 每个 wiw_i 直接反映了对应属性 xix_i 对预测结果的影响大小和方向。

🍉 通俗类比

你可以把线性模型想象成打分卡:每个特征 xix_i 是一道题得分,权重 wiw_i 是这道题的分值系数,bb 是基础分(不管答得怎样都有这个底分),最后的 f(x)f(x) 就是总分。模型学习的过程,就是根据历史成绩单反推出每道题应该值多少分。

2线性回归

2.1 最小二乘法

对于回归任务,最经典的策略是最小化均方误差(MSE)

📐 公式

w^=argminw^(yXw^)(yXw^) \hat{\boldsymbol{w} }^* = \arg\min_{\hat{\boldsymbol{w} } } (\boldsymbol{y} - \mathbf{X}\hat{\boldsymbol{w} })^\top (\boldsymbol{y} - \mathbf{X}\hat{\boldsymbol{w} })

w^\hat{\boldsymbol{w} } 求导并令其为 0,得到闭式解:

📐 公式

w^=(XX)1Xy \hat{\boldsymbol{w} }^* = (\mathbf{X}^\top \mathbf{X})^{-1} \mathbf{X}^\top \boldsymbol{y}

🍉 通俗类比

想象你要用一条直线拟合散点图上的数据点。最小二乘法就是在找让所有点到这条直线的竖直距离平方和最小的那条线。如果所有点都完美在直线上,MSE = 0。

2.2 广义线性模型

把线性模型的预测结果通过单调可微函数 g()g(\cdot) 连接:

📐 公式

y=g1(wx+b) y = g^{-1}(\boldsymbol{w}^\top \boldsymbol{x} + b) g()g(\cdot) 称为**"联系函数"**。它让线性回归可以扩展到更广的场景。

2.3 正则化

当特征数多或存在共线性时,XX\mathbf{X}^\top \mathbf{X} 可能不可逆。正则化引入额外约束:

类型 惩罚项 效果
岭回归 (L2) λw22\lambda\|\boldsymbol{w}\|_2^2 收缩系数,但不为零 —— 所有特征都保留
Lasso (L1) λw1\lambda\|\boldsymbol{w}\|_1 产生稀疏解 —— 部分 wi=0w_i = 0,天然做特征选择
弹性网 λ1w1+λ2w22\lambda_1\|\boldsymbol{w}\|_1 + \lambda_2\|\boldsymbol{w}\|_2^2 两者兼顾

💡 技巧提示

实用技巧:先跑 Lasso 筛掉明显无用的特征,再用岭回归在剩下的特征上精调,实践中非常有效。

3对数几率回归(逻辑回归)

虽然名字带”回归”,但它是分类模型。用 sigmoid 函数把线性输出压缩到 [0,1][0,1]

📐 公式

P(y=1x)=σ(wx+b)=11+e(wx+b) P(y=1|\boldsymbol{x}) = \sigma(\boldsymbol{w}^\top\boldsymbol{x}+b) = \frac{1}{1 + e^{-(\boldsymbol{w}^\top\boldsymbol{x}+b)} }

重写可得对数几率的线性形式(Logit):

📐 公式

lnP(y=1x)P(y=0x)=wx+b \ln\frac{P(y=1|\boldsymbol{x})}{P(y=0|\boldsymbol{x})} = \boldsymbol{w}^\top\boldsymbol{x} + b

🍉 通俗类比

逻辑回归就像裁判打分。裁判给每个选手一个原始分数(wx+b\boldsymbol{w}^\top\boldsymbol{x}+b),然后 sigmoid 把这个分数转化成**”晋级的概率”**。如果概率 > 0.5,晋级;概率 < 0.5,淘汰。

极大似然估计求解

目标是最小化交叉熵损失(对数似然的相反数):

📐 公式

(w)=i=1m[yilny^i+(1yi)ln(1y^i)] \ell(\boldsymbol{w}) = -\sum_{i=1}^m \big[y_i \ln \hat{y}_i + (1-y_i) \ln (1-\hat{y}_i)\big]

梯度下降牛顿法迭代求解(没有闭式解)。


线性函数
wTx + b ∈ (-∞,+∞)

Sigmoid σ(·)
压缩到 [0, 1]

概率 P(y=1|x)

⚠️ 注意事项

注意:逻辑回归只解决二分类问题。多分类需要扩展为 Softmax 回归(Multinomial Logistic Regression)。

4线性判别分析 LDA

LDA(Linear Discriminant Analysis)的视角很独特:找到一个投影方向,让同类别投影点尽可能近、异类别投影点尽可能远

推导

  • 类内散度矩阵 Sw=k=1KxCk(xμk)(xμk)\mathbf{S}_w = \sum_{k=1}^K \sum_{\boldsymbol{x}\in C_k} (\boldsymbol{x}-\boldsymbol{\mu}_k)(\boldsymbol{x}-\boldsymbol{\mu}_k)^\top
  • 类间散度矩阵 Sb=k=1Kmk(μkμ)(μkμ)\mathbf{S}_b = \sum_{k=1}^K m_k (\boldsymbol{\mu}_k-\boldsymbol{\mu})(\boldsymbol{\mu}_k-\boldsymbol{\mu})^\top
  • 最大化广义瑞利商:J=wSbwwSwwJ = \frac{\boldsymbol{w}^\top \mathbf{S}_b \boldsymbol{w} }{\boldsymbol{w}^\top \mathbf{S}_w \boldsymbol{w} }
  • 等价于广义特征值问题:Sbw=λSww\mathbf{S}_b\boldsymbol{w} = \lambda \mathbf{S}_w \boldsymbol{w},取最大 dd' 个特征值的特征向量

🍉 通俗类比

LDA 就像一个舞台灯光师:他要找一个最佳照射角度(投影方向),让台上的每个演员群体(类别)各自聚在一起(类内紧凑),同时不同群体之间拉开距离(类间分散)。

原始空间类别混在一起 投影 w 投影后空间同类很近 异类很远

💡 技巧提示

LDA 也可以做分类:投影后,新样本离哪个类的均值最接近就分到哪一类。

5多分类学习

很多二分类器不能直接处理多类问题,需要用拆解策略。

策略 做法 分类器数 特点
OvO (一对一) 每对类别训练一个分类器 K(K1)/2K(K-1)/2 每个分类器只涉及两个类,训练快但总数多
OvR (一对其余) 每个类 vs 其他所有类 KK 总数少,但每个分类器用全部数据
MvM (多对多) 选若干类作为正例,其余为反例 可调 最灵活,ECOC 是经典实现

ECOC(纠错输出码)

为每个类别分配一个编码向量(如 +1/-1),每个分类器只对应编码中的一”位”。预测时计算测试样本编码与各类编码的距离,取最近者。

类别编码 训练 L 个二分类器 海明距离解码

💡 技巧提示

ECOC 的纠错能力来自编码的冗余性。即使部分分类器出错,只要总错误位数不太多,仍能正确分类 —— 和通信中的纠错码思想一脉相承。

6类别不平衡问题

当正反例数量悬殊时,分类器会偏向多数类。

三类解决策略

策略 方法 说明
再缩放 调整分类阈值 若正例少,降低正例判定的阈值:y1y=y1y×mm+\frac{y'}{1-y'} = \frac{y}{1-y} \times \frac{m^-}{m^+}
欠采样 减少多数类样本 如 EasyEnsemble(集成学习 + 欠采样)
过采样 增加少数类样本 如 SMOTE(基于插值合成新样本,不是简单复制!)

🍉 通俗类比

一个班里只有 3 个左撇子,99 个右撇子。如果模型学成”所有人都是右撇子”,正确率也有 97%。但这毫无意义!再缩放等于告诉模型”左撇子的1票顶右撇子33票”;过采样SMOTE就是根据现有左撇子生成一些”虚构的合理左撇子”来平衡比例。

7本章总结

线性模型大家族 回归:OLS / Ridge / Lasso 分类:逻辑回归 / LDA 组合:OvO / OvR / ECOC 均方误差 梯度下降 交叉熵 Sigmoid/Softmax 编码矩阵 汉明距离 类别不平衡 → 再缩放 / SMOTE / EasyEnsemble
模型 任务类型 损失函数 能否直接多分类
线性回归 回归 MSE
逻辑回归 二分类 交叉熵 Softmax 扩展
LDA 降维 + 可分类 最大化类间/类内比 天然支持

📌 核心定义

一句话总结:线性模型 = 属性的线性组合 + 联系函数。看似简单,但它是 SVM、神经网络、集成学习等一切后续内容的地基。理解线性模型,后面的路会好走很多。

📝 考试高频考点

  • 线性回归的最小二乘闭式解推导条件与不可逆时的处理(正则化)
  • 逻辑回归的损失函数(交叉熵 vs MSE,为什么不用MSE?)
  • LDA 的优化目标(广义瑞利商)及其与 PCA 的区别
  • L1 vs L2 正则化的几何直觉(菱形 vs 圆形约束域 → 稀疏性差异)
  • 类别不平衡的三种处理策略及 SMOTE 原理