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