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

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

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

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

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

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

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

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

延伸閱讀

學習是年輕人改變自己的最好方式-Java培訓,做最負責任的教育,學習改變命運,軟件學習,再就業(yè),大學生如何就業(yè),幫大學生找到好工作,lphotoshop培訓,電腦培訓,電腦維修培訓,移動軟件開發(fā)培訓,網站設計培訓,網站建設培訓學習是年輕人改變自己的最好方式