DS競技では、SVMを使用してバイナリ分類を行っていました。ここでは、tdata、vdataの両方に256の機能があります。 tlabels、vlabelsは両方ともディメンションn_samples x 1を持ち、固有の値は0/1です。scikit-learn SVMを使用した確率スコア予測/ AUCへのラベル予測
競合規則に従って、ラベルの代わりに確率スコア(0〜1の間)を提出し、AUCを使用して順位を決定する必要があります。
私はSVMとSklearnにとってかなり新しいです。確率スコアとAUCを生成するためにこのコードをどのように変換するかについては、大きな助けになるでしょう。
コード:
classifier=svm.SVC(gamma=g,C=c,kernel='rbf',class_weight='balanced')
classifier.fit(tdata, tlabels)
expected = vlabels
predicted = classifier.predict(vdata)
print("Classification report for classifier %s:\n%s\n"
% (classifier, metrics.classification_report(expected, predicted)))
cm = metrics.confusion_matrix(expected, predicted)
accuracy = (cm[0,0]+cm[1,1])*100.0/sum(sum(cm))
print("accuracy = "+str(accuracy))
出力:
Classification report for classifier SVC(C=1.0, cache_size=200, class_weight='balanced', coef0=0.0,
decision_function_shape=None, degree=3, gamma=0.00020000000000000001,
kernel='rbf', max_iter=-1, probability=False, random_state=None,
shrinking=True, tol=0.001, verbose=False):
precision recall f1-score support
0.0 0.93 0.88 0.90 1881
1.0 0.92 0.95 0.94 2686
avg/total 0.92 0.92 0.92 4567
accuracy = 92.3144296037
あなたは[sklearn.metrics.auc](http://scikit-learn.org/stable/modules/generated/sklearn.metrics.auc.html)を見てきました – shanmuga
はい、しかし、0と1の間の確率スコアを出力するように分類器を変更するにはどうすればよいですか? – dharm0us
確率については、AUC sklearn.metrics.aucの答えを投稿しました – sera