Comment obtenir un classifieur du score de confiance d'une prédiction dans sklearn?
Je voudrais obtenir un score de confiance de chacune des prédictions qu'il fait, en montrant comment assurer le classificateur est sur sa prédiction est correcte.
Je veux quelque chose comme ceci:
Comment est sûr, c'est le classificateur sur sa prédiction?
Classe 1: 81% qu'il s'agit de la classe 1
Classe 2: 10%
Classe 3: 6%
Classe 4: 3%
Des échantillons de mon code:
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
Je soupçonne que je voudrais utiliser le score de() la fonction, mais il me semble tenir de la mettre en œuvre correctement. Je ne sais pas si c'est la bonne fonction ou pas, mais comment pourrait-on obtenir la confiance du pourcentage d'un classificateur de prédiction?
vraiment utile question. est-il un moyen d'associer les noms de Classe avec des probabilités? par exemple, si je reçois la liste suivante des probabilités pour une entrée [0.33 0.25 0.75]. je sais que le troisième sera repris, mais la classe ne le troisième?
les probabilités correspondent à
les probabilités correspondent à
classifier.classes_
. Mais ils sont un non-sens si le jeu de données est petit 🙁 . En outre, elles ne sont pas garantis pour correspondre avec classifier.predict()
:'( . lien vers les docs de la page
OriginalL'auteur user3377126 | 2015-06-30
Vous devez vous connecter pour publier un commentaire.
Par la SVC documentation, il semble que vous devez changer la façon dont vous construisez le SVC:
et ensuite utiliser le predict_proba méthode:
Jamais l'esprit, je l'ai eu. Merci!!!!
Comment avez-vous interprété les valeurs
OriginalL'auteur Justin Peel
Pour les estimateurs de la mise en œuvre de
predict_proba()
méthode, à l'instar de Justin Peel suggéré, Vous pouvez simplement utiliserpredict_proba()
pour produire de la probabilité sur votre prédiction.Pour les estimateurs qui ne mettent pas en œuvre
predict_proba()
méthode, on peut construire un intervalle de confiance de par vous-même en utilisant bootstrap concept (à plusieurs reprises calculer votre point d'estimations dans de nombreux sous-échantillons).Laissez-moi savoir si vous avez besoin d'exemples détaillés pour démontrer ces deux cas.
Ils sont déjà sous forme de pourcentages. 🙂 La somme de chaque ligne doit être égale exactement à 1. Le dernier élément est en fait 0.992 ce qui signifie que l'algo de prédire qu'il appartient à cette classe avec prob de 99,2%. Note
e-03
est juste une notation scientifique.Ah je vois maintenant, merci! 🙂 J'aurais accepté ta réponse, mais depuis que Justin Peel a commenté la première avec l'exemple qui a fonctionné pour moi, j'ai décidé de lui en donner, désolé, mais merci pour les conseils!!!
Pas de problème du tout. 🙂 Content que nous pouvions l'aider.
est-il un moyen d'associer les noms de Classe avec des probabilités? par exemple, si je reçois la liste suivante des probabilités pour une entrée [0.33 0.25 0.75]. je sais que le troisième sera repris, mais la classe ne le troisième?
OriginalL'auteur Jianxun Li