機器學習之支持向量機(四)
引言:
SVM是一種常見的分類器,在很長一段時間起到了統治地位。而目前來講SVM依然是一種非常好用的分類器,在處理少量數據的時候有非常出色的表現。SVM是一個非常常見的分類器,在真正了解他的原理之前我們多多少少都有接觸過他。本文將會詳細的介紹SVM的原理、目標以及計算過程和算法步驟。我們針對線性可分數據和線性不可分數據介紹了線性支持向量機和非線性支持向量機,並在最後簡單闡述非線性支持向量機的重要概念核函數。
SVM實際上就是一個求解極值凸優化的過程,想要更好的了解SVM一定要非常熟悉有關於“凸優化”的內容。當了解“凸優化”後,SVM實際上變得非常容易。
預備知識:
凹凸化
一、線性可分支持向量機
1、概念
給定線性可分訓練數據集,通過間隔最大化得到的分離超平面為:
相應的分類決策函數:,這個決策函數成為線性可分支持向量機。
某個確定的特征空間轉換函數,它的作用是將x映射到(更高的)維度。(核函數)
求解分離超平面問題可以等價為求解相應的凸二次規劃問題。
分割平面:
訓練集:
目標值:
新數據的分類:
2、求解方法
建立目標函數:通過等比例縮放w的方法,使得兩類點的函數值都滿足。
二、線性支持向量機:
若數據線性不可分,則增加松弛影子,使函數間隔加上松弛變量大於等於1,則約束條件變成:
目標函數:
求解過程類似線性可分支持向量機,但是在求的時候,有所區別(要考慮松弛因子)
實踐中往往取支持向量的所有值取平均,作為b*
三、核函數
可以使用核函數,將原始輸入空間映射到新的特征空間,從而,使得原本線性不可分的樣本可能在核空間可分。
常見的核函數:多項式核函數、高斯核函數、字符串核函數。
在實際應用中,往往依賴先驗領域知識/交叉驗證等方案才能選擇有效的核函數。
如果有更多先驗信息,則使用高斯核函數。
機器學習之支持向量機(四)