SVM 的核函式選擇和調參
本文結構:
什麼是核函式
都有哪些 & 如何選擇
調參
1. 什麼是核函式
核函式形式 K(x, y) =
其中 x, y 為 n 維,f 為 n 維到 m 維的對映,
在用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 線上性可分和不可分的對比視覺化例子如下:
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 越小,容易欠擬合。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4650/viewspace-2811370/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Spark 模型選擇和調參Spark模型
- Python機器學習筆記:SVM(2)——SVM核函式Python機器學習筆記函式
- 支援向量機 (二): 軟間隔 svm 與 核函式函式
- 核函式 多項式核函式 高斯核函式(常用)函式
- python函式的入參和傳參Python函式
- php中函式的實參和形參PHP函式
- C++ 函式過載,函式模板和函式模板過載,選擇哪一個?C++函式
- cuda 核函式函式
- 《機器學習_07_03_svm_核函式與非線性支援向量機》機器學習函式
- Python的函式形參和返回值Python函式
- [20190827]函式索引與選擇率.txt函式索引
- 對於核取方塊的快捷選擇
- 核函式匯出的核矩陣性質的證明函式矩陣
- 自力式調節閥執行機構的選擇
- SNN 核函式的2種形狀函式
- day10:函式的實參&形參函式
- 【原始碼】MATLAB特徵選擇函式庫version 6.2.2018.1原始碼Matlab特徵函式
- 函式匹配和實參型別轉換函式型別
- 【Hello CSS】第五章-CSS的選擇器與函式CSS函式
- 雲伺服器1核和2核區別大嗎?我們應該該如何選擇?伺服器
- 理解pytorch幾個高階選擇函式(如gather)PyTorch函式
- React中this值繫結和事件函式傳參React事件函式
- airtestIDE 函式 2 內部呼叫函式 1 提示 not defined(選擇部分行只執行選中程式碼)AIIDE函式
- js 函式中形參與實參的關係JS函式
- 核範數與規則項引數選擇
- C語言中變參函式傳參探究C語言函式
- jQuery核取方塊checkbox的全選和反選jQuery
- 函式形參與實參的體會與對比函式
- js選擇物件和jq選擇物件的區別JS物件
- 讓element UI的select選擇器 :label 的值經過函式處理UI函式
- Python函式——locals()解包傳參Python函式
- python關於函式形參Python函式
- 關於css選擇器和樣式表的應用CSS
- JavaScript 核取方塊全選和全不選JavaScript
- Rust中的into函式和from函式Rust函式
- 啟用函式(activation functions)二三事-性質、作用與選擇函式Function
- 卷積核大小選擇、網路層數問題卷積
- 非線性支援向量機 與核函式函式