¿por qué scikitlearn dice que la puntuación F1 está mal definida con FN mayor que 0?
Ejecuto un programa de Python que llamasklearn.metrics
Los métodos para calcular la precisión y la puntuación F1. Aquí está la salida cuando no hay una muestra predicha:
/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)
Cuando no hay una muestra predicha, significa que TP + FP es 0, entonces
la precisión (definida como TP / (TP + FP)) es 0/0, no definida,La puntuación F1 (definida como 2TP / (2TP + FP + FN)) es 0 si FN no es cero.En mi caso,sklearn.metrics
también devuelve la precisión como 0.8, y recupera como 0. Entonces FN no es cero.
Pero ¿por qué scikilearn dice que F1 está mal definido?
¿Cuál es la definición de F1 utilizada por Scikilearn?