SVM是一個二元分類算法,線性分類和非線性分類都支持,經過演化,也可以支持多元分類問題和迴歸問題。
1、感知機
感知機模型就是嘗試找到一條直線,能夠將二元數據隔開,在三維或者更高維中,感知機模型就是嘗試找到一個超平面,將所有的二元類別都隔離開。對於這個分離的超平面(直線),我們定義,在其上方定義y=1,左下方定義爲y=-1.滿足這樣的條件的超平面不止一個,我們要找到泛化能力最強的那個。
SVM的核心思想是:盡最大努力是兩個類別有最大間隔,這樣才能使分隔具有更高的可信度,並且對於未知的新樣本也具很好的 分類預測能力,即泛化能力。
SVM的辦法是:讓離分割面最近的數據點離分割面有最大的距離。而離分隔面最近的點也叫作支持向量,即爲虛線穿過的樣本點。
優化思想:讓所有錯誤分類的點(定義爲M)到超平面的距離之和最小,即最小化以下公式:
支持向量中有一個概念叫做“分類間隔”,分類間隔的計算涉及到 點到直線的距離:
點到直線距離公式: (1)
那麼對於所有的樣本點都要滿足下列條件:
(2)
只有當是決策面所對應的支持向量時,等於1或者-1的情況纔會出現。所以對於這些支持向量的樣本點有:
(3)
上式表示,支持向量樣本點到決策面方程的距離就是1/||w||。我們本來的任務就是找到一組參數,w,使得分類間隔w=2d最大化,也就是說使得||w||最小化問題,等價於的最小化問題。加上平方是爲了在優化目標函數的過程中求導比較方便,這對最後的最優求解不產生任何影響。
另外將公式(2)的約束條件變形,將類別標籤和兩個不等式左乘,形成一個統一描述:
則SVM的最優化問題的數學描述如下:
s.t表示服從於xx條件。
2、SVM求解
上面的優化問題是一個具有多個不等式約束條件的優化問題,其拉格朗日函數可以寫成:
這裏 , 。該拉格朗日函數最優化的原始問題和對偶問題分別爲:
原始問題:
對偶問題:
後面沒看懂。。。。。。。大家可以看這個博客。。。。
https://blog.csdn.net/baidu_36557924/article/details/79517365