久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

【原創(chuàng)】大結(jié)局!scikit-learn 支持向量機算法庫使用小結(jié)

 新用戶8173JS52 2020-10-27

公眾號后臺回復(fù)“python“,,立刻領(lǐng)取100本機器學習必備Python電子書

之前通過一個系列對支持向量機(以下簡稱SVM)算法的原理做了一個總結(jié),,本文從實踐的角度對scikit-learn SVM算法庫的使用做一個小結(jié)。scikit-learn SVM算法庫封裝了libsvm 和 liblinear 的實現(xiàn),,僅僅重寫了算法了接口部分,。

1. scikit-learn SVM算法庫使用概述 

scikit-learn中SVM的算法庫分為兩類,一類是分類的算法庫,,包括SVC,, NuSVC,和LinearSVC 3個類,。另一類是回歸算法庫,,包括SVR, NuSVR,,和LinearSVR 3個類,。相關(guān)的類都包裹在sklearn.svm模塊之中。

對于SVC,, NuSVC,,和LinearSVC 3個分類的類,SVC和 NuSVC差不多,,區(qū)別僅僅在于對損失的度量方式不同,,而LinearSVC從名字就可以看出,他是線性分類,,也就是不支持各種低維到高維的核函數(shù),,僅僅支持線性核函數(shù),對線性不可分的數(shù)據(jù)不能使用,。

同樣的,,對于SVR, NuSVR,,和LinearSVR 3個回歸的類,, SVR和NuSVR差不多,區(qū)別也僅僅在于對損失的度量方式不同,。LinearSVR是線性回歸,,只能使用線性核函數(shù)。

我們使用這些類的時候,,如果有經(jīng)驗知道數(shù)據(jù)是線性可以擬合的,,那么使用LinearSVC去分類 或者LinearSVR去回歸,它們不需要我們?nèi)ヂ恼{(diào)參去選擇各種核函數(shù)以及對應(yīng)參數(shù),, 速度也快,。如果我們對數(shù)據(jù)分布沒有什么經(jīng)驗,,一般使用SVC去分類或者SVR去回歸,這就需要我們選擇核函數(shù)以及對核函數(shù)調(diào)參了,。

什么特殊場景需要使用NuSVC分類 和 NuSVR 回歸呢,?如果我們對訓練集訓練的錯誤率或者說支持向量的百分比有要求的時候,可以選擇NuSVC分類 和 NuSVR ,。它們有一個參數(shù)來控制這個百分比,。

這些類的詳細使用方法我們在下面再詳細講述。

2. 回顧SVM分類算法和回歸算法

我們先簡要回顧下SVM分類算法和回歸算法,,因為這里面有些參數(shù)對應(yīng)于算法庫的參數(shù),,如果不先復(fù)習下,下面對參數(shù)的講述可能會有些難以理解,。

對于SVM分類算法,,其原始形式是:

其中m為樣本個數(shù),我們的樣本為,。是我們的分離超平面的系數(shù),為第i個樣本的松弛系數(shù),, C為懲罰系數(shù)。為低維到高維的映射函數(shù),。

通過拉格朗日函數(shù)以及對偶化后的形式為:

其中和原始形式不同的為拉格朗日系數(shù)向量,。為我們要使用的核函數(shù)。

3. SVM核函數(shù)概述

在scikit-learn中,,內(nèi)置的核函數(shù)一共有4種,,當然如果你認為線性核函數(shù)不算核函數(shù)的話,那就只有三種,。

1)線性核函數(shù)(Linear Kernel)表達式為:,,就是普通的內(nèi)積,LinearSVC 和 LinearSVR 只能使用它,。

2)  多項式核函數(shù)(Polynomial Kernel)是線性不可分SVM常用的核函數(shù)之一,表達式為:,,其中,,都需要自己調(diào)參定義,比較麻煩。

3)高斯核函數(shù)(Gaussian Kernel),,在SVM中也稱為徑向基核函數(shù)(Radial Basis Function,RBF),,它是libsvm默認的核函數(shù),當然也是scikit-learn默認的核函數(shù),。表達式為:,, 其中,大于0,,需要自己調(diào)參定義,。

4)Sigmoid核函數(shù)(Sigmoid Kernel)也是線性不可分SVM常用的核函數(shù)之一,,表達式為:, 其中,,都需要自己調(diào)參定義,。

一般情況下,對非線性數(shù)據(jù)使用默認的高斯核函數(shù)會有比較好的效果,,如果你不是SVM調(diào)參高手的話,,建議使用高斯核來做數(shù)據(jù)分析。

4. SVM分類算法庫參數(shù)小結(jié)

這里我們對SVM分類算法庫的重要參數(shù)做一個詳細的解釋,,重點講述調(diào)參的一些注意點,。

5. SVM回歸算法庫參數(shù)小結(jié)

SVM回歸算法庫的重要參數(shù)巨大部分和分類算法庫類似,因此這里重點講述和分類算法庫不同的部分,,對于相同的部分可以參考上一節(jié)對應(yīng)參數(shù),。

6. SVM算法庫其他調(diào)參要點

上面已經(jīng)對scikit-learn中類庫的參數(shù)做了總結(jié),這里對其他的調(diào)參要點做一個小結(jié),。

1)一般推薦在做訓練之前對數(shù)據(jù)進行歸一化,,當然測試集中的數(shù)據(jù)也需要歸一化。,。

2)在特征數(shù)非常多的情況下,,或者樣本數(shù)遠小于特征數(shù)的時候,使用線性核,,效果已經(jīng)很好,,并且只需要選擇懲罰系數(shù)C即可。

3)在選擇核函數(shù)時,,如果線性擬合不好,,一般推薦使用默認的高斯核'rbf'。這時我們主要需要對懲罰系數(shù)C和核函數(shù)參數(shù)進行艱苦的調(diào)參,,通過多輪的交叉驗證選擇合適的懲罰系數(shù)C和核函數(shù)參數(shù),。

4)理論上高斯核不會比線性核差,但是這個理論卻建立在要花費更多的時間來調(diào)參上,。所以實際上能用線性核解決問題我們盡量使用線性核,。

????????


1.【原創(chuàng)】支持向量機原理(一) 線性支持向量機

2.【原創(chuàng)】支持向量機原理(二) 線性支持向量機的軟間隔最大化模型

3.【原創(chuàng)】支持向量機原理(三)線性不可分支持向量機與核函數(shù)

記得把公號加星標,會第一時間收到通知,。

創(chuàng)作不易,,如果覺得有點用,希望可以隨手轉(zhuǎn)發(fā)或者”在看“,,拜謝各位老鐵

    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多