机器学习笔记(二十八):高斯核函数
凌云時(shí)刻 · 技術(shù)
導(dǎo)讀:核函數(shù)是機(jī)器學(xué)習(xí)算法中一個(gè)重要的概念。簡(jiǎn)單來(lái)講,核函數(shù)就是樣本數(shù)據(jù)點(diǎn)的轉(zhuǎn)換函數(shù)。這一節(jié)我們來(lái)看看應(yīng)用非常廣泛的一個(gè)核函數(shù),高斯核函數(shù)。
作者 | 計(jì)緣
來(lái)源 |?凌云時(shí)刻(微信號(hào):linuxpk)
高斯核函數(shù)
高斯核函數(shù)的名稱比較多,以下名稱指的都是高斯核函數(shù):
-
高斯核函數(shù)。
-
RBF(Radial Basis Function Kernel)。
-
徑向基函數(shù)。
對(duì)于多項(xiàng)式核函數(shù)而言,它的核心思想是將樣本數(shù)據(jù)進(jìn)行升維,從而使得原本線性不可分的數(shù)據(jù)線性可分。那么高斯核函數(shù)的核心思想是將每一個(gè)樣本點(diǎn)映射到一個(gè)無(wú)窮維的特征空間,從而使得原本線性不可分的數(shù)據(jù)線性可分。
我們先來(lái)回顧一下多項(xiàng)式特征,如下圖所示,有一組一維數(shù)據(jù),兩個(gè)類別,明顯是線性不可分的情況:
然后通過(guò)多項(xiàng)式將樣本數(shù)據(jù)再增加一個(gè)維度,假設(shè)就是??,樣本數(shù)據(jù)就變成這樣了:
此時(shí)原本線性不可分的樣本數(shù)據(jù),通過(guò)增加一個(gè)維度后就變成線性可分的狀態(tài)。這就是多項(xiàng)式升維的意義。
下面我們先來(lái)認(rèn)識(shí)一下高斯核函數(shù)的公式:
??
上面公式中的??就是高斯核函數(shù)的超參數(shù)。然后我們?cè)賮?lái)看看高斯核函數(shù)使線性不可分的數(shù)據(jù)線性可分的原理。
為了方便可視化,我們將高斯核函數(shù)中的??取兩個(gè)定值??核??,這類點(diǎn)稱為地標(biāo)(Land Mark)。那么高斯核函數(shù)升維過(guò)程就是假如有兩個(gè)地標(biāo)點(diǎn),那么就將樣本數(shù)據(jù)轉(zhuǎn)換為二維,也就是將原本的每個(gè)??值通過(guò)高斯核函數(shù)和地標(biāo),將其轉(zhuǎn)換為2個(gè)值,既:
??
下面我們用程序來(lái)實(shí)踐一下這個(gè)過(guò)程:
?
|
可以看到我們構(gòu)建的樣本數(shù)據(jù)是明顯線性不可分的狀態(tài)。下面我們來(lái)定義高斯核函數(shù):
??
|
可以看到通過(guò)高斯函數(shù)將原本的一維樣本數(shù)據(jù)轉(zhuǎn)換為二維后,新樣本數(shù)據(jù)明顯成為線性可分的狀態(tài)。
上面的示例中,我們將高斯核函數(shù)中的??取定了兩個(gè)值??和??。在實(shí)際運(yùn)用中,是需要真實(shí)的將每個(gè)??值帶進(jìn)去的,也就是每一個(gè)樣本數(shù)據(jù)中的??都是一個(gè)地標(biāo),那么可想而知,原始樣本數(shù)據(jù)的行數(shù)就是新樣本數(shù)據(jù)的維數(shù),既原始??的樣本數(shù)據(jù)通過(guò)高斯核函數(shù)轉(zhuǎn)換后成為??的數(shù)據(jù)。當(dāng)樣本數(shù)據(jù)行數(shù)非常多的話,轉(zhuǎn)換后的新樣本數(shù)據(jù)維度自然會(huì)非常高,這也就是為什么在這節(jié)開(kāi)頭會(huì)說(shuō)高斯核函數(shù)的核心思想是將每一個(gè)樣本點(diǎn)映射到一個(gè)無(wú)窮維的特征空間的原因。
?高斯核函數(shù)中的Gamma
在看高斯核函數(shù)中的??之前,我們先來(lái)探討一個(gè)問(wèn)題,我們以前有學(xué)過(guò)正態(tài)分布,它是一個(gè)非常常見(jiàn)的連續(xù)概率分布,最關(guān)鍵的是它又名高斯分布,我們?cè)賮?lái)看看高斯分布的函數(shù):
??
仔細(xì)看這個(gè)函數(shù)就能發(fā)現(xiàn),它和高斯核函數(shù)的公式在形態(tài)上是一致的:
-
高斯函數(shù)??前的系數(shù)是??,??指數(shù)的系數(shù)是??。
-
高斯核函數(shù)??前的系數(shù)是1,??指數(shù)的系數(shù)是??。
所以高斯核函數(shù)的曲線其實(shí)也是一個(gè)高斯分布圖。
下面再來(lái)看看高斯分布圖以及??和??對(duì)分布圖的影響:
上圖是維基百科對(duì)高斯分布解釋中的分布圖,從圖中可以看到:
-
高斯分布曲線的形狀都是相似的鐘形圖。
-
??決定分布圖中心的偏移情況。
-
??決定分布圖峰值的高低,或者說(shuō)鐘形的胖瘦程度。
因?yàn)楦咚购瘮?shù)中的??和高斯核函數(shù)中??成倒數(shù)關(guān)系。所以:
-
高斯函數(shù)中??越大、高斯分布峰值越小。??越小、高斯分布峰值越大。
-
高斯核函數(shù)中??越大、高斯分布峰值越大,既鐘形越窄。??越小、高斯分布峰值越小,既鐘形越寬。
?Scikit Learn中的RBF SVM
這一小節(jié)來(lái)看看如果使用Scikit Learn中封裝的RBF SVM。首先還是先構(gòu)建樣本數(shù)據(jù),我們使用和多項(xiàng)式SVM相同的數(shù)據(jù):
?
|
然后通過(guò)RBF SVM訓(xùn)練數(shù)據(jù)并繪制決策邊界:
?
|
使用RBF SVM和使用多項(xiàng)式SVM其實(shí)基本一樣,只是將SVC中的kernel參數(shù)由之前的poly變更為rbf,然后傳入該核函數(shù)需要的超參數(shù)既可。
接下來(lái)繪制決策邊界:
?
|
上圖就是當(dāng)??為1時(shí),RBF SVM訓(xùn)練樣本數(shù)據(jù)后的決策邊界,我們先來(lái)解釋一下它的高斯分布有什么關(guān)系。
如上圖所示,藍(lán)色虛線表示等高線,橘黃色點(diǎn)表示一個(gè)樣本點(diǎn),所以上面的圖其實(shí)是俯視以橘黃色樣本點(diǎn)為峰值點(diǎn)的高斯分布圖。
對(duì)于每個(gè)樣本點(diǎn)都有圍繞它的一個(gè)高斯分布圖,所以連起來(lái)就形成了一片區(qū)域,然后形成了決策區(qū)域和決策邊界:
可以看到當(dāng)??取1時(shí),RBF SVM訓(xùn)練樣本數(shù)據(jù)后的決策邊界和多項(xiàng)式SVM的幾乎一致。下面我們嘗試變化超參數(shù)??來(lái)看看決策邊界會(huì)有怎樣的變化。
先來(lái)看看將??取較大值后的決策邊界:
?
|
從上圖可以看到,決策邊界幾乎就是圍繞著藍(lán)色點(diǎn)的區(qū)域,這也印證了高斯核函數(shù)中??越大、高斯分布峰值越大,既鐘形越窄的定義。因?yàn)殓娦伪容^窄,所以不足以連成大片區(qū)域,就呈現(xiàn)出了上圖中的情況。
我們?cè)賮?lái)看看將??取較小值后的決策邊界:
?
|
可以看到當(dāng)??取0.1后,決策邊界幾乎成了線性決策邊界,說(shuō)明每個(gè)樣本點(diǎn)的高斯分布鐘形太寬了。所以我們得出結(jié)論,當(dāng)??取值比較大時(shí),數(shù)據(jù)訓(xùn)練結(jié)果趨于過(guò)擬合,當(dāng)γγ取值比較小時(shí),數(shù)據(jù)訓(xùn)練結(jié)果趨于欠擬合。
?SVM解決回歸問(wèn)題
SVM解決回歸問(wèn)題的思路和解決分類問(wèn)題的思路正好是相反的。我們回憶一下,在Hard Margin SVM中,我們希望在Margin區(qū)域中一個(gè)樣本點(diǎn)都沒(méi)有,即便在Soft Margin SVM中也是希望Margin區(qū)域中的樣本點(diǎn)越少越好。
而在SVM解決回歸問(wèn)題時(shí),是希望Margin區(qū)域中的點(diǎn)越多越好:
也就是找到一條擬合直線,使得這條直線的Margin區(qū)域中的樣本點(diǎn)越多,說(shuō)明擬合的越好,反之依然。Margin邊界到擬合直線的距離稱為??是SVM解決回歸問(wèn)題的一個(gè)超參數(shù)。
在Scikit Learn中有LinearSVR和SVR兩個(gè)類,前者就是使用SVM線性方式解決回歸問(wèn)題的類,后者是SVM使用核函數(shù)方式解決回歸問(wèn)題的類。用法和LinearSVC及SVC的一致,只不過(guò)需要傳入??這個(gè)超參數(shù)既可。
?
??
?
END
往期精彩文章回顧
機(jī)器學(xué)習(xí)筆記(二十七):核函數(shù)(Kernel Function)
機(jī)器學(xué)習(xí)筆記(二十六):支撐向量機(jī)(SVM)(2)
機(jī)器學(xué)習(xí)筆記(二十五):支撐向量機(jī)(SVM)
機(jī)器學(xué)習(xí)筆記(二十四):召回率、混淆矩陣
機(jī)器學(xué)習(xí)筆記(二十三):算法精準(zhǔn)率、召回率
機(jī)器學(xué)習(xí)筆記(二十二):邏輯回歸中使用模型正則化
機(jī)器學(xué)習(xí)筆記(二十一):決策邊界
機(jī)器學(xué)習(xí)筆記(二十):邏輯回歸(2)
機(jī)器學(xué)習(xí)筆記(十九):邏輯回歸
機(jī)器學(xué)習(xí)筆記(十八):模型正則化
長(zhǎng)按掃描二維碼關(guān)注凌云時(shí)刻
每日收獲前沿技術(shù)與科技洞見(jiàn)
總結(jié)
以上是生活随笔為你收集整理的机器学习笔记(二十八):高斯核函数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Codeforces Round #49
- 下一篇: 深耕沉浸式生态 HTC VIVE Tec