第五章 线性判别分析·知识点+逻辑架构全梳理
(纯纸质手写考试,所有编程实现、工具调用全不考,仅考概念、算法推导、计算和作业原题,作业题占考试分值70%以上)
一、本章整体逻辑架构
核心问题:如何用线性函数实现样本分类?
↓
基础:线性判别函数定义+几何意义
↓
简单场景:两类线性判别问题
↓
扩展场景:多类线性判别问题(3种核心策略)
↓
高维难题解决:Fisher线性判别(降维+分类一体化)
↓
线性不可分难题解决1:支持向量机SVM(最大间隔+核技巧)
↓
线性不可分难题解决2:AdaBoost集成学习(弱分类器加权组合)
↓
最终目标:用线性/广义线性模型实现高精度分类
二、详细知识点架构(按考察优先级排序)
模块1:线性判别函数基础(填空+简答+计算)
线性判别函数定义
- 一般形式(核心公式):
$$
g(x) = w^T x + w_0
$$- $w$:权向量,决定判别超平面的方向
- $w_0$:偏置,决定超平面的位置
- 几何意义:$g(x)=0$ 对应d维空间中的一个$(d-1)$维超平面,将空间分为两个半区
- $g(x)>0$:样本属于第一类
- $g(x)<0$:样本属于第二类
- $g(x)=0$:样本在判别超平面上
- 一般形式(核心公式):
两类问题判别规则
- 若 $g(x) = w^T x + w_0 > 0$,则 $x \in \omega_1$
- 若 $g(x) = w^T x + w_0 < 0$,则 $x \in \omega_2$
多类问题的三种核心策略(作业第1题原题考点)
| 策略 | 判别规则 | 特点 |
|---|---|---|
| 一对多(Case1) | 为每个类$\omega_i$训练一个判别函数$g_i(x)$,若$g_i(x)>0$且其余$g_j(x)<0$,则$x \in \omega_i$ | 存在大量不确定区域(多个$g_i(x)>0$或全为负) |
| 一对一(Case2) | 为每两类$\omega_i$和$\omega_j$训练一个判别函数$g_{ij}(x)$,若$g_{ij}(x)>0$则$x$更可能属于$\omega_i$,最终得票最多的类为分类结果 | 不确定区域比一对多小,但仍存在 |
| 无不确定区域(Case3) | 为每个类$\omega_i$训练一个判别函数$g_i(x)$,若$g_i(x) > g_j(x)$对所有$j \neq i$成立,则$x \in \omega_i$ | 无不确定区域,最常用 |
一对多
求所有判别界面直线
题目给出的判别函数是 $d_1(x)=-x_1,\ d_2(x)=x_1+x_2-1,\ d_3(x)=x_1-x_2-1$,先令 $d_i(x)=0$,求出直线方程:
- $d_1(x)=0 \implies x_1=0$(纵轴)
- $d_2(x)=0 \implies x_1+x_2=1$(过((1,0))和((0,1))的直线)
- $d_3(x)=0 \implies x_1-x_2=1$(过((1,0))和((0,-1))的直线)
每个判别函数是「第i类 vs 其他所有类」的分类器:
| 类别 | 判定条件 |
|---|---|
| ω1 | d1>0, d2<0, d3<0 |
| ω2 | d2>0, d1<0, d3<0 |
| ω3 | d3>0, d1<0, d2<0 |
| 把每个条件转化为不等式,取半平面的交集,就是该类的区域。 | |
| 剩下的区域为不确定区(用阴影标出即可)。 |
一对一
每个样本 x 会经过 3 个成对判别器,投 3 票,规则如下:
| 判别函数 | 条件 | 投票结果 |
|---|---|---|
| d12(x) | d12>0⟹−x1>0⟹x1<0 | 投 ω1 |
| d12(x) | d12<0⟹−x1<0⟹x1>0 | 投 ω2 |
| d13(x) | d13>0⟹x1+x2−1>0⟹x1+x2>1 | 投 ω1 |
| d13(x) | d13<0⟹x1+x2−1<0⟹x1+x2<1 | 投 ω3 |
| d23(x) | d23>0⟹x1−x2−1>0⟹x1−x2>1 | 投 ω2 |
| d23(x) | d23<0⟹x1−x2−1<0⟹x1−x2<1 | 投 ω3 |
- 票数:三类各得 1 票,属于不确定区(一对一策略的固有缺陷,必须标出)
- 其他情况,是票数多着胜出
无不确定区域(Case3) 单判别函数多分类策略
三条直线交于点 $(0.5,0)$,把整个平面分成了 4 个主要区域。
对每个区域取代表点,计算 $d_1,d_2,d_3$ 的值,比较大小:
- 判别界面是 $d_i(x)=d_j(x)$,不是 $d_i(x)=0$,这是和一对多策略最本质的区别;
- 没有不确定区,平面上每个点都有唯一的类别;
- 解题时一定要用「代表点法」,通过计算判别函数值来确定区域类别,避免凭肉眼判断出错;
- 三条判别界面一定是两两相交的,交点处三个 (d_i(x)) 的值相等,是三类的交界点。
模块2:Fisher线性判别(最高频,作业第2、3题原题考点)
核心思想:将高维样本投影到一条直线上(降维),使得投影后类内样本尽可能紧凑,类间样本尽可能分离。
- 必背定义与公式
- 类均值向量:
$$
m_i = \frac{1}{N_i} \sum_{x \in \omega_i} x
$$
($N_i$ 为第 $i$ 类样本数) - 类内离差矩阵:
$$
S_w = S_{w1} + S_{w2}, \quad S_{wi} = \sum_{x \in \omega_i} (x - m_i)(x - m_i)^T
$$ - 类间散度矩阵:
$$
S_b = (m_1 - m_2)(m_1 - m_2)^T
$$ - Fisher准则函数(目标:最大化该函数):
$$
J_F(w) = \frac{w^T S_b w}{w^T S_w w}
$$
- 类均值向量:
Fisher 判别的核心目标是最大化:
$J(\vec{w}) = \frac{(\vec{w}^T(\vec{m}_1 - \vec{m}_2))^2}{\vec{w}^T S_W \vec{w}}$
最优投影方向求解
- 对 $J_F(w)$ 求导并令导数为0,可得:$S_b w = \lambda S_w w$
- 最终最优投影方向(必背公式):
$$
w^* = S_w^{-1} (m_1 - m_2)
$$
判别阈值计算
- 投影后类均值:$\tilde{m}_i = w^{*T} m_i$
- 常用阈值(作业题默认阈值):
$$
y_0 = \frac{\tilde{m}_1 + \tilde{m}_2}{2}
$$
分类决策规则
- 若 $y = w^{*T} x > y_0$,则 $x \in \omega_1$
- 若 $y = w^{*T} x < y_0$,则 $x \in \omega_2$
Fisher 线性判别的决策面方程,是指在原始二维特征空间中,能把两类样本分开的「分界线」方程。
所有投影值等于判别门限 $y_t$ 的样本点 x,组成的集合就是决策面。
模块3:支持向量机SVM(次高频,作业第4题原题考点)
核心思想:寻找一个最优分类超平面,使得两类样本到超平面的间隔最大,从而获得最好的泛化能力。
线性可分SVM原始优化问题
- 目标:最小化
$$
\frac{1}{2} |w|^2
$$ - 约束:
$$
y_i (w^T x_i + b) \geq 1, \quad i=1,2,…,N
$$
($y_i \in {+1,-1}$ 为样本标签)
- 目标:最小化
拉格朗日对偶问题(作业第4题原题考点)
- 构造拉格朗日函数:
$$
L(w,b,\alpha) = \frac{1}{2} |w|^2 - \sum_{i=1}^N \alpha_i [y_i (w^T x_i + b) - 1]
$$ - 对偶问题:
- 最大化:
$$
\sum_{i=1}^N \alpha_i - \frac{1}{2} \sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j x_i^T x_j
$$ - 约束:$\sum_{i=1}^N \alpha_i y_i = 0$,$\alpha_i \geq 0$,$i=1,2,…,N$
- 最大化:
- 构造拉格朗日函数:
支持向量:满足 $y_i (w^T x_i + b) = 1$ 的样本,对应 $\alpha_i > 0$,只有支持向量对最优超平面有影响。
核技巧(解决线性不可分问题)
- 核心思想:将原始低维空间的样本映射到高维特征空间,使其在高维空间线性可分
- 核函数(无需显式计算映射函数 $\phi(x)$):
$$
\kappa(x_i, x_j) = \phi(x_i)^T \phi(x_j)
$$ - 常用核函数:
- 线性核:$\kappa(x_i, x_j) = x_i^T x_j$(适用于线性可分数据)
- 多项式核:$\kappa(x_i, x_j) = (a x_i^T x_j + b)^c$
- 径向基核(RBF):
$$
\kappa(x_i, x_j) = \exp(-\gamma |x_i - x_j|^2)
$$
(最常用,拟合能力强)
模块4:AdaBoost算法(简答+填空)
核心思想:通过迭代训练多个弱分类器,将它们加权组合成一个强分类器,每次迭代重点关注上一次分类错误的样本。
算法步骤(必背)
- 初始化样本权重:$D_1(i) = \frac{1}{N}$,$i=1,2,…,N$
- 对 $t=1,2,…,T$:
- 用权重为 $D_t$ 的样本训练弱分类器 $h_t(x)$
- 计算 $h_t(x)$ 的分类误差:
$$
\varepsilon_t = \sum_{i=1}^N D_t(i) I(h_t(x_i) \neq y_i)
$$ - 计算弱分类器权重(误差越小,权重越大):
$$
\alpha_t = \frac{1}{2} \ln \frac{1 - \varepsilon_t}{\varepsilon_t}
$$ - 更新样本权重:
$$
D_{t+1}(i) = \frac{D_t(i) \exp(-\alpha_t y_i h_t(x_i))}{Z_t}
$$
- 组合强分类器:
$$
H(x) = \text{sign}\left( \sum_{t=1}^T \alpha_t h_t(x) \right)
$$
特点:无需调整参数,自动关注难分类样本,泛化能力强,易实现。
三、本章终极重点总结(只背这些就能拿高分)
1. 必背填空考点
- 线性判别函数 $g(x)=w^T x + w_0$ 中,$w$ 决定超平面方向,$w_0$ 决定超平面位置。
- Fisher线性判别最优投影方向:
$w^* = S_w^{-1} (m_1 - m_2)$ - SVM的核心目标是最大化分类间隔,间隔大小为 $\dfrac{2}{|w|}$。
- SVM中,只有支持向量对最优超平面的构造有影响,对应拉格朗日乘子 $\alpha_i > 0$。
- AdaBoost通过调整样本权重和加权组合弱分类器实现强分类。
2. 必背简答考点
简述Fisher线性判别的基本思想
答:将高维样本投影到一条最优直线上,使得投影后同一类的样本尽可能紧凑,不同类的样本尽可能分离,从而在低维空间实现分类。简述SVM中核函数的作用
答:核函数将原始低维空间的样本映射到高维特征空间,使得原本线性不可分的样本在高维空间变得线性可分;同时通过核技巧避免了高维空间的复杂计算,只需在原始空间计算核函数即可。比较多类线性判别三种策略的优缺点
答:①一对多:实现简单,但存在大量不确定区域;②一对一:不确定区域比一对多小,但需要训练 $C(C-1)/2$ 个分类器,计算量大;③无不确定区域:无分类模糊区域,是最常用的多类线性判别策略。
3. 必考计算考点(100%出作业原题)
- 多类线性判别区域绘制(作业第1题)
- Fisher线性判别完整计算(作业第2、3题)
- SVM拉格朗日对偶问题推导(作业第4题)
四、作业题
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 kipleyarch@gmail.com