svm
中文名为支持向量机,是一个二类分类算法,其目标是确定一个使不同类别的数据分隔开来的超平面,我们应该寻找有最大间隔的超平面。超平面由参数w与b确定。其公式为 f ( x ) = w T x + b f(x)=w^Tx+b f(x)=wTx+b当 f ( x ) f(x) f(x)为0时,x就是超平面上的点。
当 f ( x ) > 0 f(x)>0 f(x)>0时,x对应类别y=1的样本点。
当 f ( x ) < 0 f(x)<0 f(x)<0时,x对应类别y=-1的样本点。
∣ w T x + b ∣ |w^Tx+b| ∣wTx+b∣能够反映点x到超平面的距离远近。可以用类标记y与之相乘观察分类的正确性,由此可以引出函数间隔: y ∗ ( w T x + b ) y*(w^Tx+b) y∗(wTx+b)即 y f ( x ) yf(x) yf(x)。
但是函数间隔中的w和b可以成比例的变换从而使 f ( x ) f(x) f(x)的值倍增,而超平面却没有变换。
将超平面上的一个点 x 0 x_0 x0带入 f ( x ) f(x) f(x)中,则有 f ( x 0 ) = w T x 0 + b = 0 f(x_0)=w^Tx_0+b=0 f(x0)=wTx0+b=0,则可得出: w T x 0 = − b w^Tx_0=-b wTx0=−b.
对一个点x,其垂直投影到超平面上点为 x 0 x_0 x0,超平面的法向量为w, γ \gamma γ为点x到 x 0 x_0 x0的距离。
则有 x = x 0 + γ w ∣ ∣ w ∣ ∣ x=x_0+\gamma\frac{w}{||w||} x=x0+γ∣∣w∣∣w
其中 w ∣ ∣ w ∣ ∣ \frac{w}{||w||} ∣∣w∣∣w为单位向量
在 x = x 0 + γ w ∣ ∣ w ∣ ∣ x=x_0+\gamma\frac{w}{||w||} x=x0+γ∣∣w∣∣w左右两侧同时乘以 w T w^T wT,则有 w T x = w T x 0 + γ w T w ∣ ∣ w ∣ ∣ w^Tx=w^Tx_0+\gamma\frac{w^Tw}{||w||} wTx=wTx0+γ∣∣w∣∣wTw,其中 w T x 0 = − b w^Tx_0=-b wTx0=−b, w T w = ∣ ∣ w ∣ ∣ 2 w^Tw=||w||^2 wTw=∣∣w∣∣2,可得x到 x 0 x_0 x0的距离: γ = w T x + b ∣ ∣ W ∣ ∣ \gamma=\frac{w^Tx+b}{||W||} γ=∣∣W∣∣wTx+b
为了得到 γ \gamma γ的绝对值,让对应的类别乘上 γ \gamma γ可得到几何间隔: y γ = y f ( X ) ∣ ∣ w ∣ ∣ y\gamma=\frac{yf(X)}{||w||} yγ=∣∣w∣∣yf(X)
函数间隔只是一个人为定义的间隔度量,几何间隔才是直观的点到超平面的间隔。
支持向量是使得 f ( x ) = { w T x + b ≥ 1 , y = 1 w T x + b ≤ − 1 , y = − 1 f(x)=\begin{cases} w^Tx+b\geq1,y=1\\ w^Tx+b\leq-1,y=-1\end{cases} f(x)={wTx+b≥1,y=1wTx+b≤−1,y=−1式中的等号成立的样本点。
对数据进行分类时,间隔越大,数据分类的确信度越高。最大间隔定义为两个异类支持向量到超平面的距离,即(令函数间隔 y f ( x ) yf(x) yf(x)为1):` 2 ∣ ∣ w ∣ ∣ \frac{2}{||w||} ∣∣w∣∣2
优化目标为找到使最大间隔 2 ∣ ∣ w ∣ ∣ \frac{2}{||w||} ∣∣w∣∣2最大的参数w和b。即: m a x 2 ∣ ∣ w ∣ ∣ max\frac{2}{||w||} max∣∣w∣∣2 s.t. y i ( w T x i + b ) ≥ 1 y_i(w^Tx_i+b)\geq1 yi(wTxi+b)≥1