主要內容:
一.損失函數
二.決策邊界
三.Kernel
四.使用SVM
(有關SVM數學解釋:機器學習筆記(八)震驚!支持向量機(SVM)居然是這種機)
一.損失函數
二.決策邊界
對於:
當C非常大時,括號括起來的部分就接近於0,所以就變成了:
非常有意思的是,在最小化 1/2*∑θj^2的時候,最小間距也達到最大。原因如下:
所以:
即:如果我們要最小化1/2*∑θj^2,就要使得||θ||盡量小,而當||θ||最小時,又因為,所以p(i)最大,即間距最大。
注意:C可以看成是正則項系數λ的倒數。所以,當C越大時(可以看成是λ越小),則曲線對於數據越敏感。如下:
三.Kernel
上面介紹的都是線性可分的情況,當線性不可分時,或許我們可以用多項式進行擬合,如下:
但是多項式的次數太高,計算成本就會很大,有沒有更好的辦法?那就是SVM帶核的方法。
我們將上面的多項式改為:
然后f的公式為:
這個f函數就是高斯核函數。
我們在坐標軸上選取三個地標
其中f1就是坐標軸上某一點到L(1)距離的遠近,離得近則f1 = 1,離得遠則f1 = 0,f2、f3等以此類推。
對於高斯核函數,σ對整體分布的影響為:σ越大,分布越扁平:
於是新的決策方法就變為:
那么如何選取地標L呢?那就是數據集的每一點都作為地標,如下:
綜上,帶核的SVM可以描述為:
四.使用SVM
支持向量機較為復雜,一般而言,我們都不會自己去實現算法,而是直接調用。但是我們需要做兩點工作,那就是:1.選擇C的值(cost function上的那個系數C),2.選擇核函數(或者直接使用無核),具體步驟如下: