Heim > Backend-Entwicklung > Python-Tutorial > Warum löst mein F-Score in Python eine „UndefinedMetricWarning' aus und wie behebe ich das Problem?

Warum löst mein F-Score in Python eine „UndefinedMetricWarning' aus und wie behebe ich das Problem?

Patricia Arquette
Freigeben: 2024-11-16 14:37:03
Original
616 Leute haben es durchsucht

Why Does My F-Score Throw a

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}
Nach dem Login kopieren

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')
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage