F1-Score
F1-Score
En machine learning, le F1-Score est une métrique de performance, permettant de faire la moyenne harmonique du rappel et de la précision. En effet, le rappel se concentre sur le volume de faux négatifs, en oubliant les faux positifs, et la précision se concentre à l'inverse sur le volume de faux positifs, en oubliant les faux négatifs. Le F1-Score permet de combiner ces deux métriques pour obtenir une seule métrique de performance, permettant d'évaluer l'ensemble des performances d'un modèle de classification.

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 le F1-Score de 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 le rappel 'weighted avg' est donc peu pertinent. La valeur se trouvant dans la ligne 'accuracy' et dans la colonne 'f1-score' représente l'accuracy, ou exactitude du modèle, et n'est en réalité pas un F1-Score.
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.