web-dev-qa-db-ja.com

sklearnの予測の分類子の信頼スコアを取得する方法は?

各予測の信頼度スコアを取得し、分類子が正しいと予測するかどうかを示したいと思います。

私はこのようなものが欲しい:

予測の分類子はどの程度確実ですか?

クラス1:これはクラス1である81%
クラス2:10%
クラス3:6%
クラス4:3%

私のコードのサンプル:

features_train, features_test, labels_train, labels_test = cross_validation.train_test_split(main, target, test_size = 0.4)

# Determine amount of time to train
t0 = time()
model = SVC()
#model = SVC(kernel='poly')
#model = GaussianNB()

model.fit(features_train, labels_train)

print 'training time: ', round(time()-t0, 3), 's'

# Determine amount of time to predict
t1 = time()
pred = model.predict(features_test)

print 'predicting time: ', round(time()-t1, 3), 's'

accuracy = accuracy_score(labels_test, pred)

print 'Confusion Matrix: '
print confusion_matrix(labels_test, pred)

# Accuracy in the 0.9333, 9.6667, 1.0 range
print accuracy



model.predict(sub_main)

# Determine amount of time to predict
t1 = time()
pred = model.predict(sub_main)

print 'predicting time: ', round(time()-t1, 3), 's'

print ''
print 'Prediction: '
print pred

Score()関数を使用すると思われますが、正しく実装し続けるようです。それが正しい関数かどうかはわかりませんが、分類子の予測の信頼度をどのように取得するのでしょうか?

15
user3377126

SVC documentation に従って、SVCの構築方法を変更する必要があるようです。

model = SVC(probability=True)

次に、predict_probaメソッドを使用します。

class_probabilities = model.predict_proba(sub_main)
19
Justin Peel

Justin Peelが提案したように、predict_proba()メソッドを実装するこれらの推定器については、predict_proba()を使用して予測の確率を生成できます。

predict_proba()メソッドを実装していない推定器の場合、bootstrap= concept(多くのサブサンプルで点推定値を繰り返し計算))を使用して、自分で信頼区間を構築できます。

これら2つのケースのいずれかを示すために詳細な例が必要な場合はお知らせください。

7
Jianxun Li