1. 程式人生 > >支持向量機(一)

支持向量機(一)

數據線 介紹 soft 是什麽 clu 現在 標記 實現 linear

簡介

支持向量機(Support vector machine,以下簡稱SVM)是一種監督學習模型,其學習算法可分析數據,並用以解決分類和回歸問題。給定一訓練數據集,每個數據點(或實例)屬於二分類中的某個分類,SVM訓練算法則建立一個模型,這個模型可以將一個新的數據實例歸於某一類(預測)。除了線性分類,SVM可以有效地執行非線性分類,這是因為使用了核技巧(kernel trick)或者稱核函數(kernel function),從而隱式地將輸入映射到高維特征空間。

當數據沒有標記時,監督學習也就實現不了,此時就需要非監督學習,試圖去發現數據會天然地聚合成組(聚類),然後將新的數據實例映射到其中某一個組。具有增強SVM的聚類算法稱作支持向量聚類(Support vector clustering),通常用於工業應用中當數據沒有標記或者只有部分數據標記作為分類的預處理的時候。

(以上是本人蹩腳的維基百科翻譯,僅作初印象認識SVM,不懂也沒關系,畢竟翻譯的不好,下面會由淺入深地介紹)

所以說SVM到底是什麽呢?可能幾句話難以概括全部,下面將SVM分為幾類,然後逐一去了解。

SVM是一種二類分類模型,前面介紹感知機的時候知道感知機也是一種二類分類模型。區別在於,SVM是定義在特種空間上間隔最大的分類器,而且不一定是線性分類

為什麽要強調間隔最大?

如下圖,是一個二類分類,將圖標分為圓圈和方框,

技術分享

顯然這樣的分類雖然可行,但是不夠好,為什麽? 假設現在又多了幾個圖標,如下圖,

技術分享

顯然此時,新的圖標(數據實例)被分錯了類,而如果一開始我們如下圖分類,

技術分享

此時新的圖標分類就正確了,比較這兩種分類,發現後一種分類,分類線兩邊的間距更大,顯然這是一種較好的分類。

下面說說為什麽不一定是線性分類,假設現在圖標分布為

技術分享

這樣就無法用一條線來分類了,此時怎麽辦呢,有牛人已經想到了一種方法,就是將這些分布在二維上的數據點映射到三維空間(即,上文說的將輸入映射到高維特征空間),變成

技術分享

此時,就可以容易的用一個平面(線性)來隔斷,分成兩類,如果在回歸到二維平面,可能就是下面圖中所示,就變成了非線性分類,這一技巧就是核技巧。

技術分享

總結

SVM學習方法包含構造由簡到繁的模型:線性可分支持向量機(linear support vector machine in linearly separable case),線性支持向量機(linear support vector machine)以及非線性支持向量機(non-linear support vector machine)。當訓練數據線性可分時,通過硬間隔最大化(hard margin maximization),學習一個線性分類器,此即線性可分支持向量機,又稱硬間隔支持向量機,這是最基礎的模型。當訓練數據近似線性可分時,通過軟間隔最大化(soft margin maximization)學醫一個線性分類器,此為線性支持向量機,又稱軟間隔支持向量機。當訓練數據線性不可分時,通過使用核技巧及軟間隔最大化,學習非線性支持向量機。

後面分別介紹這幾種SVM。

ref

  1. 維基百科
  2. 統計學習方法,李航

支持向量機(一)