Tôi chạy chương trình python gọi các phương thức của sklearn.metrics
để tính toán độ chính xác và điểm F1. Đây là kết quả khi không có mẫu dự đoán:Tại sao scikitlearn cho biết điểm số F1 không được xác định với FN lớn hơn 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)
Khi không có mẫu dự đoán, nó có nghĩa là TP + FP là 0, vì vậy
- chính xác (định nghĩa là TP/(TP + FP) là 0/0, không được xác định,
- Điểm F1 (được định nghĩa là 2TP/(2TP + FP + FN)) là 0 nếu FN không bằng 0.
Trong trường hợp của tôi, sklearn.metrics
cũng trả về độ chính xác là 0,8 và gọi lại là 0. Vì vậy, FN không phải là 0.
Nhưng tại sao scikilearn cho biết F1 không xác định?
Định nghĩa F1 được sử dụng bởi Scikilearn là gì?