1. 程式人生 > >Python/scikit-learn機器學習庫(SVM支援向量機)

Python/scikit-learn機器學習庫(SVM支援向量機)

SVM

SVM用於分類、迴歸、異常檢測。
優點:

  1. 高維空間有效。
  2. 維度小於樣本數時依然有效。
  3. 樣本少時表現不好。
分類

多分類: SVC、NuSVC、LinearSVC。SVMs決策函式依賴於訓練資料中一部分,這些向量稱為支援向量。

NuSVC

from sklearn.svm import NuSVC
clf=svm.NuSVC()

SVC

from sklearn import svm
clf=svm.SVC()
clf.fit(X,Y)
//分類
clf.predict(x)
//樣本與分類超平面的距離,如n是分類數,則距離向量維度為n(n-1)/2
clf.decision_function(x)
//評分
clf.score(x,y)

迴歸

Support Vector Regression:SVR、NuSVR、LinearSVR。

SVR

from sklearn import svm
clf=svm.SVR()
clf.fit(X,Y)
//預測
clf.predict(x)

SVM引數
C

懲罰因子,在最優化函式中,對離群點的懲罰因子,也就是對離群點的重視程度。距離分類面越遠,離群就越嚴重。C的值越大,考慮離群點的權重越大,可能無法得到問題的解;若C=0,忽略離群點。
C的取值會影響SVM的效能。C的取值通常和樣本的數量有關,樣本數量越大,C也會越大;C也和資料的分佈(可分性)有關。

gamma

Kernel函式的係數,決定了資料對映到新的特徵空間後的分佈。

degree