COMP5318 Week 06 支持向量机与降维(PCA)讲课总结

COMP5318 W06 考点速成:SVM 与 PCA

用时约 15 分钟。必考:间隔 、核函数代入、软间隔 C 的作用、PCA 保留方差比例、PCA 前要缩放。对应 PE1 Q14–Q17,PE2 Q14–Q17。

一、知识点

1. 线性 SVM

flowchart LR
  P["+1 类支持向量<br/>w·x+b = +1"] ---|"1/‖w‖"| H["决策面<br/>w·x+b = 0"]
  H ---|"1/‖w‖"| N["−1 类支持向量<br/>w·x+b = −1"]
  P -.->|"整个间隔 2/‖w‖"| N
  • 标签 ;决策边界 ,分类 。
  • 两个支持平面 ,落在上面的点是支持向量。

整个间隔宽决策面到单侧支持面

  • 选最大间隔超平面:间隔大 → 对扰动更稳健、泛化更好(structural risk minimisation)。
  • 硬间隔:,约束 (所有样本分对且在间隔外)。
  • 对偶解 ;只有支持向量的 ,边界只由它们决定。训练和预测里数据只以点积出现。

2. 软间隔

C 效果
大 C 违例惩罚更重 → 间隔窄、易过拟合(但有限的 C 仍允许违例)
小 C 更看重宽间隔 → 正则更强、可能欠拟合

RBF 核的 gamma 大 → 每个点影响范围小 → 边界弯曲、易过拟合。过拟合时减小 C 或 gamma。

3. 核技巧

  • 把数据映射到高维 更可能线性可分;核函数直接给出高维内积 ,不必显式算 。
  • 原空间里得到的是非线性边界。
  • 例: ⇒ 。
  • 常用核:多项式 ;RBF (sklearn 默认);tanh(只有部分参数满足 Mercer 定理)。
  • 先试线性核,再试 RBF。SVM 对尺度敏感,要先缩放。

4. PCA

flowchart LR
  A["原始特征"] --> B["缩放(只在训练集 fit)"]
  B --> C["求主成分:正交、按方差降序"]
  C --> D["累计方差比例 ≥ 阈值的最小 k"]
  D --> E["投影到前 k 个主成分 = 新特征"]
  • 无监督、线性;找一组两两正交的新轴(主成分),按方差从大到小排列;主成分是原特征的线性组合。
  • PCA 是坐标变换,降维是只保留前 个方向;不是挑原始列(那是特征选择)。
  • 选 :① 累计方差比例 ≥ 阈值(如 95%);② 肘部法(主观)。

前个保留的比例

  • PCA 由方差驱动 → 换单位会改变结果 → 先缩放;scaler 和 PCA 都只在训练集上 fit。
  • SVD: , 的列 = 主成分, = 奇异值(降序), = 新坐标。压缩比 。
  • 用途:降维、特征提取(人脸 1-NN:原始像素 27% → PCA 100 维 36%)、压缩、可视化。

二、考点

  1. ★★★ 间隔计算: → ;别把单侧的 当成全宽。
  2. ★★★ 核函数代入:先算点积,再套公式。
  3. ★★★ 累计方差比例:找满足阈值的最小 。
  4. ★★ 核技巧为什么不用存映射后的向量(只需内积);C 变大惩罚更重。
  5. ★★ PCA 前缩放;PCA 是坐标变换不是选列。

三、题目

Q1(PE1 Q14) 硬间隔 SVM, ,两支持平面之间的距离?

,间隔 0.40。0.20 是决策面到一侧的距离。

Q2(PE2 Q14) , , 。

点积 , 49。

Q3(PE1 Q15) 核 SVM 为什么可以不显式存每个映射后的特征向量?

它的优化和预测只用到内积,而核函数直接给出这些内积。

Q4(PE2 Q15) 软间隔 SVM 把 C 调大,目标函数有什么变化?

对间隔违例的惩罚更重。有限的 C 不会一般性地禁止所有违例。

Q5(PE1 Q16) 两个测量单位差别很大,PCA 前做缩放为什么会改变第一主成分?

PCA 由方差驱动,换单位改变了各特征的相对方差。PCA 不用类别标签。

Q6(PE2 Q16) 有同学说「PCA 就是挑出几列原始特征」,最准确的纠正?

PCA 是一次线性坐标变换;降维是在新坐标系里保留部分方向。

Q7(PE1 Q17) 4 个主成分方差 9、5、4、2,保留 ≥ 85% 方差最少要几个?

总和 20;前 2 个 70%,前 3 个 90% → 3 个,保留 90%。

Q8(PE2 Q17) 3 个主成分方差 12、6、2,保留 ≥ 90% 最少几个?

前 1 个 60%,前 2 个 18/20 = 90%,恰好达到 → 2 个。

Q9(自拟) 删除所有非支持向量后重新训练硬间隔 SVM,边界会变吗?

不变。非支持向量的 ,不影响 和 。

Q10(自拟) RBF-SVM 训练准确率 100%、测试准确率很低,C 和 gamma 应该怎么调?

这是过拟合,减小 C 或减小 gamma,让边界更平滑。