sklearn学习笔记(3)svm多分类
SVC、NuSVC、LinearSVC都可以在一個數(shù)據(jù)集上實現(xiàn)多分類。
SVC和NuSVC方法類似,但是有不同的輸入?yún)?shù)集和不同的數(shù)學(xué)表述。另一方面,linearSVC是SVC的在線性核的基礎(chǔ)上的另一種實現(xiàn),所以LinearSVC不能不能接受關(guān)鍵字“kernel”,只能是線性。
二分類
和別的分類器一樣,三種分類器需要輸入兩個數(shù)組:X[n樣本][n維特征](訓(xùn)練數(shù)據(jù)集)Y[n個標(biāo)簽](類標(biāo)簽)
模型學(xué)習(xí)之后可以進行預(yù)測:
clf = svm.SVC() clf.fit(X,y) clf.predict([[2.,2.]])SVM的決策函數(shù)依賴于訓(xùn)練數(shù)據(jù)集的支持向量子集。這些屬性可以通過下面函數(shù)進行查看
#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實現(xiàn)“1v1“的方法進行多分類(Knerr et al,1990)。如果n_class是類別的數(shù)量,那么需要建立n*n/2個分類器,desision_function_shape選項允許集成“1v1”分類器來刻畫(n_samples,n_features)
同時,LinearSVC也實現(xiàn)了“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給每個樣本中的每個類一個評分,當(dāng)我們將probability設(shè)置為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兩個關(guān)鍵字實現(xiàn)對特定類別或者特定樣本的權(quán)重調(diào)整。
總結(jié)
以上是生活随笔為你收集整理的sklearn学习笔记(3)svm多分类的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python c 选择_C和Python
- 下一篇: html字符串转换jsx,javascr