por que o scikitlearn diz que a pontuação F1 está mal definida com FN maior que 0?
Eu corro um programa python que chamasklearn.metrics
métodos para calcular a precisão e a pontuação F1. Aqui está a saída quando não há amostra prevista:
/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)
Quando não há amostra prevista, isso significa que TP + FP é 0, então
precisão (definida como TP / (TP + FP)) é 0/0, não definida,A pontuação F1 (definida como 2TP / (2TP + FP + FN)) é 0 se FN não for zero.No meu caso,sklearn.metrics
também retorna a precisão como 0,8 e recupera como 0. Portanto, FN não é zero.
Mas por que o scikilearn diz que F1 está mal definido?
Qual é a definição de F1 usada pelo Scikilearn?