SVC
SVC用于分類:支持向量分類髓堪,基于libsvm實(shí)現(xiàn)的亿扁,數(shù)據(jù)擬合的時間復(fù)雜度是數(shù)據(jù)樣本的二次方猪叙,這使得他很難擴(kuò)展到10000個數(shù)據(jù)集恐锣,當(dāng)輸入是多類別時(SVM最初是處理二分類問題的)髓考,通過一對一的方案解決污抬,當(dāng)然也有別的解決辦法。
SVC參數(shù)說明如下:
C:懲罰項绳军,float類型印机,可選參數(shù),默認(rèn)為1.0门驾,C越大射赛,即對分錯樣本的懲罰程度越大,因此在訓(xùn)練樣本中準(zhǔn)確率越高奶是,但是泛化能力降低楣责,也就是對測試數(shù)據(jù)的分類準(zhǔn)確率降低竣灌。相反,減小C的話秆麸,容許訓(xùn)練樣本中有一些誤分類錯誤樣本初嘹,泛化能力強(qiáng)。對于訓(xùn)練樣本帶有噪聲的情況沮趣,一般采用后者屯烦,把訓(xùn)練樣本集中錯誤分類的樣本作為噪聲。
kernel:核函數(shù)類型房铭,str類型驻龟,默認(rèn)為’rbf’「追耍可選參數(shù)為:
‘linear’:線性核函數(shù)
‘poly’:多項式核函數(shù)
‘rbf’:徑像核函數(shù)/高斯核
‘sigmod’:sigmod核函數(shù)
‘precomputed’:核矩陣翁狐。precomputed表示自己提前計算好核函數(shù)矩陣,這時候算法內(nèi)部就不再用核函數(shù)去計算核矩陣凌蔬,而是直接用你給的核矩陣露懒,核矩陣需要為n*n的。
degree:多項式核函數(shù)的階數(shù)砂心,int類型懈词,可選參數(shù),默認(rèn)為3计贰。這個參數(shù)只對多項式核函數(shù)有用钦睡,是指多項式核函數(shù)的階數(shù)n蒂窒,如果給的核函數(shù)參數(shù)是其他核函數(shù)躁倒,則會自動忽略該參數(shù)。
gamma:核函數(shù)系數(shù)洒琢,float類型秧秉,可選參數(shù),默認(rèn)為auto衰抑。只對’rbf’ ,’poly’ ,’sigmod’有效象迎。如果gamma為auto,代表其值為樣本特征數(shù)的倒數(shù)呛踊,即1/n_features砾淌。
coef0:核函數(shù)中的獨(dú)立項,float類型谭网,可選參數(shù)汪厨,默認(rèn)為0.0。只有對’poly’ 和,’sigmod’核函數(shù)有用愉择,是指其中的參數(shù)c劫乱。
probability:是否啟用概率估計织中,bool類型,可選參數(shù)衷戈,默認(rèn)為False狭吼,這必須在調(diào)用fit()之前啟用,并且會fit()方法速度變慢殖妇。
shrinking:是否采用啟發(fā)式收縮方式刁笙,bool類型,可選參數(shù)拉一,默認(rèn)為True采盒。
tol:svm停止訓(xùn)練的誤差精度,float類型蔚润,可選參數(shù)磅氨,默認(rèn)為1e^-3。
cache_size:內(nèi)存大小嫡纠,float類型烦租,可選參數(shù),默認(rèn)為200除盏。指定訓(xùn)練所需要的內(nèi)存叉橱,以MB為單位,默認(rèn)為200MB者蠕。
class_weight:類別權(quán)重窃祝,dict類型或str類型,可選參數(shù)踱侣,默認(rèn)為None粪小。給每個類別分別設(shè)置不同的懲罰參數(shù)C,如果沒有給抡句,則會給所有類別都給C=1探膊,即前面參數(shù)指出的參數(shù)C。如果給定參數(shù)’balance’待榔,則使用y的值自動調(diào)整與輸入數(shù)據(jù)中的類頻率成反比的權(quán)重逞壁。
verbose:是否啟用詳細(xì)輸出,bool類型锐锣,默認(rèn)為False腌闯,此設(shè)置利用libsvm中的每個進(jìn)程運(yùn)行時設(shè)置,如果啟用雕憔,可能無法在多線程上下文中正常工作姿骏。一般情況都設(shè)為False,不用管它橘茉。
max_iter:最大迭代次數(shù)工腋,int類型姨丈,默認(rèn)為-1,表示不限制擅腰。
decision_function_shape:決策函數(shù)類型蟋恬,可選參數(shù)’ovo’和’ovr’,默認(rèn)為’ovr’趁冈〖哒’ovo’表示one vs one,’ovr’表示one vs rest渗勘。
random_state:數(shù)據(jù)洗牌時的種子值沐绒,int類型,可選參數(shù)旺坠,默認(rèn)為None乔遮。偽隨機(jī)數(shù)發(fā)生器的種子,在混洗數(shù)據(jù)時用于概率估計。
NuSVC
NuSVC(Nu-Support Vector Classification.):核支持向量分類取刃,和SVC類似蹋肮,也是基于libsvm實(shí)現(xiàn)的,但不同的是通過一個參數(shù)空值支持向量的個數(shù)璧疗。
nu:訓(xùn)練誤差的一個上界和支持向量的分?jǐn)?shù)的下界坯辩。應(yīng)在間隔(0,1 ]崩侠。
其余同SVC
LinearSVC
LinearSVC(Linear Support Vector Classification):線性支持向量分類漆魔,類似于SVC,但是其使用的核函數(shù)是”linear“上邊介紹的兩種是按照brf(徑向基函數(shù)計算的却音,其實(shí)現(xiàn)也不是基于LIBSVM改抡,所以它具有更大的靈活性在選擇處罰和損失函數(shù)時,而且可以適應(yīng)更大的數(shù)據(jù)集僧家,他支持密集和稀疏的輸入是通過一對一的方式解決的雀摘。
LinearSVC 參數(shù)解釋
C:目標(biāo)函數(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é)束標(biāo)準(zhǔn)的精度;
multi_class:如果y輸出類別包含多類,用來確定多類策略匕荸, ovr表示一對多爹谭,“crammer_singer”優(yōu)化所有類別的一個共同的目標(biāo) 。如果選擇“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))