在機器學習領域,支持向量機SVM(Support Vector Machine)是一個有監督的學習模型,一般用來進行模式識別、分類、以及迴歸分析。web
Vapnik等人在多年研究統計學習理論基礎上對線性分類器提出了另外一種設計最佳準則。其原理也從線性可分提及,而後擴展到線性不可分的狀況。甚至擴展到使用非線性函數中去,這種分類器被稱爲支持向量機(Support Vector Machine,簡稱SVM)。支持向量機的提出有很深的理論背景。算法
SVM的主要思想能夠歸納爲兩點:微信
⑴它是針對線性可分狀況進行分析,對於線性不可分的狀況,經過使用非線性映射算法將低維輸入空間線性不可分的樣本轉化爲高維特徵空間使其線性可分,從而 使得高維特徵空間採用線性算法對樣本的非線性特徵進行線性分析成爲可能;網絡
⑵它基於結構風險最小化理論之上在特徵空間中建構最優分割超平面,使得學習器獲得全局最優化,而且在整個樣本空間的指望風險以某個機率知足必定上界。機器學習
1.原理函數
(1)在n維空間中找到一個分類超平面,將空間上的點分類。以下圖是線性分類的例子。學習
(2)通常而言,一個點距離超平面的遠近能夠表示爲分類預測的確信或準確程度。SVM就是要最大化這個間隔值。而在虛線上的點便叫作支持向量Supprot Verctor。
優化
(3)實際中,咱們會常常遇到線性不可分的樣例,此時,咱們的經常使用作法是把樣例特徵映射到高維空間中去(以下圖);人工智能
(4)線性不可分映射到高維空間,可能會致使維度大小高到可怕的(19維乃至無窮維的例子),致使計算複雜。支持向量機中核函數的價值在於它雖然也是講特徵進行從低維到高維的轉換,但核函數絕就絕在它事先在低維上進行計算,而將實質上的分類效果表如今了高維上,也就上文所說的避免了直接在高維空間中的複雜計算。spa
2.通常特徵
(1)SVM學習問題能夠表示爲凸優化問題,所以能夠利用已知的有效算法發現目標函數的全局最小值。而其餘分類方法(如基於規則的分類器和人工神經網絡)都採用一種基於貪心學習的策略來搜索假設空間,這種方法通常只能得到局部最優解。
(2)SVM經過最大化決策邊界的邊緣來控制模型的能力。儘管如此,用戶必須提供其餘參數,如使用核函數類型和引入鬆弛變量等。
(3)經過對數據中每一個分類屬性引入一個啞變量,SVM能夠應用於分類數據。
(4)SVM通常只能用在二類問題,對於多類問題效果很差。