支持向量機的基本理念是找出一條線或一個超平面,進行二分類。
利用margin的概念,使得margin的值最大化,即max 2/||w||,然后這個公式被轉換成 min 1/2*||w||^2。之后用拉格朗日因子代替進公式得到一個二次方式,在限制條件下進行求解。可以得到,基本情況下alpha值都是0,只有少數x值使得alpha不為0,就是這些值為support vectors。當然不是所有情況都是linearly separable,所以引進一個懲罰因子C,允許軟間隔,允許一些輸入值沒有很好的分類。
之后引進了一個kernel的概念,利用kernel trick可以將低維的值升級為高維的,從而得到一個超平面可以很好的將其進行分類。典型的比如k(x,y)=phi(x)的轉置*phi(y),當phi(x)=(x1^2,x2^2,2^(1/2)*x1*x2,k(x,y)=(x1*y1+x2*y2)^2=(x的轉置*y)^2。 這種情況可以將一些二維不可分點升到三維空間,得到一個超平面進行分類。
作為svm是一個二分類模型,相對應會有svr作為regression的模型。這個模型有待研究。