Précision
Précision
En machine learning, la précision est une métrique de performance, permettant de quantifier les performances d'un algorithme de classification. La précision est le nombre de vrais positifs divisé par le nombre de prédictions positives :

Où :
TP (True Positives) est le nombre de positifs prédits à raison par l'algorithme
FP (False Positives) est le nombre de positifs prédits à tort par l'algorithme
Interprétation de la précision
La précision se concentre sur le volume de faux positifs. Ainsi, elle peut être très pertinente pour les modèles pour lesquels un faux positif est grave, et où un faux négatif ne l’est pas trop. En revanche, elle peut mener à des modèles biaisés, qui classent trop d’observations dans la classe False. Elle est donc à combiner avec le rappel, qui dépend lui des faux négatifs. Le F1-Score permet de calculer la moyenne harmonique de la précision et du rappel, pour obtenir une métrique de performance qui prend en compte les faux positifs comme les faux négatifs.
Il est de plus utile de calculer la courbe d’apprentissage, pour détecter un éventuel sur-apprentissage. Par ailleurs, il faut savoir interpréter ces mesures de performance, qui ne sont que des outils, et qui ne prennent pas en compte le coût des erreurs. Enfin, il est conseillé d’afficher la répartition des erreurs dans les classes, pour identifier un éventuel biais de l’algorithme, qui pourrait ne pas se refléter dans une mesure de performance, si les classes étaient trop déséquilibrées.
Syntaxe Python
Grâce à la bibliothèque Scikit-learn de Python, on peut calculer rapidement le rapport de classification d'un algorithme, avec la syntaxe suivante :

Ce rapport contient entre autres les scores de précision pour chaque classe, ainsi que la moyenne sur toutes les classes ('macro avg') et la moyenne pondérée par la taille des classes ('weighted avg'). La colonne 'support' donne la taille de chaque classe, ce qui est permet de savoir si les classes sont déséquilibrées, et si la précision 'weighted avg' est donc peu pertinente.
Voir aussi : all(), any(), append(), count(), enumerate(), extend(), filter(), float() format() input(), int(), isdigit(), isinstance(), items(), join(), endswith(), list(), map(), max(), mean(), min(), pop(), range(), len(), startswith(), zip(), type(), get(), symmetric_difference(), keys(), difference()
Numpy : arange(), array(), delete(), hsplit(), hstack(), linspace(), logical_and(), logical_or(), polyfit()
Pandas : concat(), concatenate(), describe(), dict(), drop_duplicates(), dropna(), fillna(), from_dict(), groupby(), head(), iloc, info(), insert(), isin(), melt(), merge(), pivot_table(), read_csv(), read_excel(), rename(), where()
Machine Learning : F1-Score, Précision, Rappel, Normalisation, Courbe d’apprentissage, Les résidus, Régression VS classification, Mean Absolute Error (MAE), Mean Squared Error (MSE), Root Mean Squared Error (RMSE), Accuracy, L’astuce du noyau, Bases d’apprentissage et de test, Classes linéairement séparables, Apprentissage supervisé VS non-supervisé, Coefficient de détermination R2, Validation croisée
N'hésitez pas à consulter nos formations sur cette page.