sklearn系列之 sklearn.svm.SVC詳解


首先我們應該對SVM的參數有一個詳細的認知:

  sklearn.svm.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,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。
復制代碼

 

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

   

與核函數相對應的libsvm參數建議:

1)對於線性核函數,沒有專門需要設置的參數

2)對於多項式核函數,有三個參數。-d用來設置多項式核函數的最高此項次數,也就是公式中的d,默認值是3。-g用來設置核函數中的gamma參數設置,也就是公式中的第一個r(gamma),默認值是1/k(k是類別數)。-r用來設置核函數中的coef0,也就是公式中的第二個r,默認值是0。

3)對於RBF核函數,有一個參數。-g用來設置核函數中的gamma參數設置,也就是公式中的第一個r(gamma),默認值是1/k(k是類別數)。

4)對於sigmoid核函數,兩個參數g以及r:gamma一般可選1 2 3 4,coef0選0.2 0.4 0.60.8 1

   

屬性:

support_ :支持向量索引。

support_vectors_ :支持向量。

n_support_ :每一類的支持向量數目

dual_coef_ :決策函數中支持向量的系數

coef_ :賦予特征的權重(原始問題中的系數)。這僅適用於線性內核。

intercept_ :決策函數中的常量。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM