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

sklearn.svm.SVC引數說明

摘自:https://blog.csdn.net/szlcw1/article/details/52336824

 

 

本身這個函式也是基於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,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 :類別的權重,字典形式傳遞。設定第幾類的引數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。