|
我們都知道其經常被用來做分類問題,當計算機的能力不足時,SVM是一個最火的算法,直到多層神經網絡算法的出現。 介紹將下面的點進行分類如何劃分?劃分為幾類呢? 220px-Svm_separating_hyperplanes_(SVG).svg.png 通過人的眼和人腦處理后,我們可以很快的分辨出是紅線劃分是最好的,可是計算機是如何才能知道,又如何制定規(guī)則呢? SVM尋找區(qū)分兩類的超平面(hyper plane), 使邊際(margin)最大Image [4].png 如上圖所示,將數據劃分開的平面有很多,圖一,圖二都可以將數據劃分開,但是每一種方式的劃分的平面又有很多個平面,比如將平面進行平移也可以將數據劃分開,但是是否可以一直平移?答案是否定的,它存在上下界(指的是恰好可以分開數據),也就是存在數據點正好落在分割面上,而這些點就是支持向量。 分類按照分割的情況將SVM分為三種:
images [1].jpg
我們再次把這個圖放出來,首先我們要證明的就是線性可分支持向量機 Image [4].png 首先我們假設中間的超平面方程為: Image [5].png 當然如上面所言,我們可以對這個超平面進行平移,直到達到不能移動的支持向量的點。 Image [8].png 如上圖公式所示,我們先證明的是二分類,讓等式大于1的為正例,小于1為負例。為什么選1呢?其實你可以選任何數,同樣正例與父類用(1,-1)表示也是為了計算方便。 這樣我們可以很容易得出: Image [9].png 這樣兩個公式就合并了,同時得出了條件了。 最大化邊際我們都知道svm就是要尋找使邊際最大的那個狀態(tài)的超平面,用M來表示兩個邊界平面間的距離,那么? max M = ? 這時我們可以直接把公式簡化為, Image [2].png =1 兩個平面間的距離公式直接可以得出, M = |b+1-(b-1)|/sqrt(w^2+0)=2/||w||所以M要最大,|w|就需要最小 所以我們得到的目標函數就是使 |w|最小,即|w|^2最小,為求導方便,我們設為求 最小。 構造函數通過以上兩次分析,我們已經把問題轉化為了大學的數學問題 在已知 Image [9].png 的條件下,要使得 1/2|w|^2最小。 這就明顯變?yōu)榱艘粋€目標函數和一個約束條件,組合成的拉格朗日求最小值的問題了 但是由于條件是一個不等式,同時這個條件包含所有的數據點, 利用一些數學推倒,以上公式可變?yōu)橛邢拗频耐箖?yōu)化問題(convex quadratic optimization)利用 Karush-Kuhn-Tucker(KKT)條件和拉格朗日公式,可以推出MMH可以被表示為以下“決定邊界“ Image [13].png 詳細的推倒在下面會附上。 這里舉一個例子:
Image [15].png Sklearn SVM
2 sklearn畫出決定界限
|
|
|
來自: taotao_2016 > 《數學》