python sklearn metrics_python计算PR曲线sklearn.metrics.precision_recall_curve

PR曲线实则是以precision(精准率)和recall(召回率)这两个为变量而做出的曲线,其中recall为横坐标,precision为纵坐标。设定一系列阈值,计算每个阈值对应的recall和precision,即可计算出PR曲线各个点。

precision=tp / (tp + fp)

recall=tp / (tp + fn)

可以用sklearn.metrics.precision_recall_curve计算PR曲线

from sklearn.metrics import precision_recall_curve

y_true = [0, 0, 1, 1]

y_score = [0.1, 0.4, 0.35, 0.8]

precision, recall, thresholds = precision_recall_curve(y_true, y_score)

print(precision)

print(recall)

print(thresholds)

"""

[0.66666667 0.5 1. 1.]

[1. 0.5 0.5 0. ]

[0.35 0.4 0.8 ]

"""

其中y_true是正确标签,y_score是概率输出值,thresholds是阈值,当y_score>=thresholds,则预测为正样本,当y_score当index=0,thresholds[index]=0.35,此时预测的标签为[0,1,1,1],tp=2,fp=1,fn=0,所以precision=0.67,recall=1

当index=1,thresholds[index]=0.4,此时预测的标签为[0,1,0,1],tp=1,fp=1,fn=1,所以precision=0.5,recall=0.5

当index=2,thresholds[index]=0.8,此时预测的标签为[0,0,0,1],tp=1,fp=0,fn=1,所以precision=1,recall=0.5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值