Warum sagt scikitlearn, dass der F1-Score falsch definiert ist, wenn FN größer als 0 ist?

Ich starte ein Python-Programm, das @ aufrusklearn.metrics 's Methoden zur Berechnung der Genauigkeit und F1-Punktzahl. Hier ist die Ausgabe, wenn es keine vorhergesagte Stichprobe gibt:

/xxx/py2-scikit-learn/0.15.2-comp6/lib/python2.6/site-packages/sklearn/metr\
ics/metrics.py:1771: UndefinedMetricWarning: Precision is ill-defined and being set to 0.0 due to no predicted samples.
  'precision', 'predicted', average, warn_for)

/xxx/py2-scikit-learn/0.15.2-comp6/lib/python2.6/site-packages/sklearn/metr\
ics/metrics.py:1771: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 due to no predicted samples.
  'precision', 'predicted', average, warn_for)

Wenn es keine vorhergesagte Stichprobe gibt, bedeutet dies, dass TP + FP 0 ist, also

Präzision (definiert als TP / (TP + FP)) ist 0/0, nicht definiert, F1-Punktzahl (definiert als 2TP / (2TP + FP + FN)) ist 0, wenn FN nicht Null ist.

In meinem Fall,sklearn.metrics gibt auch die Genauigkeit als 0,8 zurück und den Rückruf als 0. FN ist also nicht Null.

Aber warum sagt scikilearn, dass F1 falsch definiert ist?

Was ist die Definition von F1, die von Scikilearn verwendet wird?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage