sklearn.metrics.precision_recall_curve¶
sklearn.metrics.precision_recall_curve(y_true, probas_pred, *, pos_label=None, sample_weight=None)
计算不同概率阈值的精确召回对
注意:此实现仅限于二进制分类任务。
精度是tp /(tp + fp)的比率,其中tp是真正例的数目,fp是假正例的数目。从直觉上讲,精度是分类器不将负例样本标记为正例的能力。
召回率是tp /(tp + fn)的比率,其中tp是真正例的数目,fn是假负例的数目。直观上,召回是分类器找到所有正例样本的能力。
最后的精度和召回值分别为1.和0,并且没有相应的阈值。这样可以确保图形从y轴开始。
在用户指南中阅读更多内容。
参数 | 说明 |
---|---|
y_true | array, shape = [n_samples] 真正的二进制标签。 如果标签既不是{-1,1}也不是{0,1},则应该明确给出pos_label。 |
probas_pred | array, shape = [n_samples] 估计的概率或决策函数。 |
pos_label | int or str, default=None 正例类别的标签。当pos_label = None时,如果y_true在{-1,1}或{0,1}中,则pos_label设置为1,否则将引发错误。 |
sample_weight | array-like of shape (n_samples,), default=None 样本权重。 |
返回值 | 说明 |
---|---|
precision | array, shape = [n_thresholds + 1] 精度值,以使元素i为score>=thresholds [i]且最后一个元素为1的预测精度。 |
recall | array, shape = [n_thresholds + 1] 降低召回值使元素i为score> = thresholds [i]且最后一个元素为0的预测的召回。 |
thresholds | array, shape = [n_thresholds <= len(np.unique(probas_pred))] 用于计算精度和召回率的决策函数的阈值不断增加。 |
另见:
根据预测分数计算平均精度
计算接收器工作特性(ROC)曲线
示例
>>> import numpy as np
>>> from sklearn.metrics import precision_recall_curve
>>> y_true = np.array([0, 0, 1, 1])
>>> y_scores = np.array([0.1, 0.4, 0.35, 0.8])
>>> precision, recall, thresholds = precision_recall_curve(
... y_true, y_scores)
>>> precision
array([0.66666667, 0.5 , 1. , 1. ])
>>> recall
array([1. , 0.5, 0.5, 0. ])
>>> thresholds
array([0.35, 0.4 , 0.8 ])