sklearn.svm.SVC 引數說明
經常用到sklearn中的SVC函式,這裡把文件中的引數翻譯了一些,以備不時之需。
本身這個函式也是基於libsvm實現的,所以在引數設定上有很多相似的地方。(PS: libsvm中的二次規劃問題的解決演算法是SMO)。
sklearn.svm.SVC(C=1.0, kernel='rbf', degree=3, gamma='auto', coef0=0.0, shrinking=True, probability=False,
tol=0.001, cache_size=200, class_weight=None, verbose=False, max_iter=-1, decision_function_shape=None
引數:
l C:C-SVC的懲罰引數C?預設值是1.0
C越大,相當於懲罰鬆弛變數,希望鬆弛變數接近0,即對誤分類的懲罰增大,趨向於對訓練集全分對的情況,這樣對訓練集測試時準確率很高,但泛化能力弱。C值小,對誤分類的懲罰減小,允許容錯,將他們當成噪聲點,泛化能力較強。
l kernel:核函式,預設是rbf,可以是‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’, ‘precomputed’
0 – 線性:u'v
1 – 多項式:(gamma*u'*v + coef0)^degree
2 – RBF函式:exp(-gamma|u-v|^2)
3 –sigmoid:tanh(gamma*u'*v + coef0)
l degree:多項式poly函式的維度,預設是3,選擇其他核函式時會被忽略。
l gamma : ‘rbf’,‘poly’ 和‘sigmoid’的核函式引數。預設是’auto’,則會選擇1/n_features
l coef0 :核函式的常數項。對於‘poly’和 ‘sigmoid’有用。
l probability:是否採用概率估計?.預設為False
l shrinking:是否採用shrinking heuristic方法,預設為true
l tol:停止訓練的誤差值大小,預設為1e-3
l cache_size
l class_weight:類別的權重,字典形式傳遞。設定第幾類的引數C為weight*C(C-SVC中的C)
l verbose:允許冗餘輸出?
l max_iter:最大迭代次數。-1為無限制。
l decision_function_shape:‘ovo’, ‘ovr’ or None, default=None3
l random_state:資料洗牌時的種子值,int值
主要調節的引數有:C、kernel、degree、gamma、coef0。