SVM 的核函式選擇和調參
阿新 • • 發佈:2019-02-20
本文結構:
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][深度學習][強化學習][神經網路][機器學習][自然語言處理][聊天機器人]