svm支持向量机

支持向量机(SVM)

1. SVM 的核心思想

支持向量机(Support Vector Machine, SVM)是一种监督学习算法,用于分类和回归任务。其目标是找到一个超平面,将数据点分为不同类别,同时 最大化分类间隔(margin)

对于线性可分数据,SVM 构造一个间隔最大的超平面;对于线性不可分数据,通过 核函数(Kernel Function) 将数据映射到高维特征空间,在高维空间中寻找分类超平面。


2. 线性 SVM 的公式推导

2.1 超平面定义

给定训练数据集:
{ ( x 1 , y 1 ) , ( x 2 , y 2 ) , ... , ( x n , y n ) } \{(x_1, y_1), (x_2, y_2), \dots, (x_n, y_n)\} {(x1,y1),(x2,y2),...,(xn,yn)}

其中:

  • x i ∈ R d x_i \in \mathbb{R}^d xi∈Rd:表示输入特征向量;
  • y i ∈ { − 1 , + 1 } y_i \in \{-1, +1\} yi∈{−1,+1}:表示对应的标签。

假设超平面方程为:
w ⋅ x + b = 0 w \cdot x + b = 0 w⋅x+b=0

其中:

  • (w) 为法向量,决定超平面的方向;
  • (b) 为偏置,决定超平面的位置。

2.2 分类间隔

分类间隔 (M) 定义为:
M = 2 ∥ w ∥ M = \frac{2}{\|w\|} M=∥w∥2

为了最大化间隔,等价于最小化 (|w|^2)。同时,为了正确分类,需要满足:
y i ( w ⋅ x i + b ) ≥ 1 , ∀ i y_i(w \cdot x_i + b) \geq 1, \quad \forall i yi(w⋅xi+b)≥1,∀i

2.3 优化目标

优化问题可以表示为:
min ⁡ w , b 1 2 ∥ w ∥ 2 \min_{w, b} \frac{1}{2} \|w\|^2 w,bmin21∥w∥2

约束条件为:
y i ( w ⋅ x i + b ) ≥ 1 , ∀ i y_i(w \cdot x_i + b) \geq 1, \quad \forall i yi(w⋅xi+b)≥1,∀i


3. 对偶问题推导

引入拉格朗日乘子 α i ≥ 0 \alpha_i \geq 0 αi≥0,构造拉格朗日函数:
L ( w , b , α ) = 1 2 ∥ w ∥ 2 − ∑ i = 1 n α i [ y i ( w ⋅ x i + b ) − 1 ] L(w, b, \alpha) = \frac{1}{2} \|w\|^2 - \sum_{i=1}^n \alpha_i \big[y_i(w \cdot x_i + b) - 1\big] L(w,b,α)=21∥w∥2−i=1∑nαi[yi(w⋅xi+b)−1]

对 (w) 和 (b) 求导并令导数为 0,可得:
w = ∑ i = 1 n α i y i x i w = \sum_{i=1}^n \alpha_i y_i x_i w=i=1∑nαiyixi
∑ i = 1 n α i y i = 0 \sum_{i=1}^n \alpha_i y_i = 0 i=1∑nαiyi=0

将 (w) 和 (b) 的表达式代入拉格朗日函数,得到对偶形式:
max ⁡ α ∑ i = 1 n α i − 1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j ( x i ⋅ x j ) \max_{\alpha} \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 \cdot x_j) αmaxi=1∑nαi−21i=1∑nj=1∑nαiαjyiyj(xi⋅xj)

约束条件为:
∑ i = 1 n α i y i = 0 , α i ≥ 0 \sum_{i=1}^n \alpha_i y_i = 0, \quad \alpha_i \geq 0 i=1∑nαiyi=0,αi≥0

最终,分类决策函数为:
f ( x ) = sign ( ∑ i = 1 n α i y i ( x ⋅ x i ) + b ) f(x) = \text{sign}\left(\sum_{i=1}^n \alpha_i y_i (x \cdot x_i) + b\right) f(x)=sign(i=1∑nαiyi(x⋅xi)+b)


4. 核函数与非线性 SVM

对于线性不可分数据,SVM 通过核函数 κ ( x i , x j ) \kappa(x_i, x_j) κ(xi,xj) 将数据映射到高维特征空间。常用核函数包括:

  1. 线性核
    κ ( x i , x j ) = x i ⋅ x j \kappa(x_i, x_j) = x_i \cdot x_j κ(xi,xj)=xi⋅xj

  2. 多项式核
    κ ( x i , x j ) = ( x i ⋅ x j + c ) d \kappa(x_i, x_j) = (x_i \cdot x_j + c)^d κ(xi,xj)=(xi⋅xj+c)d

  3. 高斯核(RBF 核)
    κ ( x i , x j ) = exp ⁡ ( − ∥ x i − x j ∥ 2 2 σ 2 ) \kappa(x_i, x_j) = \exp\left(-\frac{\|x_i - x_j\|^2}{2\sigma^2}\right) κ(xi,xj)=exp(−2σ2∥xi−xj∥2)

非线性问题的对偶形式为:
max ⁡ α ∑ i = 1 n α i − 1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j κ ( x i , x j ) \max_{\alpha} \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 \kappa(x_i, x_j) αmaxi=1∑nαi−21i=1∑nj=1∑nαiαjyiyjκ(xi,xj)


5. 软间隔 SVM

对于线性不可分数据,可以引入松弛变量 ξ i \xi_i ξi 和惩罚参数 C C C,优化目标为:
min ⁡ w , b , ξ 1 2 ∥ w ∥ 2 + C ∑ i = 1 n ξ i \min_{w, b, \xi} \frac{1}{2} \|w\|^2 + C \sum_{i=1}^n \xi_i w,b,ξmin21∥w∥2+Ci=1∑nξi

约束条件为:
y i ( w ⋅ x i + b ) ≥ 1 − ξ i , ξ i ≥ 0 y_i(w \cdot x_i + b) \geq 1 - \xi_i, \quad \xi_i \geq 0 yi(w⋅xi+b)≥1−ξi,ξi≥0


6. 总结

SVM 的核心特点:

  1. 能有效处理高维数据;
  2. 通过核函数扩展到非线性问题;
  3. 在小样本数据集上表现出色。

但对于大规模数据集,其计算复杂度较高。

相关推荐
Xの哲學11 分钟前
Linux 分区表深度技术剖析
linux·网络·算法·架构·边缘计算
写写闲篇儿18 分钟前
经典算法题剖析之传递信息(三)
算法
上不如老下不如小20 分钟前
2025年第七届全国高校计算机能力挑战赛初赛 Python组 编程题汇总
开发语言·python·算法
小年糕是糕手41 分钟前
【C++】类和对象(二) -- 构造函数、析构函数
java·c语言·开发语言·数据结构·c++·算法·leetcode
飞扬的风信子1 小时前
RAG基础知识
机器学习
kupeThinkPoem1 小时前
跳表有哪些算法?
数据结构·算法
前端小L1 小时前
图论专题(二十一):并查集的“工程应用”——拔线重连,修复「连通网络」
数据结构·算法·深度优先·图论·宽度优先
88号技师1 小时前
2025年9月一区SCI-孤行尺蠖觅食优化算法Solitary Inchworm Foraging-附Matlab免费代码
开发语言·算法·数学建模·matlab·优化算法
前端小L2 小时前
图论专题(二十五):最小生成树(MST)——用最少的钱,连通整个世界「连接所有点的最小费用」
算法·矩阵·深度优先·图论·宽度优先
前端小L2 小时前
图论专题(二十三):并查集的“数据清洗”——解决复杂的「账户合并」
数据结构·算法·安全·深度优先·图论