Heim >Backend-Entwicklung >Python-Tutorial >Warum erscheint „UndefinedMetricWarning' bei der Berechnung des F1-Scores nur einmal?
UndefinedMetricWarning: F-Score Undefiniert für Etiketten ohne vorhergesagte Proben
In scikit-learn berechnet die f1_score-Metrik den F1-Score, der misst die Genauigkeit eines Klassifizierungsmodells. Die Berechnung erfordert jedoch das Vorhandensein vorhergesagter Stichproben für jede Bezeichnung in der Zielvariablen (y_test). Wenn bestimmte Labels in den vorhergesagten Stichproben (y_pred) fehlen, wird der F1-Score für diese Labels undefiniert, was zu einer Fehlermeldung führt:
UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no predicted samples.
Warum der Fehler nur einmal auftritt
Obwohl die Fehlermeldung auf eine undefinierte Metrik hindeutet, handelt es sich tatsächlich um eine Warnung, die standardmäßig nur einmal angezeigt wird. Dies liegt daran, dass Python Warnungen anders behandelt als Fehler. Standardmäßig werden in den meisten Umgebungen bestimmte Warnungen nur einmal angezeigt, auch wenn die zugrunde liegende Bedingung weiterhin besteht.
Auflösen der UndefinedMetricWarning
Um die Warnung aufzulösen, ist es wichtig, dies sicherzustellen Alle Labels in y_test sind auch in y_pred vorhanden. Dies kann durch Vergleichen der Etikettensätze ermittelt werden:
set(y_test) - set(y_pred)
Wenn das Ergebnis ein leerer Satz ist, wurden alle Etiketten vorhergesagt und es gibt keine undefinierten F1-Scores.
Wiederholte Warnungen vermeiden
Wenn es wichtig ist, die Warnung jedes Mal zu sehen, wenn sie auftritt, kann die Funktion warnings.filterwarnings() verwendet werden, um das Verhalten bei der Warnungsbehandlung zu ändern:
import warnings warnings.filterwarnings('always')
Ignorieren von Labels ohne vorhergesagte Proben
Alternativ können bestimmte Labels von der F1-Score-Berechnung ausgeschlossen werden, indem die Labels von Interesse angegeben werden:
metrics.f1_score(y_test, y_pred, average='weighted', labels=np.unique(y_pred))
Dies stellt sicher, dass in den vorhergesagten Stichproben fehlende Beschriftungen bei der Bewertungsberechnung nicht berücksichtigt werden, wodurch die Warnung entfällt.
Das obige ist der detaillierte Inhalt vonWarum erscheint „UndefinedMetricWarning' bei der Berechnung des F1-Scores nur einmal?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!