Eseguo un programma python che chiama i metodi sklearn.metrics
per calcolare la precisione e il punteggio F1. Ecco l'uscita quando non c'è nessun campione predetto:perché scikitlearn afferma che il punteggio F1 non è ben definito con FN maggiore di 0?
/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 non c'è nessun campione predetto, significa che TP + FP è 0, quindi
- precisione (definito come TP/(TP + FP)) è 0/0, non definito,
- Il punteggio F1 (definito come 2TP/(2TP + FP + FN)) è 0 se FN non è zero.
Nel mio caso, sklearn.metrics
restituisce anche la precisione di 0,8 e richiama come 0. Quindi FN non è zero.
Ma perché scikilearn dice che la F1 non è ben definita?
Qual è la definizione di F1 utilizzata da Scikilearn?