Je me suis demandé s'il y avait une fonction dans sklearn qui correspond à la précision (différence entre les données réelles et prévues) et comment l'imprimer?
from sklearn import datasets
iris = datasets.load_iris()
from sklearn.naive_bayes import GaussianNB
naive_classifier= GaussianNB()
y =naive_classifier.fit(iris.data, iris.target).predict(iris.data)
pr=naive_classifier.predict(iris.data)
La plupart des classificateurs dans scikit ont une fonction intégrée score()
, dans laquelle vous pouvez entrer vos X_test et y_test et il produira la métrique appropriée pour cet estimateur. Pour les estimateurs de classification, il s'agit principalement de 'mean accuracy'
.
Aussi sklearn.metrics
ont de nombreuses fonctions disponibles qui produiront différentes métriques comme accuracy
, precision
, recall
etc.
Pour votre question spécifique, vous avez besoin de accuracy_score
from sklearn.metrics import accuracy_score
score = accuracy_score(iris.target, pr)
Vous pouvez utiliser accuracy_score
, trouver la documentation ici .
Mettre en œuvre comme ça -
from sklearn.metrics import accuracy_score
accuracy = accuracy_score(prediction, labels_test)
Cela renverra une valeur flottante. La valeur flottante décrit (nombre de points classés correctement)/(nombre total de points dans votre ensemble de test)
Pour les problèmes de classification, utilisez "metrics.accuracy_score" et la régression, utilisez "metrics.r2_score".
Vous devez importer precision_score depuis sklearn.metrics. Cela devrait être comme ci-dessous, à partir de sklearn.metrics import precision_score print precision_score (prévisions, jeu de tests d'étiquettes)
La formule de précision est le nombre de points classés correctement/tous les points de l'ensemble de test