二十一.支持向量机(SVM)原理和sklearn实现

1.支持向量机和感知机

感知机:通过误分类点距离之和最小,寻找一个分类超平面,将不同类别的数据分隔在超平面两侧,这样的超平面有无数个。
支持向量机:最大化几何间隔寻找分类超平面,通俗点说就是最大化数据集中离超平面最近的点的距离,这样的超平面只有一个。

2.线性可分SVM之硬间隔最大化

(1)函数间隔和几何间隔

定义样本点 ( x i , y i ) (\mathbf{x}^{i},y^{i}) (xi,yi)关于超平面 ( w , b ) (\mathbf{w},b) (w,b)的函数间隔为:
γ i ′ = y i ( w T x i + b ) \gamma _{i}^{'}=y^{i}(\textbf{w}^{T}\mathbf{x}^{i}+b) γi=yi(wTxi+b)
函数间隔的值只能代表正确性和确信度,不能量化的代表准确度,因为当超平面的参数 w , b \mathbf{w},b w,b成比例增加或减少时,函数间隔值改变,但是超平面不变。
因此,将函数间隔加上法向量 w \mathbf{w} w的约束,可以得到几何间隔,几何间隔表示了点到超平面的带符号距离:
γ i = γ i ′ ∣ ∣ w ∣ ∣ 2 = y i ( w T x i + b ) ∣ ∣ w ∣ ∣ 2 \gamma _{i}=\frac{\gamma _{i}^{'}}{||\mathbf{w}||_{2}}=\frac{y^{i}(\textbf{w}^{T}\mathbf{x}^{i}+b)}{||\mathbf{w}||_{2}} γi=w2γi=w2yi(wTxi+b)
以上是样本点 ( x i , y i ) (\mathbf{x}^{i},y^{i}) (xi,yi)关于超平面 ( w , b ) (\mathbf{w},b) (w,b)的函数间隔和集合间隔。
数据集关于超平面的函数间隔和几何间隔,是所有样本中的最小值:
γ ′ = min ⁡ i = 1 , 2 , 3 , . . , m γ i ′ γ = min ⁡ i = 1 , 2 , 3 , . . , m γ i \gamma ^{'}=\min_{i=1,2,3,..,m}\gamma _{i}^{'}\\ \gamma =\min_{i=1,2,3,..,m}\gamma _{i} γ=i=1,2,3,..,mminγiγ=i=1,2,3,..,mminγi

(2)目标函数推导

SVM的目的是找到这样一个超平面,使距离超平面最近的点最远,即最大化超平面 ( w , b ) (\mathbf{w},b) (w,b)关于所有样本的几何间隔,用数学表示为:
max ⁡ w γ = γ ′ ∣ ∣ w ∣ ∣ 2 s . t . y i ( w T x i + b ) ∣ ∣ w ∣ ∣ 2 ⩾ γ ′ ∣ ∣ w ∣ ∣ 2 \max_{\mathbf{w}}\gamma =\frac{\gamma ^{'}}{||\mathbf{w}||_{2}}\\ s.t.\frac{y^{i}(\textbf{w}^{T}\mathbf{x}^{i}+b)}{||\mathbf{w}||_{2}}\geqslant \frac{\gamma ^{'}}{||\mathbf{w}||_{2}} wmaxγ=w2γs.t.w2yi(wTxi+b)w2γ
约束条件不等号两遍同乘 ∣ ∣ w ∣ ∣ 2 ||\mathbf{w}||_{2} w2得:
max ⁡ w γ = γ ′ ∣ ∣ w ∣ ∣ 2 s . t . y i ( w T x i + b ) ⩾ γ ′ \max_{\mathbf{w}}\gamma =\frac{\gamma ^{'}}{||\mathbf{w}||_{2}}\\ s.t.y^{i}(\textbf{w}^{T}\mathbf{x}^{i}+b)\geqslant \gamma ^{'} wmaxγ=w2γs.t.yi(wTxi+b)γ
w , b \mathbf{w},b w,b等比例改变时, γ ′ \gamma ^{'} γ的值会变,但是超平面不会变,因此,固定 γ ′ \gamma ^{'} γ 1 1 1,则上述条件变为:
max ⁡ w 1 ∣ ∣ w ∣ ∣ 2 s . t . y i ( w T x i + b ) − 1 ⩾ 0 \max_{\mathbf{w}}\frac{1}{||\mathbf{w}||_{2}}\\ s.t.y^{i}(\textbf{w}^{T}\mathbf{x}^{i}+b)-1\geqslant 0 wmaxw21s.t.yi(wTxi+b)10
极大化 1 ∣ ∣ w ∣ ∣ 2 \frac{1}{||\mathbf{w}||_{2}} w21等价于极小化 ∣ ∣ w ∣ ∣ 2 2 ||\mathbf{w}||_{2}^{2} w22,最终目标函数变为:
min ⁡ w 1 2 ∣ ∣ w ∣ ∣ 2 2 s . t . y i ( w T x i + b ) − 1 ⩾ 0 \min_{\mathbf{w}}\frac{1}{2}||\mathbf{w}||_{2}^{2}\\ s.t.y^{i}(\textbf{w}^{T}\mathbf{x}^{i}+b)-1\geqslant 0 wmin21w22s.t.yi(wTxi+b)10

(3)目标函数优化

有约束的最优化问题,使用拉格朗日乘子法。
首先,构造拉格朗日函数:
L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 2 − ∑ i = 1 m α i [ y i ( w T x i + b ) − 1 ] L(\mathbf{w},b,\alpha )=\frac{1}{2}||\mathbf{w}||_{2}^{2}-\sum_{i=1}^{m}\alpha ^{i}[y^{i}(\textbf{w}^{T}\mathbf{x}^{i}+b)-1] L(w,b,α)=21w22i=1mαi[yi(wTxi+b)1]
其中, α i ⩾ 0 \alpha ^{i}\geqslant0 αi0
有上式可知,原始问题为:
min ⁡ w , b max ⁡ α i ⩾ 0 L ( w , b , α ) \min_{\mathbf{w},b}\max_{\alpha ^{i}\geqslant 0}L(\mathbf{w},b,\alpha ) w,bminαi0maxL(w,b,α)
原始问题的对偶问题为:
max ⁡ α i ⩾ 0 min ⁡ w , b L ( w , b , α ) \max_{\alpha ^{i}\geqslant 0}\min_{\mathbf{w},b}L(\mathbf{w},b,\alpha ) αi0maxw,bminL(w,b,α)
原始问题转化成了对偶问题,首先求内层极小值:
min ⁡ w , b L ( w , b , α ) \min_{\mathbf{w},b}L(\mathbf{w},b,\alpha ) w,bminL(w,b,α)
损失函数首先对 w , b \mathbf{w},b w,b分别求导:
∂ L ∂ w = w − ∑ i = 1 m α i y i x i = 0 ⇒ w = ∑ i = 1 m α i y i x i ∂ L ∂ b = − ∑ i = 1 m α i y i = 0 ⇒ ∑ i = 1 m α i y i = 0 \frac{\partial L}{\partial \mathbf{w}}=\mathbf{w}-\sum_{i=1}^{m}\alpha ^{i}y^{i}\mathbf{x}^{i}=0\Rightarrow \mathbf{w}=\sum_{i=1}^{m}\alpha ^{i}y^{i}\mathbf{x}^{i}\\ \frac{\partial L}{\partial b}=-\sum _{i=1}^{m}\alpha ^{i}y^{i}=0\Rightarrow \sum _{i=1}^{m}\alpha ^{i}y^{i}=0 wL=wi=1mαiyixi=0w=i=1mαiyixibL=i=1mαiyi=0i=1mαiyi=0
将上两式带入原式得:
min ⁡ w , b L ( w , b , α ) = 1 2 w T w − ∑ i = 1 m α i y i w T x i − ∑ i = 1 m α i y i b + ∑ i = 1 m α i = 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j ( x i ) T x j − ∑ i = 1 m ∑ j = 1 m α i α j y i y j ( x i ) T x j + ∑ i = 1 m α i = − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j ( x i ) T x j + ∑ i = 1 m α \begin{aligned} \min_{\mathbf{w},b}L(\mathbf{w},b,\alpha ) &= \frac{1}{2}\mathbf{w^{T}w}-\sum_{i=1}^{m}\alpha ^{i}y^{i}\mathbf{w}^{T}\mathbf{x}^{i}-\sum_{i=1}^{m}\alpha ^{i}y^{i}b+\sum_{i=1}^{m}\alpha ^{i}\\ &= \frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha ^{i}\alpha ^{j}y^{i}y^{j}(\mathbf{x^{i}})^{T}\mathbf{x}^{j}-\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha ^{i}\alpha ^{j}y^{i}y^{j}(\mathbf{x^{i}})^{T}\mathbf{x}^{j}+\sum_{i=1}^{m}\alpha ^{i}\\ &=-\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha ^{i}\alpha ^{j}y^{i}y^{j}(\mathbf{x^{i}})^{T}\mathbf{x}^{j}+\sum_{i=1}^{m}\alpha \end{aligned} w,bminL(w,b,α)=21wTwi=1mαiyiwTxii=1mαiyib+i=1mαi=21i=1mj=1mαiαjyiyj(xi)Txji=1mj=1mαiαjyiyj(xi)Txj+i=1mαi=21i=1mj=1mαiαjyiyj(xi)Txj+i=1mα
更新目标函数:
max ⁡ α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j ( x i ) T x j + ∑ i = 1 m α s . t . ∑ i = 1 m α i y i = 0 α i ⩾ 0 \max_{\alpha ^{i}}-\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha ^{i}\alpha ^{j}y^{i}y^{j}(\mathbf{x^{i}})^{T}\mathbf{x}^{j}+\sum_{i=1}^{m}\alpha \\ s.t.\sum_{i=1}^{m}\alpha ^{i}y^{i}=0\\ \alpha ^{i}\geqslant 0 αimax21i=1mj=1mαiαjyiyj(xi)Txj+i=1mαs.t.i=1mαiyi=0αi0

(4)目标函数求解

a.求 w \mathbf{w} w
上述约束优化问题中,只有参数 α \alpha α未知,可以用SMO算法求出 α \alpha α的值 α i ∗ \alpha ^{i*} αi,进而可求得:
w ∗ = ∑ i = 1 m α i ∗ y i x i \mathbf{w}^{*}=\sum_{i=1}^{m}\alpha ^{i*}y^{i}\mathbf{x}^{i} w=i=1mαiyixi
b.求 b b b
通过以下两个公式:
y i ( ( w ∗ ) T x i + b ) − 1 = 0 α i ∗ ⩾ 0 y^{i}((\mathbf{w}^{*})^{T}\mathbf{x}^{i}+b)-1= 0\\ \alpha ^{i*}\geqslant 0 yi((w)Txi+b)1=0αi0
可以找到所有的支持向量(距离超平面最近的点),计算出每个支持向量的偏置:
b i ∗ = y i − ( w ∗ ) T x i ( y i 为 正 负 1 ) b^{i*}=y^{i}-(\mathbf{w}^{*})^{T}\mathbf{x}^{i}(y^{i}为正负1) bi=yi(w)Txi(yi1)
取平均值作为超平面的偏置:
b ∗ = 1 ∣ D ∣ ∑ x i ∈ D b i ∗ b^{*}=\frac{1}{|D|}\sum_{\mathbf{x}^{i}\in D}b^{i*} b=D1xiDbi
其中, D D D为支持向量的集合, ∣ D ∣ |D| D为支持向量的数量。
最终,可得分类超平面:
( w i ∗ ) T x + b ∗ = 0 (\mathbf{w}^{i*})^{T}\mathbf{x}+b^{*}=0 (wi)Tx+b=0
分类决策函数:
f ( x ) = s i g n [ ( w i ∗ ) T x + b ∗ ] f(\mathbf{x})=sign[(\mathbf{w}^{i*})^{T}\mathbf{x}+b^{*}] f(x)=sign[(wi)Tx+b]

(5)硬间隔最大化的支持向量

在线性可分情况下,与分离超平面最近的点称为支持向量。
根据KKT条件中的松弛互补条件:
α i [ y i ( w T x i + b ) − 1 ] = 0 \alpha ^{i}[y^{i}(\mathbf{w}^{T}\mathbf{x}^{i}+b)-1]= 0 αi[yi(wTxi+b)1]=0
α i > 0 \alpha ^{i}>0 αi>0时,可行解落在约束边界上,且:
y i ( w T x i + b ) − 1 = 0 y^{i}(\mathbf{w}^{T}\mathbf{x}^{i}+b)-1= 0 yi(wTxi+b)1=0
可以以此找出支持向量。

2.线性SVM之软间隔最大化

(1)软间隔最大化

有时候,数据集是线性可分的,但是由于异常点的存在,导致超平面线性不可分,或者严重影响了模型的预测效果。这时候,可以使SVM对数据集中的每一个样本 ( x i , y i ) (\mathbf{x}^{i},y^{i}) (xi,yi)引入一个松弛变量 ξ i ⩾ 0 \xi ^{i}\geqslant 0 ξi0,使间隔可以通过松弛变量调整大小,引入松弛变量的几何间隔被称为软间隔,数学表示为:
y i ( w T x i + b ) ⩾ 1 − ξ i y^{i}(\mathbf{w}^{T}\mathbf{x}^{i}+b)\geqslant 1-\xi ^{i} yi(wTxi+b)1ξi
软间隔最大化用数学表示为:
min ⁡ w 1 2 ∣ ∣ w ∣ ∣ 2 2 + C ∑ i = 1 m ξ i s . t . y i ( w T x i + b ) ⩾ 1 − ξ i ξ i ⩾ 0 \min_{\mathbf{w}}\frac{1}{2}||\mathbf{w}||_{2}^{2}+C\sum_{i=1}^{m}\xi ^{i}\\ s.t.y^{i}(\mathbf{w^{T}x^{i}}+b)\geqslant 1-\xi ^{i}\\ \xi ^{i}\geqslant 0 wmin21w22+Ci=1mξis.t.yi(wTxi+b)1ξiξi0
其中, C C C为惩罚系数,它的值越大对误分类的惩罚越大。

(2)目标函数优化

构造拉格朗日函数:
L ( w , b , ξ , α , μ ) = 1 2 ∣ ∣ w ∣ ∣ 2 2 + C ∑ i = 1 m ξ i − ∑ i = 1 m α i [ y i ( w T x i + b ) − 1 + ξ i ] − ∑ i = 1 m μ i ξ i L(\mathbf{w},b,\xi ,\alpha ,\mu )=\frac{1}{2}||\mathbf{w}||_{2}^{2}+C\sum_{i=1}^{m}\xi ^{i}-\sum_{i=1}^{m}\alpha ^{i}[y^{i}(\mathbf{w^{T}x^{i}}+b)- 1+\xi ^{i}]-\sum_{i=1}^{m}\mu^{i}\xi ^{i} L(w,b,ξ,α,μ)=21w22+Ci=1mξii=1mαi[yi(wTxi+b)1+ξi]i=1mμiξi
原始问题:
min ⁡ w , b , ξ max ⁡ α ⩾ 0 , μ ⩾ 0 L ( w , b , ξ , α , μ ) \min_{\mathbf{w},b,\xi }\max_{\alpha \geqslant 0,\mu \geqslant 0} L(\mathbf{w},b,\xi ,\alpha ,\mu ) w,b,ξminα0,μ0maxL(w,b,ξ,α,μ)
对偶问题:
max ⁡ α ⩾ 0 , μ ⩾ 0 min ⁡ w , b , ξ L ( w , b , ξ , α , μ ) \max_{\alpha \geqslant 0,\mu \geqslant 0} \min_{\mathbf{w},b,\xi }L(\mathbf{w},b,\xi ,\alpha ,\mu ) α0,μ0maxw,b,ξminL(w,b,ξ,α,μ)
求内层极小值:
∂ L ∂ w = w − ∑ i = 1 m α i y i x i ⇒ w = ∑ i = 1 m α i y i x i ∂ L ∂ b = − ∑ i = 1 m α i y i = 0 ⇒ ∑ i = 1 m α i y i = 0 ∂ L ∂ ξ = C − α i − μ i = 0 \begin{aligned} \frac{\partial L}{\partial \mathbf{w}} &=\mathbf{w}-\sum_{i=1}^{m} \alpha ^{i}y^{i}\mathbf{x}^{i}\Rightarrow \mathbf{w}=\sum_{i=1}^{m} \alpha ^{i}y^{i}\mathbf{x}^{i}\\ \frac{\partial L}{\partial b} &= -\sum_{i=1}^{m}\alpha ^{i}y^{i}=0\Rightarrow \sum_{i=1}^{m}\alpha ^{i}y^{i}=0\\ \frac{\partial L}{\partial \xi } &=C-\alpha ^{i}-\mu ^{i}=0 \end{aligned} wLbLξL=wi=1mαiyixiw=i=1mαiyixi=i=1mαiyi=0i=1mαiyi=0=Cαiμi=0
将上三式带入 L L L得:
L ( w , b , ξ , α , μ ) = 1 2 ∣ ∣ w ∣ ∣ 2 2 + C ∑ i = 1 m ξ i − ∑ i = 1 m α i [ y i ( w T x i + b ) − 1 + ξ i ] − ∑ i = 1 m μ i ξ i = 1 2 ∣ ∣ w ∣ ∣ 2 2 + ( C − α i − μ i ) ∑ i = 1 m ξ i − ∑ i = 1 m α i [ y i ( w T x i + b ) − 1 ] = 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j ( x i ) T x j − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j ( x i ) T x j − ∑ i = 1 m α i y i b + ∑ i = 1 m α i = − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j ( x i ) T x j + ∑ i = 1 m α i \begin{aligned} L(\mathbf{w},b,\xi ,\alpha ,\mu )&=\frac{1}{2}||\mathbf{w}||_{2}^{2}+C\sum_{i=1}^{m}\xi ^{i}-\sum_{i=1}^{m}\alpha ^{i}[y^{i}(\mathbf{w^{T}x^{i}}+b)- 1+\xi ^{i}]-\sum_{i=1}^{m}\mu^{i}\xi ^{i}\\ &= \frac{1}{2}||\mathbf{w}||_{2}^{2}+(C-\alpha ^{i}-\mu ^{i})\sum_{i=1}^{m}\xi ^{i}-\sum_{i=1}^{m}\alpha ^{i}[y^{i}(\mathbf{w^{T}x^{i}}+b)- 1]\\ &=\frac{1}{2}\sum _{i=1}^{m}\sum_{j=1}^{m}\alpha ^{i}\alpha ^{j}y^{i}y^{j}\mathbf{(x^{i})^{T}x^{j}}-\frac{1}{2}\sum _{i=1}^{m}\sum_{j=1}^{m}\alpha ^{i}\alpha ^{j}y^{i}y^{j}\mathbf{(x^{i})^{T}x^{j}}-\sum_{i=1}^{m}\alpha ^{i}y^{i}b+\sum_{i=1}^{m}\alpha ^{i}\\ &=-\frac{1}{2}\sum _{i=1}^{m}\sum_{j=1}^{m}\alpha ^{i}\alpha ^{j}y^{i}y^{j}\mathbf{(x^{i})^{T}x^{j}}+\sum_{i=1}^{m}\alpha ^{i} \end{aligned} L(w,b,ξ,α,μ)=21w22+Ci=1mξii=1mαi[yi(wTxi+b)1+ξi]i=1mμiξi=21w22+(Cαiμi)i=1mξii=1mαi[yi(wTxi+b)1]=21i=1mj=1mαiαjyiyj(xi)Txj21i=1mj=1mαiαjyiyj(xi)Txji=1mαiyib+i=1mαi=21i=1mj=1mαiαjyiyj(xi)Txj+i=1mαi
问题优化为:
max ⁡ α − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j ( x i ) T x j + ∑ i = 1 m α i s . t . ∑ i = 1 m α i y i = 0 C − α i − μ i = 0 α i , μ i ⩾ 0 \max_{\alpha }-\frac{1}{2}\sum _{i=1}^{m}\sum_{j=1}^{m}\alpha ^{i}\alpha ^{j}y^{i}y^{j}\mathbf{(x^{i})^{T}x^{j}}+\sum_{i=1}^{m}\alpha ^{i}\\ s.t. \sum_{i=1}^{m}\alpha ^{i}y^{i}=0\\ C-\alpha ^{i}-\mu ^{i}=0\\ \alpha ^{i},\mu ^{i}\geqslant 0 αmax21i=1mj=1mαiαjyiyj(xi)Txj+i=1mαis.t.i=1mαiyi=0Cαiμi=0αi,μi0
最优化取反,约束条件后两项合并,问题进一步优化为:
min ⁡ α 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j ( x i ) T x j − ∑ i = 1 m α i s . t . ∑ i = 1 m α i y i = 0 0 ⩽ α i ⩽ C \min_{\alpha }\frac{1}{2}\sum _{i=1}^{m}\sum_{j=1}^{m}\alpha ^{i}\alpha ^{j}y^{i}y^{j}\mathbf{(x^{i})^{T}x^{j}}-\sum_{i=1}^{m}\alpha ^{i}\\ s.t. \sum_{i=1}^{m}\alpha ^{i}y^{i}=0\\ 0\leqslant \alpha ^{i}\leqslant C αmin21i=1mj=1mαiαjyiyj(xi)Txji=1mαis.t.i=1mαiyi=00αiC

(3)目标函数求解

同线性可分SVM硬间隔最大化的求解方法。

(4)软间隔最大化的支持向量

软间隔最大化的支持向量的间隔距离为:
ξ ∣ ∣ w ∣ ∣ 2 2 \frac{\xi }{||\mathbf{w}||_{2}^{2}} w22ξ
根据KKT条件中的松弛互补条例:
α i [ y i ( w T x i + b ) − 1 ] = 0 \alpha ^{i}[y^{i}(\mathbf{w}^{T}\mathbf{x}^{i}+b)-1]= 0 αi[yi(wTxi+b)1]=0
支持向量的寻找分为以下几种情况:
A.如果 α = 0 \alpha=0 α=0,那么:
y i ( w T x i + b ) − 1 ⩾ 0 y^{i}(\mathbf{w}^{T}\mathbf{x}^{i}+b)-1\geqslant 0 yi(wTxi+b)10
样本在间隔边界或被正确分类。
B.如果 0 < α < C 0<\alpha<C 0<α<C,则:
y i ( w T x i + b ) − 1 = 0 ξ i = 0 y^{i}(\mathbf{w}^{T}\mathbf{x}^{i}+b)-1= 0\\\xi ^{i}=0 yi(wTxi+b)1=0ξi=0
样本在间隔边界。
C.如果 α = C \alpha =C α=C,则此样本为异常点,需要分情况讨论:
a.当 0 < ξ < 1 0<\xi <1 0<ξ<1,异常点被正确分类,但是位于超平面和自己类别的间隔边界之间。
b.当 ξ = 1 \xi =1 ξ=1,异常点在分离超平面上,无法被正确分类。
c.当 ξ > 1 \xi >1 ξ>1,异常点在超平面的另一侧,也就是说,这个点不能被正常分类。

(5)合页损失函数

线性SVM的另一种解释为:
min ⁡ w , b [ 1 − y i ( w T x i + b ) ] + λ ∣ ∣ w ∣ ∣ 2 2 \min_{\mathbf{w},b}[1-y^{i}(\mathbf{w^{T}x^{i}}+b)]+\lambda ||\mathbf{w}||_{2}^{2} w,bmin[1yi(wTxi+b)]+λw22
令:
L = [ z ] + = [ 1 − y i ( w T x i + b ) ] + L=[z]_{+}=[1-y^{i}(\mathbf{w^{T}x^{i}}+b)]_{+} L=[z]+=[1yi(wTxi+b)]+
其中:
[ z ] + = { z , z > 0 0 , z ⩽ 0 [z]_{+}=\left\{\begin{matrix} z,z>0\\ 0,z\leqslant 0 \end{matrix}\right. [z]+={z,z>00,z0
函数 L L L被称为合页损失函数,它表示如果样本被正确分类且间隔距离大于1,损失为0;否则,损失为:
1 − y i ( w T x i + b ) 1-y^{i}(\mathbf{w^{T}x^{i}}+b) 1yi(wTxi+b)

3.非线性SVM之核函数

(1)从低维到高维

考虑只含两个变量的多项式:
h ( x 1 , x 2 ) = θ 0 + θ 1 x 1 + θ 2 x 2 + θ 3 x 1 2 + θ 4 x 2 2 + θ 5 x 1 x 2 h(x_{1},x_{2})=\theta _{0}+\theta _{1}x_{1}+\theta _{2}x_{2}+\theta _{3}x_{1}^{2}+\theta _{4}x_{2}^{2}+\theta _{5}x_{1}x_{2} h(x1,x2)=θ0+θ1x1+θ2x2+θ3x12+θ4x22+θ5x1x2
该多项式在二维空间不可分,但是,如果令:
x 3 = 1 2 , x 4 = x 2 2 , x 5 = x 1 x 2 x_{3}=_{1}^{2},x_{4}=x_{2}^{2},x_{5}=x_{1}x_{2} x3=12,x4=x22,x5=x1x2
则不等式变为:
h ( x ) = θ 1 x 1 + θ 2 x 2 + θ 3 x 3 + θ 4 x 4 + θ 5 x 5 h(x)=\theta _{1}x_{1}+\theta _{2}x_{2}+\theta _{3}x_{3}+\theta _{4}x_{4}+\theta _{5}x_{5} h(x)=θ1x1+θ2x2+θ3x3+θ4x4+θ5x5
此时,多项式在五维空间线性可分。

(2)核函数的引入

当数据在低维不可分时,SVM通过核函数数将数据映射到高维,使数据在高维可分,此时,约束优化问题变为:
min ⁡ α 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j K ( x i , x j ) ∑ i = 1 m α i s . t . ∑ i = 1 m α i y i = 0 0 ⩽ α i ⩽ C \min_{\alpha }\frac{1}{2}\sum _{i=1}^{m}\sum_{j=1}^{m}\alpha ^{i}\alpha ^{j}y^{i}y^{j}K(\mathbf{x}^{i},\mathbf{x}^{j})\sum_{i=1}^{m}\alpha ^{i}\\ s.t. \sum_{i=1}^{m}\alpha ^{i}y^{i}=0\\ 0\leqslant \alpha ^{i}\leqslant C αmin21i=1mj=1mαiαjyiyjK(xi,xj)i=1mαis.t.i=1mαiyi=00αiC
其中, K ( x i , x j ) = Φ ( x i ) ⋅ Φ ( x j ) K(\mathbf{x}^{i},\mathbf{x}^{j})=\Phi(\mathbf{x}^{i})\cdot \Phi(\mathbf{x}^{j}) K(xi,xj)=Φ(xi)Φ(xj)为核函数。

(3)常用核函数

a.线性核函数
K ( x i , x j ) = ( x i ) T x j K(\mathbf{x}^{i},\mathbf{x}^{j})=(\mathbf{x}^{i})^{T}\mathbf{x}^{j} K(xi,xj)=(xi)Txj
本质为线性SVM,可通过核函数将其归类到此。
b.多项式核函数
K ( x i , x j ) = [ α ( x i ) T x j + β ] γ K(\mathbf{x}^{i},\mathbf{x}^{j})=[\alpha (\mathbf{x}^{i})^{T}\mathbf{x}^{j}+\beta ]^{\gamma } K(xi,xj)=[α(xi)Txj+β]γ
其中, α , β , γ , \alpha ,\beta ,\gamma , α,β,γ,需要调参。
多项式核函数是最常用的线性不可分核函数之一。
c.高斯核函数
K ( x i , x j ) = exp ⁡ [ − γ ∣ ∣ x i − x j ∣ ∣ 2 ] K(\mathbf{x}^{i},\mathbf{x}^{j})=\exp[-\gamma ||\mathbf{x}^{i}-\mathbf{x}^{j}||^{2}] K(xi,xj)=exp[γxixj2]
d.tanh核函数
K ( x i , x j ) = tanh ⁡ ( α ( x i ) T x j + γ ) K(\mathbf{x}^{i},\mathbf{x}^{j})=\tanh(\alpha (\mathbf{x}^{i})^{T}\mathbf{x}^{j}+\gamma ) K(xi,xj)=tanh(α(xi)Txj+γ)

(4)SVM算法流程

输入: m m m个样本,每个样本有 n n n维特征和一个二类别标签 y y y
输出:样本的预测值。
a.选择适当的核函数 K ( x i , x j ) K(\mathbf{x}^{i},\mathbf{x}^{j}) K(xi,xj)和惩罚系数 C > 0 C>0 C>0,构造约束优化问题:
min ⁡ α 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j K ( x i , x j ) ∑ i = 1 m α i s . t . ∑ i = 1 m α i y i = 0 0 ⩽ α i ⩽ C \min_{\alpha }\frac{1}{2}\sum _{i=1}^{m}\sum_{j=1}^{m}\alpha ^{i}\alpha ^{j}y^{i}y^{j}K(\mathbf{x}^{i},\mathbf{x}^{j})\sum_{i=1}^{m}\alpha ^{i}\\ s.t. \sum_{i=1}^{m}\alpha ^{i}y^{i}=0\\ 0\leqslant \alpha ^{i}\leqslant C αmin21i=1mj=1mαiαjyiyjK(xi,xj)i=1mαis.t.i=1mαiyi=00αiC
b.用SMO算法得到 α \alpha α的值 α ∗ \alpha ^{*} α
c.求解系数 w \mathbf{w} w
w ∗ = ∑ i = 1 m α i ∗ y i Φ ( x i ) \mathbf{w}^{*}=\sum_{i=1}^{m}\alpha ^{i*}y^{i}\Phi (\mathbf{x}^{i}) w=i=1mαiyiΦ(xi)
d.通过 0 < α i < 0 0<\alpha ^{i}<0 0<αi<0找到所有的支持向量,通过 y i [ ( w ∗ ) T Φ ( x i ) + b ] = 1 y^{i}[(\mathbf{w}^{*})^{T}\Phi (\mathbf{x}^{i})+b]=1 yi[(w)TΦ(xi)+b]=1计算出所有的支持向量的偏置:
b i ∗ = y i − ( w ∗ ) T Φ ( x i ) b^{i*}=y^{i}-(\mathbf{w}^{*})^{T}\Phi (\mathbf{x}^{i}) bi=yi(w)TΦ(xi)
去平均值作为超平面的偏置:
b ∗ = 1 ∣ D ∣ ∑ x i ∈ D b i ∗ b^{*}=\frac{1}{|D|}\sum_{x^{i}\in D}b^{i*} b=D1xiDbi
e.最终,得分类超平面:
( w ∗ ) T x + b ∗ = 0 (\mathbf{w}^{*})^{T}\mathbf{x}+b^{*}=0 (w)Tx+b=0
分类决策函数:
f ( x ) = s i g n [ ( w ∗ ) T x + b ∗ ] f(x)=sign[(\mathbf{w}^{*})^{T}\mathbf{x}+b^{*}] f(x)=sign[(w)Tx+b]

4.SOM算法简介

SMO中每次优化两个变量,将除这两个变量之外的变量都视为常量。

5.SVM线性支持回归

SVM不仅可用来分类,也可以用来进行回归。

6.sklearn实现SVM

(1)数据预处理

导入数据集,划分数据集,数据标准化

from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
digits = load_digits()
x,y=digits.data,digits.target
std = StandardScaler()
x = std.fit_transform(x)
x_train,x_test,y_train,y_test = train_test_split(x,y)
print(x_train.shape,x_test.shape)

输出:

(1347, 64) (450, 64)

(2)预测和评价

from sklearn.svm import SVC
from sklearn.metrics import accuracy_score
model = SVC(kernel='linear')
model.fit(x_train,y_train)
y_pred=model.predict(x_test)
print(accuracy_score(y_pred,y_test))

输出:

0.9822222222222222
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值