支持向量機(support vector machine)是一種分類算法,通過尋求結構化風險最小來提高學習機泛化能力,實現經驗風險和置信范圍的最小化,從而達到在統計樣本量較少的情況下,亦能獲得良好統計規律的目的。通俗來講,它是一種二類分類模型,其基本模型定義為特征空間上的間隔最大的線性分類器,即支持向量機的學習策略便是間隔最大化,最終可轉化為一個凸二次規划問題的求解。
具體原理:
1. 在n維空間中找到一個分類超平面,將空間上的點分類。如下圖是線性分類的例子。
2. 一般而言,一個點距離超平面的遠近可以表示為分類預測的確信或准確程度。SVM就是要最大化這個間隔值。而在虛線上的點便叫做支持向量Supprot Verctor。
3. 實際中,我們會經常遇到線性不可分的樣例,此時,我們的常用做法是把樣例特征映射到高維空間中去(如下圖);
3. 線性不可分映射到高維空間,可能會導致維度大小高到可怕的(19維乃至無窮維的例子),導致計算復雜。核函數的價值在於它雖然也是講特征進行從低維到高維的轉換,但核函數絕就絕在它事先在低維上進行計算,而將實質上的分類效果表現在了高維上,也就如上文所說的避免了直接在高維空間中的復雜計算。
4.使用松弛變量處理數據噪音
SVM的優點:
1. SVM學習問題可以表示為凸優化問題,因此可以利用已知的有效算法發現目標函數的全局最小值。而其他分類方法(如基於規則的分類器和人工神經網絡)都采用一種基於貪心學習的策略來搜索假設空間,這種方法一般只能獲得局部最優解。
2. 假設現在你是一個農場主,圈養了一批羊群,但為預防狼群襲擊羊群,你需要搭建一個籬笆來把羊群圍起來。但是籬笆應該建在哪里呢?你很可能需要依據牛群和狼群的位置建立一個“分類器”,比較下圖這幾種不同的分類器,我們可以看到SVM完成了一個很完美的解決方案。
這個例子從側面簡單說明了SVM使用非線性分類器的優勢,而邏輯模式以及決策樹模式都是使用了直線方法。
摘抄自http://blog.csdn.net/v_july_v/article/details/7624837。