svm 參數(shù)筆記

SVC

SVC用于分類:支持向量分類,基于libsvm實現(xiàn)的,數(shù)據(jù)擬合的時間復(fù)雜度是數(shù)據(jù)樣本的二次方,這使得他很難擴展到10000個數(shù)據(jù)集,當(dāng)輸入是多類別時(SVM最初是處理二分類問題的),通過一對一的方案解決,當(dāng)然也有別的解決辦法。

SVC參數(shù)說明如下:

C:懲罰項,float類型,可選參數(shù),默認為1.0,C越大,即對分錯樣本的懲罰程度越大,因此在訓(xùn)練樣本中準確率越高,但是泛化能力降低,也就是對測試數(shù)據(jù)的分類準確率降低。相反,減小C的話,容許訓(xùn)練樣本中有一些誤分類錯誤樣本,泛化能力強。對于訓(xùn)練樣本帶有噪聲的情況,一般采用后者,把訓(xùn)練樣本集中錯誤分類的樣本作為噪聲。

kernel:核函數(shù)類型,str類型,默認為’rbf’。可選參數(shù)為:

‘linear’:線性核函數(shù)

‘poly’:多項式核函數(shù)

‘rbf’:徑像核函數(shù)/高斯核

‘sigmod’:sigmod核函數(shù)

‘precomputed’:核矩陣。precomputed表示自己提前計算好核函數(shù)矩陣,這時候算法內(nèi)部就不再用核函數(shù)去計算核矩陣,而是直接用你給的核矩陣,核矩陣需要為n*n的。

degree:多項式核函數(shù)的階數(shù),int類型,可選參數(shù),默認為3。這個參數(shù)只對多項式核函數(shù)有用,是指多項式核函數(shù)的階數(shù)n,如果給的核函數(shù)參數(shù)是其他核函數(shù),則會自動忽略該參數(shù)。

gamma:核函數(shù)系數(shù),float類型,可選參數(shù),默認為auto。只對’rbf’ ,’poly’ ,’sigmod’有效。如果gamma為auto,代表其值為樣本特征數(shù)的倒數(shù),即1/n_features。

coef0:核函數(shù)中的獨立項,float類型,可選參數(shù),默認為0.0。只有對’poly’ 和,’sigmod’核函數(shù)有用,是指其中的參數(shù)c。

probability:是否啟用概率估計,bool類型,可選參數(shù),默認為False,這必須在調(diào)用fit()之前啟用,并且會fit()方法速度變慢。

shrinking:是否采用啟發(fā)式收縮方式,bool類型,可選參數(shù),默認為True。

tol:svm停止訓(xùn)練的誤差精度,float類型,可選參數(shù),默認為1e^-3。

cache_size:內(nèi)存大小,float類型,可選參數(shù),默認為200。指定訓(xùn)練所需要的內(nèi)存,以MB為單位,默認為200MB。

class_weight:類別權(quán)重,dict類型或str類型,可選參數(shù),默認為None。給每個類別分別設(shè)置不同的懲罰參數(shù)C,如果沒有給,則會給所有類別都給C=1,即前面參數(shù)指出的參數(shù)C。如果給定參數(shù)’balance’,則使用y的值自動調(diào)整與輸入數(shù)據(jù)中的類頻率成反比的權(quán)重。

verbose:是否啟用詳細輸出,bool類型,默認為False,此設(shè)置利用libsvm中的每個進程運行時設(shè)置,如果啟用,可能無法在多線程上下文中正常工作。一般情況都設(shè)為False,不用管它。

max_iter:最大迭代次數(shù),int類型,默認為-1,表示不限制。

decision_function_shape:決策函數(shù)類型,可選參數(shù)’ovo’和’ovr’,默認為’ovr’?!痮vo’表示one vs one,’ovr’表示one vs rest。

random_state:數(shù)據(jù)洗牌時的種子值,int類型,可選參數(shù),默認為None。偽隨機數(shù)發(fā)生器的種子,在混洗數(shù)據(jù)時用于概率估計。

NuSVC

NuSVC(Nu-Support Vector Classification.):核支持向量分類,和SVC類似,也是基于libsvm實現(xiàn)的,但不同的是通過一個參數(shù)空值支持向量的個數(shù)。

nu:訓(xùn)練誤差的一個上界和支持向量的分數(shù)的下界。應(yīng)在間隔(0,1 ]。

其余同SVC

LinearSVC

LinearSVC(Linear Support Vector Classification):線性支持向量分類,類似于SVC,但是其使用的核函數(shù)是”linear“上邊介紹的兩種是按照brf(徑向基函數(shù)計算的,其實現(xiàn)也不是基于LIBSVM,所以它具有更大的靈活性在選擇處罰和損失函數(shù)時,而且可以適應(yīng)更大的數(shù)據(jù)集,他支持密集和稀疏的輸入是通過一對一的方式解決的。

LinearSVC 參數(shù)解釋

C:目標函數(shù)的懲罰系數(shù)C,用來平衡分類間隔margin和錯分樣本的,default C = 1.0;

loss:指定損失函數(shù)

penalty

dual :選擇算法來解決對偶或原始優(yōu)化問題。當(dāng)nsamples>nfeaturesnsamples>nfeatures 時dual=false。

tol :(default = 1e - 3): svm結(jié)束標準的精度;

multi_class:如果y輸出類別包含多類,用來確定多類策略, ovr表示一對多,“crammer_singer”優(yōu)化所有類別的一個共同的目標 。如果選擇“crammer_singer”,損失、懲罰和優(yōu)化將會被被忽略。

fit_intercept

intercept_scaling

class_weight :對于每一個類別i設(shè)置懲罰系數(shù)C=classweight[i]?CC=classweight[i]?C,如果不給出,權(quán)重自動調(diào)整為 nsamples/(nclasses?np.bincount(y))nsamples/(nclasses?np.bincount(y))

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容