Mis a jour le 2025-04-14, 12:10

Mesures de performance

Différentes mesures pour les classes :
  • faire from sklearn import metrics
  • score = metrics.precision_score([0, 1, 1, 0, 1, 1, 0, 0, 0, 1], [0, 1, 1, 1, 1, 1, 0, 1, 0, 0]) : la précision, en donnant les vraies classes, puis les classes prédites.
  • score = metrics.recall_score([0, 1, 1, 0, 1, 1, 0, 0, 0, 1], [0, 1, 1, 1, 1, 1, 0, 1, 0, 0]) : le recall, en donnant les vraies classes, puis les classes prédites.
  • score = metrics.recall_score([0, 1, 1, 0, 1, 1, 0, 0, 0, 1], [0, 1, 1, 1, 1, 1, 0, 1, 0, 0], pos_label = 0) : la spécificité, en donnant les vraies classes, puis les classes prédites.
  • score = metrics.accuracy_score([0, 1, 1, 0, 1, 1, 0, 0, 0, 1], [0, 1, 1, 1, 1, 1, 0, 1, 0, 0]) : accuracy, en donnant les vraies classes, puis les classes prédites.
  • score = metrics.balanced_accuracy_score([0, 1, 1, 0, 1, 1, 0, 0, 0, 1], [0, 1, 1, 1, 1, 1, 0, 1, 0, 0]) : en donnant les vraies classes, puis les classes prédites : utile quand les effectifs des classes sont déséquilibrés.
  • score = metrics.f1_score([0, 1, 1, 0, 1, 1, 0, 0, 0, 1], [0, 1, 1, 1, 1, 1, 0, 1, 0, 0]) : score F1, en donnant les vraies classes, puis les classes prédites.
  • metrics.matthews_corrcoef([0, 1, 1, 0, 1, 1, 0, 0, 0, 1], [0, 1, 1, 1, 1, 1, 0, 1, 0, 0]) : le coefficient de correlation de Matthews.
  • metrics.jaccard_score([0, 1, 1, 0, 1, 1, 0, 0, 0, 1], [0, 1, 1, 1, 1, 1, 0, 1, 0, 0]) : le coefficient de similarité de Jaccard.
  • metrics.confusion_matrix([0, 1, 1, 0, 1, 1, 0, 0, 0, 1], [0, 1, 1, 1, 1, 1, 0, 1, 0, 0]) : renvoie la matrice de confusion (array numpy 2d)
Mesures par des courbes :
  • metrics.precision_recall_curve([0, 1, 1, 0, 1, 1, 0, 0, 0, 1], [0.2, 0.8, 0.9, 0.5, 0.4, 0.7, 0.1, 0.9, 0.2, 0.3]) : on donne les vraies classes (soit 1 et 0, soit 1 et -1) et les probabilités d'être de la classe 1. Renvoie un triplet avec les précisions, les recall et les seuils de probabilités correspondant aux différents points.
  • courbe ROC : metrics.roc_curve([0, 1, 1, 0, 1, 1, 0, 0, 0, 1], [0.2, 0.8, 0.9, 0.5, 0.4, 0.7, 0.1, 0.9, 0.2, 0.3]) : on donne les vraies classes (soit 1 et 0, soit 1 et -1) et les probabilités d'être de la classe 1. Renvoie un triplet avec les false positive rate, true positive rate et les seuils de probabilités correspondant aux différents points.
  • metrics.roc_auc_score([0, 1, 1, 0, 1, 1, 0, 0, 0, 1], [0.2, 0.8, 0.9, 0.5, 0.4, 0.7, 0.1, 0.9, 0.2, 0.3]) : on donne les vraies classes (soit 1 et 0, soit 1 et -1) et les probabilités d'être de la classe 1. Renvoie l'AUC.
Comparaison de 2 clusterings avec l'adjusted rand index :
  • permet de comparer les clusters issus de 2 clustering pour savoir si ce sont les mêmes, sans savoir à l'avance quel cluster du premier clustering correspond à quel cluster du 2ème clustering.
  • il varie entre en moyenne 0 (si les clusterings n'ont rien à voir, les seules correspondances sont dues au hasard) et 1 si clusterings donnent les mêmes clusters (même si pas forcément avec les mêmes étiquettes)
  • import sklearn.metrics
    score = sklearn.metrics.adjusted_rand_score(labels1, labels2)
        
  • attention : les étiquettes doivent être des entiers.

Copyright python-simple.com
programmer en python, tutoriel python, graphes en python, Aymeric Duclert