F-Score-Warnung: Undefinierte Metriken und fehlende vorhergesagte Stichproben
Im Zusammenhang mit Klassifizierungsaufgaben wird häufig die F-Score-Metrik verwendet um die Modellleistung zu bewerten. Wenn jedoch der Fehler „UndefinedMetricWarning: F-Score ist schlecht definiert“ auftritt, weist dies darauf hin, dass der F-Score für bestimmte Labels nicht berechnet werden kann, da keine vorhergesagten Stichproben vorliegen.
Dieses Problem tritt auf, wenn ein Label im wahren Etikettensatz (y_test) vorhanden ist, erscheint nicht im vorhergesagten Etikettensatz (y_pred). Folglich führt die Berechnung des F-Scores für solche Labels zu einem undefinierten Wert. Um mit dieser Situation umzugehen, weist scikit-learn dem F-Score dieser Labels einen Wert von 0,0 zu.
Eine Möglichkeit, dieses Szenario zu beobachten, ist ein Beispiel. Stellen Sie sich eine Situation vor, in der Label „2“ in y_test vorhanden ist, aber in y_pred fehlt:
>>> set(y_test) - set(y_pred) {2}
Da es für Label „2“ keine vorhergesagte Stichprobe gibt, wird der F-Score für dieses Label mit 0,0 angenommen. Da die Berechnung einen Wert von 0 umfasst, zeigt scikit-learn eine Warnung an, um auf die undefinierte Metrik aufmerksam zu machen.
Diese Warnung wird nur beim ersten Auftreten ausgelöst. Dieses Verhalten ist auf die Standardeinstellung von Warnungen in Python zurückzuführen, die sicherstellt, dass bestimmte Warnungen nur einmal angezeigt werden.
Um diese Warnung zu unterdrücken, können Sie sie mit warnings.filterwarnings('ignore') deaktivieren:
import warnings warnings.filterwarnings('ignore')
Alternativ können Sie die Etiketten von Interesse explizit angeben, mit Ausnahme derjenigen ohne vorhergesagte Proben:
>>> metrics.f1_score(y_test, y_pred, average='weighted', labels=np.unique(y_pred)) 0.91076923076923078
Durch die Angabe der Etiketten, die tatsächlich vorhergesagt wurden, kann die Warnung vermieden werden.
Das obige ist der detaillierte Inhalt vonWarum löst mein F-Score in Python eine „UndefinedMetricWarning' aus und wie behebe ich das Problem?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!