支持向量机
约 1002 字大约 3 分钟
2025-02-28
步骤分析
Step1:分类问题概述
支持向量机是一种监督学习方法,用于分类或回归任务(主要用于分类)。其目标是找到一个最优超平面,将不同类别的样本分隔开,同时最大化类别之间的间隔(margin)。SVM 通过平衡分类准确性和泛化能力,特别适用于高维数据和非线性可分问题。Step2:SVM 模型
- 数据集:X={x1,x2,…,xn},其中 xi∈Rd 是 d 维特征向量,yi∈{−1,1} 是对应的二分类标签。
- 超平面:定义为 wTx+b=0,其中 w 是法向量,b 是偏置。
- 支持向量:距离超平面最近的样本点,满足 wTxi+b=±1。
- 间隔(Margin):两类支持向量之间的距离,计算为 ∥w∥2,其中 ∥w∥=wTw。
- 目标函数:最大化间隔,即最小化 21∥w∥2,同时满足约束:
yi(wTxi+b)≥1,i=1,2,…,n
- 优化问题(硬间隔 SVM):
w,bmin21∥w∥2s.t.yi(wTxi+b)≥1
解释:21∥w∥2 控制超平面复杂度,约束确保所有样本被正确分类且在间隔外。
Step3:算法流程
SVM 通过求解优化问题找到最优超平面,主要步骤如下:步骤 1:拉格朗日对偶问题
为解决带约束优化,引入拉格朗日乘子 αi≥0,构造拉格朗日函数:L(w,b,α)=21∥w∥2−i=1∑nαi[yi(wTxi+b)−1]
对 w 和 b 求偏导并令其为零:
w=i=1∑nαiyixi,i=1∑nαiyi=0
代入后转化为对偶问题:
αmaxi=1∑nαi−21i=1∑nj=1∑nαiαjyiyjxiTxj
约束:αi≥0 且 ∑i=1nαiyi=0。
步骤 2:求解 α
使用数值优化方法(如 SMO 算法)求解对偶问题,得到最优 αi∗。
其中,αi∗>0 的样本为支持向量。步骤 3:计算 w 和 b
根据支持向量计算:
w∗=i=1∑nαi∗yixi
选择一个支持向量 (xs,ys)(满足 αs∗>0),计算偏置:
b∗=ys−w∗Txs
步骤 4:预测
对新样本 x,预测类别为:f(x)=sign(w∗Tx+b∗)
Step4:软间隔与核技巧
- 软间隔 SVM(处理线性不可分):
引入松弛变量 ξi≥0 和惩罚参数 C,优化目标变为:w,b,ξmin21∥w∥2+Ci=1∑nξi
约束:yi(wTxi+b)≥1−ξi,ξi≥0。
对偶问题修改为:αmaxi=1∑nαi−21i=1∑nj=1∑nαiαjyiyjxiTxj
约束:0≤αi≤C 且 ∑i=1nαiyi=0。 - 核技巧(处理非线性):
将数据映射到高维空间,用核函数 K(xi,xj) 替代 xiTxj:
对偶问题变为:αmaxi=1∑nαi−21i=1∑nj=1∑nαiαjyiyjK(xi,xj)
常用核函数: - 线性核:K(xi,xj)=xiTxj - 多项式核:K(xi,xj)=(xiTxj+1)p - 高斯核(RBF):K(xi,xj)=exp(−γ∥xi−xj∥2)解释:软间隔允许一定误分类,核技巧使 SVM 适用于非线性数据。
- 软间隔 SVM(处理线性不可分):
Step5:优化与评估
- 参数优化:
- C:控制间隔大小与误分类的权衡,C 越大越强调正确分类。
- 核参数(如 RBF 的 γ):影响模型复杂度,需调优。
- 评估方法: - 准确率:正确分类的样本比例。 - 混淆矩阵:分析各类别预测效果。 - ROC 和 AUC:评估二分类性能。 - 交叉验证:如 5 折交叉验证,评估泛化能力。
提示
SVM 对特征缩放敏感,建议标准化数据;高维数据计算复杂度较高。
Tips:SVM 实现 可参考 scikit-learn 的 SVC。 :::
- 参数优化:
