【发布时间】:2020-07-18 13:30:52
【问题描述】:
这是一个使用precision_recall_curve()的非常小的例子:
from sklearn.metrics import precision_recall_curve, precision_score, recall_score
y_true = [0, 1]
y_predict_proba = [0.25,0.75]
precision, recall, thresholds = precision_recall_curve(y_true, y_predict_proba)
precision, recall
导致:
(array([1., 1.]), array([1., 0.]))
以上与后面的“手动”计算不符。
根据阈值存在三种可能的类向量:[0,0](当阈值 > 0.75 时)、[0,1](当阈值在 0.25 和 0.75 之间时)和 [1,1](当阈值
y_predict_class=[0,1]
precision_score(y_true, y_predict_class), recall_score(y_true, y_predict_class)
给出:
(1.0, 1.0)
和
y_predict_class=[1,1]
precision_score(y_true, y_predict_class), recall_score(y_true, y_predict_class)
给了
(0.5, 1.0)
这似乎与precision_recall_curve() 的输出不匹配(例如,它没有产生0.5 的精度值)。
我错过了什么吗?
【问题讨论】:
标签: scikit-learn precision-recall