UndefinedMetricWarning : Erreur de score F
Lors du calcul des scores F avec metrics.f1_score de scikit-learn, les utilisateurs peuvent rencontrer l'avertissement :
"UndefinedMetricWarning : le score F est mal défini et est défini sur 0,0 dans les étiquettes sans échantillons prédits. (y_pred). Dans de tels cas, le score F de ces étiquettes imprévues ne peut pas être calculé et est supposé être égal à 0,0.
Exemple
Considérons l'exemple suivant où l'étiquette « 2 » est absent dans les prédictions :
Ce code produira le avertissement.
Pourquoi seulement parfois ?
y_test = [1, 10, 35, 9, 7, 29, 26, 3, 8, 23, 39, 11, 20, 2, 5, 23, 28, 30, 32, 18, 5, 34, 4, 25, 12, 24, 13, 21, 38, 19, 33, 33, 16, 20, 18, 27, 39, 20, 37, 17, 31, 29, 36, 7, 6, 24, 37, 22, 30, 0, 22, 11, 35, 30, 31, 14, 32, 21, 34, 38, 5, 11, 10, 6, 1, 14, 12, 36, 25, 8, 30, 3, 12, 7, 4, 10, 15, 12, 34, 25, 26, 29, 14, 37, 23, 12, 19, 19, 3, 2, 31, 30, 11, 2, 24, 19, 27, 22, 13, 6, 18, 20, 6, 34, 33, 2, 37, 17, 30, 24, 2, 36, 9, 36, 19, 33, 35, 0, 4, 1] y_pred = [1, 10, 35, 7, 7, 29, 26, 3, 8, 23, 39, 11, 20, 4, 5, 23, 28, 30, 32, 18, 5, 39, 4, 25, 0, 24, 13, 21, 38, 19, 33, 33, 16, 20, 18, 27, 39, 20, 37, 17, 31, 29, 36, 7, 6, 24, 37, 22, 30, 0, 22, 11, 35, 30, 31, 14, 32, 21, 34, 38, 5, 11, 10, 6, 1, 14, 30, 36, 25, 8, 30, 3, 12, 7, 4, 10, 15, 12, 4, 22, 26, 29, 14, 37, 23, 12, 19, 19, 3, 25, 31, 30, 11, 25, 24, 19, 27, 22, 13, 6, 18, 20, 6, 39, 33, 9, 37, 17, 30, 24, 9, 36, 39, 36, 19, 33, 35, 0, 4, 1] print(metrics.f1_score(y_test, y_pred, average='weighted'))
L'avertissement n'apparaît que la première fois que le score F est calculé, car la plupart des environnements Python n'affichent des avertissements spécifiques qu'une seule fois. Cependant, ce comportement peut être modifié à l'aide de warns.filterwarnings('always').
Comment éviter l'avertissement
Pour éviter de voir l'avertissement, vous pouvez soit définir warns.filterwarnings('ignore') avant d'importer scikit-learn ou spécifiez explicitement les étiquettes qui vous intéressent lors du calcul du F-score, comme suit :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!