1. 程式人生 > >SVM 的核函式選擇和調參

SVM 的核函式選擇和調參

本文結構:
1. 什麼是核函式
2. 都有哪些 & 如何選擇
3. 調參

1. 什麼是核函式

核函式形式 K(x, y) = <f(x), f(y)>,
其中 x, y  為 n 維,f 為 n 維到 m 維的對映,<f(x), f(y)> 表示內積。

在用SVM處理問題時,如果資料線性不可分,希望通過 將輸入空間內線性不可分的資料 對映到 一個高維的特徵空間內,使資料在特徵空間內是線性可分的,這個對映記作 ϕ(x),

之後優化問題中就會有內積 ϕi⋅ϕj,
這個內積的計算維度會非常大,因此引入了核函式,
kernel 可以幫我們很快地做一些計算, 否則將需要在高維空間中進行計算。

2. 都有哪些 & 如何選擇

下表列出了 9 種核函式以及它們的用處和公式,常用的為其中的前四個:linear,Polynomial,RBF,Sigmoid

核函式 用處 公式
linear kernel 線性可分時,特徵數量多時,樣本數量多再補充一些特徵時,linear kernel可以是RBF kernel的特殊情況
Polynomial kernel image processing,引數比RBF多,取值範圍是(0,inf)
Gaussian radial basis function (RBF) 通用,線性不可分時,特徵維數少 樣本數量正常時,在沒有先驗知識時用,取值在[0,1]
Sigmoid kernel 生成神經網路,在某些引數下和RBF很像,可能在某些引數下是無效的
Gaussian kernel 通用,在沒有先驗知識時用
Laplace RBF kernel 通用,在沒有先驗知識時用
Hyperbolic tangent kernel neural networks中用
Bessel function of the first kind Kernel 可消除函式中的交叉項
ANOVA radial basis kernel 迴歸問題
Linear splines kernel in one-dimension text categorization,迴歸問題,處理大型稀疏向量

其中 linear kernel 和 RBF kernel 線上性可分和不可分的對比視覺化例子如下:

3. 調參

在 sklearn 中可以用 grid search 找到合適的 kernel,以及它們的 gamma,C 等引數,那麼來看看各 kernel 主要調節的引數是哪些:

核函式 公式 調參
linear kernel
Polynomial kernel -d:多項式核函式的最高次項次數,-g:gamma引數,-r:核函式中的coef0
Gaussian radial basis function (RBF) -g:gamma引數,預設值是1/k
Sigmoid kernel -g:gamma引數,-r:核函式中的coef0

其中有兩個重要的引數,即 C(懲罰係數) 和 gamma,
gamma 越大,支援向量越少,gamma 越小,支援向量越多。
而支援向量的個數影響訓練和預測的速度。
C 越高,容易過擬合。C 越小,容易欠擬合。

推薦閱讀
歷史技術博文連結彙總
也許可以找到你想要的:
[入門問題][TensorFlow][深度學習][強化學習][神經網路][機器學習][自然語言處理][聊天機器人]