教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

SVM算法api中的SVC、NuSVC、LinearSVC

更新時間:2023年07月28日10時40分 來源:傳智教育 瀏覽次數(shù):

好口碑IT培訓(xùn)

SVM具有良好的魯棒性,對未知數(shù)據(jù)擁有很強的泛化能力,特別是在數(shù)據(jù)量較少的情況下,相較其他傳統(tǒng)機器學(xué)習(xí)算法具有更優(yōu)的性能。

使用SVM作為模型時,通常采用如下流程:

1. 對樣本數(shù)據(jù)進(jìn)行歸一化。

2. 應(yīng)用核函數(shù)對樣本進(jìn)行映射(最常采用和核函數(shù)是RBF和Linear,在樣本線性可分時,Linear效果要比RBF好)。

3. 用cross-validation和grid-search對超參數(shù)進(jìn)行優(yōu)選。

4. 用最優(yōu)參數(shù)訓(xùn)練得到模型。

5. 測試

sklearn中支持向量分類主要有三種方法:SVC、NuSVC、LinearSVC,擴展為三個支持向量回歸方法:SVR、NuSVR、LinearSVR。

SVC和NuSVC方法基本一致,唯一區(qū)別就是損失函數(shù)的度量方式不同

 • NuSVC中的nu參數(shù)和SVC中的C參數(shù);

 • LinearSVC是實現(xiàn)線性核函數(shù)的支持向量分類,沒有kernel參數(shù)。
SVC

class sklearn.svm.SVC(C=1.0, kernel='rbf', degree=3,coef0=0.0,random_state=None)

C: 懲罰系數(shù),用來控制損失函數(shù)的懲罰系數(shù),類似于線性回歸中的正則化系數(shù)。

C越大,相當(dāng)于懲罰松弛變量,希望松弛變量接近0,即對誤分類的懲罰增大,趨向于對訓(xùn)練集全分對的情況,這樣會出現(xiàn)訓(xùn)練集測試時準(zhǔn)確率很?,但泛化能力弱,容易導(dǎo)致過擬合。

C值小,對誤分類的懲罰減小,容錯能力增強,泛化能力較強,但也可能欠擬合。

kernel: 算法中采用的核函數(shù)類型,核函數(shù)是用來將非線性問題轉(zhuǎn)化為線性問題的?種方法。

參數(shù)選擇有RBF, Linear, Poly, Sigmoid或者自定義一個核函數(shù)。

默認(rèn)的是"RBF",即徑向基核,也就是高斯核函數(shù);

而Linear指的是線性核函數(shù),

Poly指的是多項式核,

Sigmoid指的是雙曲正切函數(shù)tanh核;。

degree:

當(dāng)指定kernel為'poly'時,表示選擇的多項式的最高次數(shù),默認(rèn)為三次多項式;

若指定kernel不是'poly',則忽略,即該參數(shù)只對'poly'有用。

多項式核函數(shù)是將低維的輸入空間映射到高維的特征空間。

coef0: 核函數(shù)常數(shù)值(y=kx+b中的b值), 只有‘poly’和‘sigmoid’核函數(shù)有,默認(rèn)值是0。
NuSVC

class sklearn.svm.NuSVC(nu=0.5)

nu: 訓(xùn)練誤差部分的上限和?持向量部分的下限,取值在(0,1)之間,默認(rèn)是0.5

LinearSVC

class sklearn.svm.LinearSVC(penalty='l2', loss='squared_hinge', dual=True, C=1.0)

penalty:正則化參數(shù),L1和L2兩種參數(shù)可選,僅LinearSVC有。

loss:損失函數(shù),

有hinge和squared_hinge兩種可選,前者?稱L1損失,后者稱為L2損失,默認(rèn)是squared_hinge,

其中hinge是SVM的標(biāo)準(zhǔn)損失,squared_hinge是hinge的平方

dual:是否轉(zhuǎn)化為對偶問題求解,默認(rèn)是True。

C:懲罰系數(shù),

用來控制損失函數(shù)的懲罰系數(shù),類似于線性回歸中的正則化系數(shù)

0 分享到:
和我們在線交談!