實戰06 頂天立地,三分天下 支援向量機SVM

2021-09-07 10:04:29 字數 1443 閱讀 7864

svm有三寶:間隔,對偶,核技巧。

軟間隔鬆弛變數(ζ

ζ) or 懲罰因子( c)

核函式與鬆弛變數:一般的過程應該是這樣,還以文字分類為例。在原始的低維空間中,樣本相當的不可分,無論你怎麼找分類平面,總會有大量的離群點,此時用核函式向高維空間對映一下,雖然結果仍然是不可分的,但比原始空間裡的要更加接近線性可分的狀態(就是達到了近似線性可分的狀態),此時再用鬆弛變數處理那些少數「冥頑不化」的離群點,就簡單有效得多啦。

——————————————————————————————

一 分隔超平面

二 最大間隔

分類器輸出的是類別標籤,這裡輸出的是

目標:尋找分類器定義中的 w 和 b

第一步就是尋找支援向量,而滿足α

\alpha

α>0時,則為支援向量。

三 smo演算法

目標:求出一些列的α

\alpha

α和b(進而可得到w),有了w和b就可以得到超平面。

原理:(由約束條件)每次迴圈中選擇兩個α

\alpha

α進行優化,並固定其他。因為累加和為0,因此,優化過程中乙個增大,乙個必須減小。《內迴圈、外迴圈》

smo演算法公式推導

清單6-2 如何判斷正間隔還是負間隔?(存疑)

numpy陣列過濾 如:alphas[alphas>0]

優化加速:選擇最大步長

迴圈計算cache列表中的**誤差,並返回使誤差變化量最大的下標maxk 和最大誤差值ej。

計算w

smop(…)返回b和 alphas後,根據對偶問題中的公式:

w =∑

i=1m

αiyi

xi

w = \sum_^m \alpha_i y_i x_i

w=i=1∑

m​αi

​yi​xi​

四 核技巧

核函式(kernel)的工具將資料轉換成易於分類器理解的形式。將低維特徵空間對映到高維空間。 其中,徑向基函式(radial basis function)是最流行的二分類的核函式。

將內積替換成核函式的方式,稱為核技巧。

numpy矩陣中,除法指對矩陣元素展開計算,而不是matlab中的求逆。