1. 程式人生 > >[機器學習]svm支援向量機介紹

[機器學習]svm支援向量機介紹

1 什麼是支援向量機 支援向量機是一種分類器,之所以稱為 機 是因為它會產生一個二值決策結果,即它是一個決策機。 ​​​Support Vector Machine, 一個普通的SVM就是一條直線罷了,用來完美劃分linearly separable的兩類。但這又不是一條普通的直線,這是無數條可以分類的直線當中最完美的,因為它恰好在兩個類的中間,距離兩個類的點都一樣遠。而所謂的Support vector就是這些離分界線最近的『點』。如果去掉這些點,直線多半是要改變位置的。可以說是這些vectors(點)support(定義)machine(分類器)...
圖1-1 2 svm 特點
1。 小樣本,並不是說樣本的絕對數量少(實際上,對任何演算法來說,更多的樣本幾乎總是能帶來更好的效果),而是說與問題的複雜度比起來,SVM演算法要求的樣本數是相對比較少的。 2。非線性,是指SVM擅長應付樣本資料線性不可分的情況,主要通過鬆弛變數(懲罰變數)和核函式技術來實現。 3 svm 思想及原理 如圖1-1的例子,(訓練集)紅色蘋果是我們已知的分類1,(訓練集)黃色香蕉點是已知的分類2,我們想尋找一個分界超平面(圖中橙線)(因為示例是二維資料點,所以只是一條線,如果資料是三維的就是平面,如果是三維以上就是超平面)把這兩類完全分開,這樣的話再來一個樣本點需要我們預測的話,我們就可以根據這個分界超平面預測出分類結果。 傳統方法:




SVM方法: 1.線性可分: SVM輸入資料會輸出一個類別標籤: label = f(w'x+b) {-1,1}那麼我們認為好的 分介面有什麼樣的特徵呢?第一,它“夾”在兩類樣本點之間;第二,它離兩類樣本點中所有“離它最近的點”(支援向量),都離它儘可能的遠。如題1-2所示。
圖1-2 定義幾何間隔的概念,幾何間隔就是在多維空間中一個多維點到一個超平面的距離,根據向量的知識可以算出來
那麼Margin = r*label 則是定義為點到間隔面幾何間隔。我們的目標: 1.找到具有最小間隔的點(支援向量) 2.使的這小最小間隔點(支援向量)離分隔面儘可能遠
  • arg max{min(Margin)}
st Margin >=1

這是典型的二次規劃問題(目標函式是自變數的二次函式) 通過拉格朗日對偶性( Lagrange Duality)變換到對偶變數  (dual variable)  的優化問題,即通過求解與原問題等價的對偶問題( dual problem 得到原始問題的最優解,這就是線性可分條件下支援向量機的對偶演算法,這樣做的優點在於:一者對偶問題往往更容易求解;二者可以自然的引入核函式,進而推廣到非線性分類問題。 通過TTK條件求解 最後的優化函式可以寫成
xiT * xj 也就是xi 和xj 兩個向量的內積 在支援向量的點他們的係數都是ai>0,其他點的ai=0 如果資料不乾淨的話, 就需要引進“鬆弛變數C”允許有些資料點處於分隔面錯誤的一端。這樣我們的優化條件不變,只是約束條件變成了C>=ai>=0 i = 1.2.3.n 。 具體資料證明看這裡(詳細的數學證明看連結)。 2 非線性可分


感謝v_JULY_v  的部落格:支援向量機通俗導論(理解SVM的三層境界)  

感謝 靠靠靠譜     在知乎的解答