sklearn中的支持向量机SVC
?官方鏈接
sklearn.svm.SVC — scikit-learn 1.0.2 documentationhttps://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC該方法是基于libsvm(支持向量機庫)實現的
libsvm官網
LIBSVM -- A Library for Support Vector MachinesAn integrated and easy-to-use tool for support vector classification and regressionhttps://www.csie.ntu.edu.tw/~cjlin/libsvm/
在官方文檔中說明該SVC適合萬個樣本數據集
如果超過萬個樣本數據集,即對于大型數據集,考慮使用LinearSVCor?SGDClassifier代替
一、參數介紹
1.1重點參數介紹
該SVC重要的參數就是核函數kernel
kernel,提供的可選參數有
{‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’, ‘precomputed’} or callable, 默認=’rbf’
linear:線性核函數? u'v
poly:多項式核函數? (gamma*u'*v + coef0)^degree
?rbf:徑向基函數? exp(-gamma|u-v|^2)
sigmoid:sigmoid核函數?tanh(gamma*u'*v + coef0)
precomputed:
1.2其他參數(主要調節參數)
主要調節的參數有:C、kernel、degree、gamma、coef0。
| C | 默認=1.0 正則化參數。正則化的強度與 C 成反比。必須嚴格為正。罰分是平方 l2 罰分。 C越大,相當于懲罰松弛變量,希望松弛變量接近0,即對誤分類的懲罰增大,趨向于對訓練集全分對的情況,這樣對訓練集測試時準確率很高,但泛化能力弱。C值小,對誤分類的懲罰減小,允許容錯,將他們當成噪聲點,泛化能力較強。 |
| kernel | 見1.1 |
| degree | 多項式核函數 ('poly') 的度數。被所有其他內核忽略。 |
| gamma | {'scale', 'auto'} 或浮點數,默認 ='scale' 'rbf'、'poly' 和 'sigmoid' 的核系數。
|
| coef0 | 默認=0.0 核函數中的獨立項。它僅在“poly”和“sigmoid”中有意義。 |
?補充:
對于多分類學習需要設置decision_function_shape參數
{'ovo','ovr'},默認='ovr'
是否像所有其他分類器一樣返回形狀為 (n_samples, n_classes) 的一對一 ('ovr') 決策函數,或者返回具有形狀 (n_samples) 的 libsvm 的原始一對一 ('ovo') 決策函數, n_classes * (n_classes - 1) / 2)。然而,一對一('ovo')總是被用作多類策略。對于二元分類,該參數被忽略。
如需詳細解釋請查看周志華的《機器學習》清華出版社第63頁
?
?二、參數優化(網格搜索+粒子群優化算法)
此處我們采用網格搜索+粒子群優化算法對支持向量機進行優化
先采用網格搜索進行大致范圍搜索,然后利用粒子群優化算法進行詳細優化
總結
以上是生活随笔為你收集整理的sklearn中的支持向量机SVC的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信用卡以卡办卡还需要工作证明吗
- 下一篇: 【转】foreach for each