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

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

SVM算法api中的SVC、NuSVC、LinearSVC

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

好口碑IT培訓

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

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

1. 對樣本數據進行歸一化。

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

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

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

5. 測試

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

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

 • NuSVC中的nu參數和SVC中的C參數;

 • LinearSVC是實現線性核函數的支持向量分類,沒有kernel參數。
SVC

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

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

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

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

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

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

默認的是"RBF",即徑向基核,也就是高斯核函數;

而Linear指的是線性核函數,

Poly指的是多項式核,

Sigmoid指的是雙曲正切函數tanh核;。

degree:

當指定kernel為'poly'時,表示選擇的多項式的最高次數,默認為三次多項式;

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

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

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

class sklearn.svm.NuSVC(nu=0.5)

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

LinearSVC

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

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

loss:損失函數,

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

其中hinge是SVM的標準損失,squared_hinge是hinge的平方

dual:是否轉化為對偶問題求解,默認是True。

C:懲罰系數,

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

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