[学习笔记]数据挖掘-week5

本文详细介绍了支持向量机(SVM)的核心思想,包括线性SVM和非线性SVM。SVM通过寻找最大边距超平面实现分类,线性SVM解决线性可分问题,非线性SVM利用核函数映射到高维空间解决非线性问题。此外,文章还探讨了SVM的VC维、决策平面以及模型复杂度与测试误差的关系。
摘要由CSDN通过智能技术生成

支持向量机(SVM)

学习视频:80240372X 数据挖掘:理论与算法(自主模式)

核心思想:

  • 从输入空间向特征空间做映射。

Linear SVMs

SVM 最开始为线性分类器,分类过程如下图。

线性支持向量机

图片来源:Burges, C.J. A Tutorial on Support Vector Machines for Pattern Recognition. Data Mining and Knowledge Discovery 2, 121–167 (1998)

H 1 H_1 H1 H 2 H_2 H2 为用于分类的超平面, w w w 为垂直与超平面的向量, b b b 为常量,用于偏离原点。分界面中心至原点的距离为 − b / ∣ ∣ w ∣ ∣ -b/||w|| b/w,或表示为 ∣ b ∣ / ∣ ∣ w ∣ ∣ |b|/||w|| b/w。分类条件如下(对于每个点 x i x_i xi):

x i ⋅ w + b ≥ + 1 for y i = + 1 x i ⋅ w + b ≤ − 1 for y i = − 1 \begin{aligned} x_i\cdot w + b &\ge +1\quad\text{for}\quad y_i=+1\\ x_i\cdot w + b &\le -1\quad\text{for}\quad y_i=-1\\ \end{aligned} xiw+bxiw+b+1foryi=+11foryi=1

其中 ± 1 \pm 1 ±1 用来代表需要区分的两个类别。图中的 margin 空间越大,表示分类器效果更好。上下两个超平面上加圆圈的数据点被称为支持向量(Support Vectors)。而 SVM 能够保证超平面间的 margin 最大。上述的 SVM 又称为线性支持向量机(LSVM)。依旧只能处理线性分类问题。

空间中的数据点到达中心超平面(上图中的实线)的距离表示为:

∣ x i ⋅ w + b ∣ ∣ ∣ w ∣ ∣ \frac{|x_i\cdot w + b|}{||w||} wxiw+b

则上下两个超平面到中心平面的距离相等,且 margin 的宽度为其两倍。

∣ ± 1 ∣ ∣ ∣ w ∣ ∣ , distance 2 ∣ ∣ w ∣ ∣ , margin \begin{aligned} &\frac{|\pm1|}{||w||},\quad\text{distance}\\[2ex] &\frac{2}{||w||},\quad\text{margin} \end{aligned} w±1,distancew2,margin

综上,判断样本点是否被正确分类,可用如下公式统一表示:

y i ( w ⋅ x i + b ) − 1 ≥ 0 y_i(w\cdot x_i + b) - 1 \ge 0 yi(wxi+b)10

在样本被正确分类的前提下,最大化 margin,等价于最小化如下函数。

max  M = 2 ∣ ∣ w ∣ ∣ ⇒ min  1 2 w T w \text{max }M=\frac{2}{||w||}\Rightarrow \text{min }\frac{1}{2}w^Tw max M=w2min 21wTw

加上正确分类的约束条件,LSVM 的优化问题如下:

min  1 2 w T w s.t.  y i ( w i ⋅ x + b ) ≥ 1 \begin{aligned} &\text{min }\quad \frac{1}{2}w^Tw\\ &\text{s.t. }\quad y_i(w_i\cdot x + b) \ge 1 \end{aligned} min 21wTws.t. yi(wix+b)1

通过拉格朗日乘数法对该问题进行求解。

L P = 1 2 ∣ ∣ w ∣ ∣ 2 − ∑ i = 1 l a i y i ( w i ⋅ x i + b ) + ∑ i = 1 l a i ∂ L P ∂ w = 0 ⇒ w = ∑ i = 1 l a i y i x i ∂ L P ∂ b = 0 ⇒ ∑ i = 1 l a i y i = 0 \begin{aligned} L_P &= \frac{1}{2}||w||^2 - \sum_{i=1}^la_iy_i(w_i\cdot x_i + b) + \sum_{i=1}^la_i\\[2ex] &\frac{\partial L_P}{\partial w}= 0 \Rightarrow w=\sum_{i=1}^la_iy_ix_i\\[2ex] &\frac{\partial L_P}{\partial b}=0 \Rightarrow \sum_{i=1}^la_iy_i = 0 \end{aligned} LP=21w2i=1laiyi(wixi+b)+i=1laiwLP=0w=i=1laiyixibLP=0i=1laiyi=0

这里的拉格朗日乘数法之所以是减去限制条件,是因为将该问题做为二次规划问题处理,而二次规划问题中,不等式限制条件是小于等于 0 的形式。

将求导后的结果带回原式,得到新的目标函数(与原式表达的问题为对偶问题,一般对偶问题与原问题不等价,但 SVM 满足某些条件使得两问题可等价)。

L D = ∑ i a i − 1 2 ∑ i ∑ j a i a j y i y j x i x j = ∑ i a i − 1 2 a T H a w h e r e H i , j = y i y j x i ⋅ x j s . t . ∑ i a i y i = 0 & a i ≥ 0 \begin{aligned} L_D &= \sum_ia_i - \frac{1}{2}\sum_i\sum_ja_ia_jy_iy_jx_ix_j\\[2ex] &= \sum_ia_i-\frac{1}{2}a^THa\quad where \quad H_{i,j}=y_iy_jx_i\cdot x_j\\[2ex] s.t.&\quad \sum_ia_iy_i=0 \quad \&\quad a_i\ge 0 \end{aligned} LDs.t.=iai21ijaiajyiyjxixj=iai21aTHawhereHi,j=yiyjxixjiaiyi=0&ai0

同样,新的目标函数依旧是二次规划问题。求解过程更加方便。只有 1 个变量,即拉格朗日乘数。求解后,只有少部分 a a a 非零,而非零的点就是支持向量。

g ( x ) = w ⋅ x + b = ∑ i a i y i x i ⋅ x + b \begin{aligned} g(x) &= w\cdot x + b\\ &= \sum_ia_iy_ix_i\cdot x + b \end{aligned} g(x)=wx+b=iaiyixix+b

得出支持向量后,任选一个支持向量带入即可求 b。

y s ( x s ⋅ w + b ) = 1 y s ( ∑ m ∈ s a m y m x m ⋅ x s + b ) = 1 y x 2 ( ∑ m ∈ s a m y m x m ⋅ x s + b ) = y s y s − ∑ m ∈ s a m y m x m ⋅ x s = b \begin{aligned} y_s(x_s\cdot w + b) &= 1\\ y_s(\sum_{m\in s}a_my_mx_m\cdot x_s + b) &= 1\\ y_x^2(\sum_{m\in s}a_my_mx_m\cdot x_s + b)&=y_s\\ y_s - \sum_{m\in s}a_my_mx_m\cdot x_s &= b \end{aligned} ys(xsw+b)ys(msamymxmxs+b)yx2(msamymxmxs+b)ysmsamymxmxs=1=1=ys=b

y s y_s ys 是超平面处讨论的每个点的取值。上下超平面上的点取值只有正负一。所以平方后省略。

上述讨论的前提都是样本点被正确分类,然而,实际数据处理过程中,会出现某些 A 类点在 B 类点中,或 B 类点在 A 类点中。从而无法满足正确划分类别的不等式条件。此时,可以加上一个非负数,若满足条件,依旧视为正确划分。

y i ( x i ⋅ w + b ) − 1 + ξ i ≥ 0 min  1 2 w T w + C ∑ i ξ i ξ i ≥ 0 \begin{aligned} y_i(x_i\cdot w + b) - 1 + \xi_i \ge 0\\ \text{min }\quad \frac{1}{2}w^Tw + C\sum_i\xi_i\\ \xi_i \ge 0 \end{aligned} yi(xiw+b)1+ξi0min 21wTw+Ciξiξi0

相应的需要优化的目标函数也跟着改变,C 表示惩罚量。优化也是用拉格朗日乘数法。得到新的目标函数。

L D = ∑ i a i − 1 2 a T H a s . t . 0 ≤ a i ≤ C & ∑ i a i y i = 0 \begin{aligned} L_D = \sum_ia_i - \frac{1}{2}a^THa \\ s.t.\quad 0\le a_i\le C\quad\&\sum_ia_iy_i = 0 \end{aligned} LD=iai21aTHas.t.0aiC&iaiyi=0

相比于理想状况,只是限制条件多了一个上限。

Non-linear SVMs

为使 SVM 能够处理线性不可分问题,将原始空间的数据映射到特征空间中,在特征空间中,该数据是线性可分的。类似下图所示。

原始空间

特征空间

映射到更高维度的空间中相应的计算复杂度也就上升,但在 SVM 中存在这样的特性(来源于向量之间的点乘)。

K ( a , b ) = ( a ⋅ b + 1 ) 2 = Φ ( a ) ⋅ Φ ( b ) K(a,b)=(a\cdot b + 1)^2 = \varPhi(a)\cdot\varPhi(b) K(a,b)=(ab+1)2=Φ(a)Φ(b)
Φ ( x ) = ( 1 , 2 x 1 . . . 2 x m , x 1 2 , . . . , x m 2 , 2 x 1 x 2 , 2 x 1 x 3 , . . . , 2 x m − 1 x m ) \varPhi(x)=(1,\sqrt{2}x_1...\sqrt{2}x_m,x_1^2,...,x_m^2,\sqrt{2}x_1x_2,\sqrt{2}x_1x_3,...,\sqrt{2}x_{m-1}x_m) Φ(x)=(1,2 x1...2 xm,x12,...,xm2,2 x1x2,2 x1x3,...,2 xm1xm)

Φ ( x ) \varPhi(x) Φ(x)是定义的原始空间向量 x 在高维空间上的映射。 K ( a , b ) K(a,b) K(a,b)为核函数,不同的核函数对应不同的高维空间。常用的核函数如下:

Polynomial:  K ( x i , x j ) = ( x i ⋅ x j + 1 ) d Gaussian:  K ( x i , x j ) = exp ( − ∣ ∣ x i − x j ∣ ∣ 2 2 σ 2 ) \begin{aligned} \text{Polynomial: } K(x_i,x_j) = (x_i\cdot x_j + 1)^d\\ \text{Gaussian: } K(x_i,x_j) = \text{exp}\left(-\frac{||x_i-x_j||^2}{2\sigma^2} \right) \end{aligned} Polynomial: K(xi,xj)=(xixj+1)dGaussian: K(xi,xj)=exp(2σ2xixj2)

则高维空间中对支持向量机的计算过程转化如下。最终都转化成核函数的计算。

w = ∑ i = 1 l a i y i Φ ( x i ) w ⋅ Φ ( x j ) = ∑ i = 1 l a i y i Φ ( x i ) ⋅ Φ ( x j ) = ∑ i = 1 l a i y i K ( x i , x j ) b = y s − ∑ m ∈ s a m y m K ( x m , x s ) g ( x ) = ∑ i = 1 l a i y i K ( x i , x ) + b \begin{aligned} &w = \sum_{i=1}^la_iy_i\varPhi(x_i)\\ &w\cdot\varPhi(x_j) = \sum_{i=1}^la_iy_i\varPhi(x_i)\cdot\varPhi(x_j)=\sum_{i=1}^la_iy_iK(x_i,x_j)\\ &b = y_s - \sum_{m\in s}a_my_mK(x_m,x_s)\\ &g(x) = \sum_{i=1}^la_iy_iK(x_i,x) + b \end{aligned} w=i=1laiyiΦ(xi)wΦ(xj)=i=1laiyiΦ(xi)Φ(xj)=i=1laiyiK(xi,xj)b=ysmsamymK(xm,xs)g(x)=i=1laiyiK(xi,x)+b

最终,决策平面与线性支持向量机相差不大。

VC Dimension

衡量一个模型能力的指标,VC 表示两个作者名字的首字母。当存在 h 个样本点,随机对样本点定义标签,模型总能够正确的划分类别,则该模型的 VC dimension 为 h。在 n 维空间中,超平面的 h 值为 n+1。有了 VC dimension 可以对模型的测试误差有一个大概的估计。

E t e s t < E t r a i n + h ( log ⁡ ( 2 N / h ) + 1 ) − log ⁡ ( η / 4 ) N = 1 − η \begin{aligned} E_{test} &< E_{train} + \sqrt{\frac{h(\log(2N/h)+1)-\log(\eta/4)}{N}}\\ &= 1-\eta \end{aligned} Etest<Etrain+Nh(log(2N/h)+1)log(η/4) =1η

N N N为样本数量, η \eta η取值为[0,1], 1 − η 1-\eta 1η为至信度(VC confidence)。通过上述公式,对于训练误差相同的模型,越复杂的模型 h 更高,相应的测试误差更大的风险也就越高。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值