2017-02-04 5 views
0

J'ai fait une énorme erreur. J'ai imprimé sortie scikit-learn précision svm comme:Calcul de la précision à partir de la précision, rappel, f1-score - scikit-learn

str(metrics.classification_report(trainExpected, trainPredict, digits=6)) 

Maintenant je dois calculer la précision de la sortie suivante:

   precision recall f1-score support 

1    0.000000 0.000000 0.000000  1259 
2    0.500397 1.000000 0.667019  1261 
avg/total 0.250397 0.500397 0.333774  2520 

Est-il possible de calculer la précision de ces valeurs? PS: Je ne veux pas passer une autre journée pour obtenir les sorties du modèle. Je viens de réaliser cette erreur, je l'espère, je n'ai pas besoin de recommencer depuis le début.

Répondre

0

Pas besoin de passer plus de temps dessus. Le metricsmodule a tout ce dont vous avez besoin et vous avez déjà calculé les valeurs prédites. C'est un changement d'une ligne.

print(metrics.accuracy_score(trainExpected, trainPredict)) 

Je suggère que vous passiez un peu de temps à lire la page liée pour en savoir plus sur l'évaluation des modèles en général.

Je pense que vous avez un plus gros problème à portée de main - vous avez des valeurs prédites nulles pour votre classe 1, malgré des classes équilibrées. Vous avez probablement un problème avec vos données, votre stratégie de modélisation ou votre code.

+0

Vous avez raison avec les valeurs prédites, je ne l'ai pas vu au début. Je travaille avec un grand nombre d'échantillons et de fonctionnalités et cela prend beaucoup de temps. Ce que je veux dire en passant du temps est en train d'attendre les résultats de chaque entrée. Une modification de ligne est correcte, mais j'essayais de trouver une méthode de calcul pour l'exactitude sur ces valeurs (en analysant les valeurs de ces résultats), afin de ne pas commencer et écrire les scores dans le fichier. Merci d'avoir répondu. –