1. 程式人生 > >『資料探勘十大演算法 』筆記二:SVM-支援向量機

『資料探勘十大演算法 』筆記二:SVM-支援向量機

資料探勘Top 10演算法

C4.5, k-Means, SVM, Apriori, EM, PageRank, AdaBoost, kNN, Naive Bayes, and CART

支援向量機

支援向量機,英文為Support Vector Machine,是一種分類模型,屬於監督式學習的方法,它的基本模型是定義在特徵空間上的間隔最大線性分類器,這一點是和感知機不同的地方(感知機基於誤分類的損失函式,利用梯度下降法獲得損失函式極小化的超平面)。

支援向量機利用核函式將輸入從輸入空間對映到特徵空間,在特徵空間裡建立有一個最大間隔超平面

支援向量機將向量對映到一個更高維的空間裡,在這個空間裡建立有一個最大間隔超平面。
核函式

表示將輸入從輸入空間對映到特徵空間得到特徵向量之間內積。通過核函式可以學習非線性支援向量機,等價於隱式地在高維的特徵空間學習線性支援向量機。

Created with Raphaël 2.1.0輸入空間是否線性可分特徵空間尋找間隔最大化超平面分類模型核函式(kernel function)yesno

線性可分支援向量機

既然線性可分,學習的目標為在特徵空間中找到一個分離超平面,能夠將例項分到不同的類。

給定線性可分訓練資料集,通過間隔最大化求解相應的凸二次規劃問題學習得到分離超平面為

ω+b=0

相應的分類決策函式為

f(x)=sign(ω+b)

即為線性可分支援向量機。

間隔最大化相應的間隔分為函式間隔和幾何間隔。

函式間隔和幾何間隔

函式間隔:對於給定的訓練資料集T和超平面(w,b),定義超平面(w,b)關於樣本點(xi,yi)的函式間隔為

Υ̂ i=yi(wxi+b)

當超平面並未改變,只是成比例改變w和b的時候,函式間隔也會發生變化,如變成2w和2b,超平面未變函式間隔卻變成了2倍,所以需要對法向量w加一些約束,如規範化,||w||=1,是的間隔確定,變成了幾何間隔。

函式間隔:對於給定的訓練資料集T和超平面(w,b),定義超平面(w,b)關於樣本點(xi,yi)的幾何間隔為

Υ̂ i=yi(w||w||xi+b||w||
)

定義超平面(w,b)關於訓練資料集T的函式間隔為超平面(w,b)關於T中所有樣本點(xi,yi)的幾何間隔最小值,即

Υ=mini=1,···,NΥ̂ i

超平面(w,b)關於樣本點(xi,yi)的幾何間隔一般是例項點到超平面的帶符號距離,樣本點被超平面正確分類時就是例項點到超平面的距離。

間隔最大化

將問題表示為下面約束最優化問題:

maxw,bΥ s.t.yi(w||w||xi+b||w||)Υ,i=1,2,···,N

約束條件表示超平面(w,b)關於每個樣本點(xi,yi)的幾何間隔至少是Υ

等價於下面約束最優化問題:

maxw,bΥ||w|| s.t.yi(wxi+b)Υ,i=1,2,···,N

函式間隔取值並不影響最優化問題的解,所以取Υ=1^,將其帶入最優化問題,而最大化1||w||和最小化12||w||2等價,於是轉化為一個凸二次規劃問題:

minw,b12||w||2 s.t.yi(wxi+b)10,i=1,2,···,N

間隔最大化演算法

輸入:線性可分資料集T={(x1,y1