1. 程式人生 > >sklearn.svm.SVC 引數說明

sklearn.svm.SVC 引數說明

經常用到sklearn中的SVC函式,這裡把文件中的引數翻譯了一些,以備不時之需。

本身這個函式也是基於libsvm實現的,所以在引數設定上有很多相似的地方。(PS: libsvm中的二次規劃問題的解決演算法是SMO)。
sklearn.svm.SVC(C=1.0kernel='rbf'degree=3gamma='auto'coef0=0.0shrinking=Trueprobability=False,

tol=0.001cache_size=200class_weight=Noneverbose=Falsemax_iter=-1decision_function_shape=None

,random_state=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

:核函式cache快取大小,預設為200

l  class_weight:類別的權重,字典形式傳遞。設定第幾類的引數Cweight*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。