【支持向量機】學習紀錄(關於對支持向量機核函數的理解、代價函數、向量機類型選擇)

關於支持向量機,沒有嘗試去使用代碼去實現,而是重點試着增加對支持向量機工作原因的理解。以下是學習筆記。

PART ONE: 關於對支持向量機核函數的理解
在這裏插入圖片描述
針對上圖中:
選擇三個點l(1)、l(2)、l(3),那麼針對一個點X(i)到l(1)、l(2)、l(3)三個點的距離,按照正常的思維邏輯來理解:如果l(1)、l(2)是正樣品,那麼x(i)離這兩個點越近,代表最終y=1的機率應該是越高的;反之,如果遠離這兩個點,則代表y=0的機率應該是越高的。
帶着這個現象,我們再看下支持向量機的核函數。
假設:y=θ01*f1+θ2*f2;
其中f1,f2是核心函數。
設:f=exp(-||x-l(i)||2/2σ2)
這裏面涉及到的幾個數學公式:
1、exp(f(x)),f(x)代表一個複合函數(不要和上面的f1、f2混了,這是兩個東西),那麼這就代表是以e爲底數,f(x)爲指數的方程,數學曲線如下:
在這裏插入圖片描述
我們實際在使用exp(f(x))函數時,真正使用到,其實上面紅線框出一部分內容,因爲這裏的f(x)=-||x-l(i)||2/2σ2,這裏面的x∈(-∞,0]。
從這裏面可以看到,如果x和l(i)兩個重合或者非常接近,則-||x-l(i)||2–>0,則f(x)=1;相反,如果x點遠離l(i)點,則-||x-l(i)||2值就會變小,f(x)–>0
2、||x-l(i)||2代表x點到l(i)的距離。

PART TWO:代價函數

在這裏插入圖片描述
關於C的取值:
C過大,可能導致過擬合;
C過小,可能導致欠擬合;
原因:主要是由於參數C決定着兩個部分(Part1,Part2)的權重,如果C過大,則Part1部分的數據調整,對整體的影響較大,則會盡量會去降低Part1的值,從而導致過擬合現象的產生;
關於高斯函數中σ2的取值:可以假設以f點爲圓點,σ2越大,則影響的距離越遠(越廣);反之則影響的距離越小
如果σ2大的話,我們也許可以得到這樣的一個圈圖:

在這裏插入圖片描述
而如果σ2小的話,我們也許可以得到這樣的一個圈圖:
在這裏插入圖片描述
所以具體的σ2需要根據實際項目的情況來進行判斷、取值。

PART THREE:如何選擇線性核函數還是高斯核函數?
很好的縮放比例:
||x(i)-l(i)||2,設u=x(i)-l(i),則就相當於u的向量。
||u||2=u12+u22+u32+u42…+un2
也就相當於(x1-l1)2+(x2-l2)2+(x3-l3)2+(x4-l4)2+…+(xn-ln)2
如果不進行特徵的縮放,則會導致某個特徵的偏差特別大,大而干擾到其它項。假設上述例子中,如果x1代表是房子的面積(單位:平方尺),x2代表房子的房間數,兩個樣本之前,房子的面積相差可能成百上千,而房間數可能就是相關2,3那麼如果不進行縮放,則房間數的特徵就會被房子的面積所忽略。

如果特徵特別多,並且訓練的樣本比較小的情況下,一般可以使用邏輯迴歸或者線性核函數的支持向量機;
如果特徵較小(例如:1到1000,一般情況下工作,自己的工作中的特徵應該都是在這個區間的),而有適量的訓練數據(適量的訓練數據一般是小於百萬,例如幾百到幾萬)可以選擇使用高斯核心函數;
如果訓練集在幾百萬,則使用高斯核心函數的性能就會比較差。可以使用以下思路嘗試解決:1、創建更可能多的特徵;2、使用邏輯迴歸或者線性核函數;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章