1. 程式人生 > >機器學習之支援向量機(四)

機器學習之支援向量機(四)

引言:

  SVM是一種常見的分類器,在很長一段時間起到了統治地位。而目前來講SVM依然是一種非常好用的分類器,在處理少量資料的時候有非常出色的表現。SVM是一個非常常見的分類器,在真正瞭解他的原理之前我們多多少少都有接觸過他。本文將會詳細的介紹SVM的原理、目標以及計算過程和演算法步驟。我們針對線性可分資料和線性不可分資料介紹了線性支援向量機和非線性支援向量機,並在最後簡單闡述非線性支援向量機的重要概念核函式。

  SVM實際上就是一個求解極值凸優化的過程,想要更好的瞭解SVM一定要非常熟悉有關於“凸優化”的內容。當了解“凸優化”後,SVM實際上變得非常容易。

預備知識:

  凹凸化

一、線性可分支援向量機

  1、概念

  給定線性可分訓練資料集,通過間隔最大化得到的分離超平面為:

  相應的分類決策函式:,這個決策函式成為線性可分支援向量機。

  某個確定的特徵空間轉換函式,它的作用是將x對映到(更高的)維度。(核函式)

  求解分離超平面問題可以等價為求解相應的凸二次規劃問題。

 

  分割平面:

 

  訓練集:

 

  目標值:

 

  新資料的分類:

 

          

  2、求解方法

  建立目標函式:通過等比例縮放w的方法,使得兩類點的函式值都滿足

  

   

二、線性支援向量機:

  若資料線性不可分,則增加鬆弛影子,使函式間隔加上鬆弛變數大於等於1,則約束條件變成:

  目標函式:

  求解過程類似線性可分支援向量機,但是在求的時候,有所區別(要考慮鬆弛因子)

   

  實踐中往往取支援向量的所有值取平均,作為b*

三、核函式

  可以使用核函式,將原始輸入空間對映到新的特徵空間,從而,使得原本線性不可分的樣本可能在核空間可分。

  常見的核函式:多項式核函式、高斯核函式、字串核函式。

  在實際應用中,往往依賴先驗領域知識/交叉驗證等方案才能選擇有效的核函式。

  如果有更多先驗資訊,則使用高斯核函式。