sklearn学习笔记(3)svm多分类
SVC、NuSVC、LinearSVC都可以在一個數據集上實現多分類。
SVC和NuSVC方法類似,但是有不同的輸入參數集和不同的數學表述。另一方面,linearSVC是SVC的在線性核的基礎上的另一種實現,所以LinearSVC不能不能接受關鍵字“kernel”,只能是線性。
二分類
和別的分類器一樣,三種分類器需要輸入兩個數組:X[n樣本][n維特征](訓練數據集)Y[n個標簽](類標簽)
模型學習之后可以進行預測:
clf = svm.SVC() clf.fit(X,y) clf.predict([[2.,2.]])SVM的決策函數依賴于訓練數據集的支持向量子集。這些屬性可以通過下面函數進行查看
#get support vector clf.support_vectors_ #get indices of support vectors clf.support_ #get number of support vectors for each class clf.n_support_多分類
SVC和NuSVC實現“1v1“的方法進行多分類(Knerr et al,1990)。如果n_class是類別的數量,那么需要建立n*n/2個分類器,desision_function_shape選項允許集成“1v1”分類器來刻畫(n_samples,n_features)
同時,LinearSVC也實現了“one vs the rest”多分類策略。
lin_clf = svm.LinearSVC() lin_clf.fit(X,Y) dec = lin_clf.decision_function([[3]]) print dec.shape[1] print lin_clf.predict(2.4)評分和概率
SVC方法decision_function給每個樣本中的每個類一個評分,當我們將probability設置為True之后,我們可以通過predict_proba和predict_log_proba可以對類別概率進行評估。
Wu, Lin and Weng, “Probability estimates for multi-class classification by pairwise coupling”, JMLR 5:975-1005, 2004.
不均衡問題
我們可以通過class_weight和sample_weight兩個關鍵字實現對特定類別或者特定樣本的權重調整。
總結
以上是生活随笔為你收集整理的sklearn学习笔记(3)svm多分类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python c 选择_C和Python
- 下一篇: 线性代数分块矩阵公式