Python/scikit-learn機器學習庫(SVM支援向量機)
阿新 • • 發佈:2019-02-10
SVM
SVM用於分類、迴歸、異常檢測。
優點:
- 高維空間有效。
- 維度小於樣本數時依然有效。
- 樣本少時表現不好。
分類
多分類: 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函式的係數,決定了資料對映到新的特徵空間後的分佈。