sklearn中SVC和SVR的參數說明

部分內容參考博客,會有標註

SVC

轉載於:機器學習筆記(3)-sklearn支持向量機SVM–Spytensor

官方源碼

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='ovr', 
                random_state=None)

參數解析

參數 含義 數據類型
C 表示錯誤項的懲罰係數C越大,即對分錯樣本的懲罰程度越大,因此在訓練樣本中準確率越高,但是泛化能力降低;相反,減小C的話,容許訓練樣本中有一些誤分類錯誤樣本,泛化能力強。對於訓練樣本帶有噪聲的情況,一般採用後者,把訓練樣本集中錯誤分類的樣本作爲噪聲。 float參數 默認值爲1.0
kernel 該參數用於選擇模型所使用的核函數,算法中常用的核函數有:-- linear:線性核函數-- poly:多項式核函數–rbf:徑像核函數/高斯核–sigmod:sigmod核函數–precomputed:核矩陣,該矩陣表示自己事先計算好的,輸入後算法內部將使用你提供的矩陣進行計算 str參數 默認爲‘rbf’
degree 該參數只對’kernel=poly’(多項式核函數)有用,是指多項式核函數的階數n,如果給的核函數參數是其他核函數,則會自動忽略該參數。 int型參數 默認爲3
gamma 該參數爲核函數係數,只對‘rbf’,‘poly’,‘sigmod’有效。如果gamma設置爲auto,代表其值爲樣本特徵數的倒數,即1/n_features,也有其他值可設定。 float參數 默認爲auto
coef0 該參數表示核函數中的獨立項,只有對‘poly’和‘sigmod’核函數有用,是指其中的參數c。 float參數 默認爲0.0
probability 該參數表示是否啓用概率估計。 這必須在調用fit()之前啓用,並且會使fit()方法速度變慢。 bool參數 默認爲False
shrinkintol 該參數表示是否選用啓發式收縮方式。 bool參數 默認爲True
tol svm停止訓練的誤差精度,也即閾值。 float參數 默認爲1e^-3
cache_size 該參數表示指定訓練所需要的內存,以MB爲單位,默認爲200MB。 float參數 默認爲200
class_weight 該參數表示給每個類別分別設置不同的懲罰參數C,如果沒有給,則會給所有類別都給C=1,即前面參數指出的參數C。如果給定參數‘balance’,則使用y的值自動調整與輸入數據中的類頻率成反比的權重。 字典類型或者‘balance’字符串。默認爲None
verbose 該參數表示是否啓用詳細輸出。此設置利用libsvm中的每個進程運行時設置,如果啓用,可能無法在多線程上下文中正常工作。一般情況都設爲False,不用管它。 bool參數 默認爲False
max_iter 該參數表示最大迭代次數,如果設置爲-1則表示不受限制。 int參數 默認爲-1
random_state 該參數表示在混洗數據時所使用的僞隨機數發生器的種子,如果選int,則爲隨機數生成器種子;如果選RandomState instance,則爲隨機數生成器;如果選None,則隨機數生成器使用的是np.random int,RandomState instance ,None 默認爲None

函數

函數 作用
svc.decision_function(X) 樣本X到分離超平面的距離
svc.fit(X, y[, sample_weight]) 根據給定的訓練數據擬合SVM模型。
svc.get_params([deep]) 獲取此估算器的參數並以字典行書儲存,默認deep=True,以分類iris數據集爲例,得到的參數如下
svc.predict(X) 根據測試數據集進行預測
svc.score(X, y[, sample_weight]) 返回給定測試數據和標籤的平均精確度
svc.predict_log_proba(X_test),svc.predict_proba(X_test) 當sklearn.svm.SVC(probability=True)時,纔會有這兩個值,分別得到樣本的對數概率以及普通概率。

屬性

屬性 含義
svc.coef_[0] 權重
svc.intercept_ bias,偏差

SVR

參考:sklearn線性迴歸,支持向量機SVR迴歸,隨機森林迴歸,神經網絡迴歸參數解釋及示例
sklearn.svm.SVR的參數介紹

官方源碼

sklearn.svm.SVR(kernel ='rbf',degree = 3,gamma ='auto_deprecated',coef0 = 0.0,
		tol = 0.001,C = 1.0,epsilon = 0.1,shrinking = True,cache_size = 200,		
		verbose = False,max_iter = -1

參數解析

參數 含義 數據類型
kernel svc中指定的kernel類型。 可以是: ‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’, ‘precomputed’ 或者自己指定。 默認使用‘rbf’ 。 string, optional (default=’rbf’)
degree 當指定kernel爲 ‘poly’時,表示選擇的多項式的最高次數,默認爲三次多項式。 若指定kernel不是‘poly’,則忽略,即該參數只對‘poly’有作用。 int, optional (default=3)
gamma 當kernel爲‘rbf’, ‘poly’或‘sigmoid’時的kernel係數。 如果不設置,默認爲 ‘auto’ ,此時,kernel係數設置爲:1/n_features float, optional (default=’auto’)
coef0 kernel函數的常數項。 只有在 kernel爲‘poly’或‘sigmoid’時有效,默認爲0。 float, optional (default=0.0)
tol 誤差項達到指定值時則停止訓練,默認爲1e-3,即0.001。 float, optional (default=1e-3)
C 誤差項的懲罰參數,一般取值爲10的n次冪,如10的-5次冪,10的-4次冪。。。。10的0次冪,10,1000,1000,在python中可以使用pow(10,n) n=-5~inf C越大,相當於希望鬆弛變量接近0,即對誤分類的懲罰增大,趨向於對訓練集全分對的情況,這樣會出現訓練集測試時準確率很高,但泛化能力弱。 C值小,對誤分類的懲罰減小,容錯能力增強,泛化能力較強。 float, optional (default=1.0)
epsilon ε,Epsilon在epsilon-SVR模型中。它指定了epsilon-tube,其中訓練損失函數中沒有懲罰與在實際值的距離epsilon內預測的點。 float,optional(默認值= 0.1)
shrinking 如果能預知哪些變量對應着支持向量,則只要在這些樣本上訓練就夠了,其他樣本可不予考慮,這不影響訓練結果,但降低了問題的規模並有助於迅速求解。進一步,如果能預知哪些變量在邊界上(即a=C),則這些變量可保持不動,只對其他變量進行優化,從而使問題的規模更小,訓練時間大大降低。這就是Shrinking技術。 Shrinking技術基於這樣一個事實:支持向量只佔訓練樣本的少部分,並且大多數支持向量的拉格朗日乘子等於C boolean, optional (default=True)
cache_size 指定內核緩存的大小,默認爲200M。 float, optional
verbose 是否啓用詳細輸出。 多線程時可能不會如預期的那樣工作。默認爲False。 bool, default: False
max_iter 默認設置爲-1,表示無窮大迭代次數。 Hard limit on iterations within solver, or -1 for no limit. int, optional (default=-1)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章