机器学习基础---pr曲线的绘制

一、举个例子

总共有8个西瓜,有一个分类器,它的预测情况如下表

 设置不同阈值时,将得到不同的P值(Precision,查准率)和R值(Recall,查全率)

 

 

 

 

二、解释

Precision-查准率-预测出来的正例中正确的比例---找得对

Recall-查全率-衡量正例被预测出来的比例---找得全

 

在机器学习中分类器往往输出的不是类别标号,而是属于某个类别的概率值,根据分类器的预测结果从大到小对样例进行排序,逐个把样例加入正例进行预测,算出此时的P、R值。
 

 

 三、绘制pr图

模型训练好了之后,对于二分类问题,可以预测每个测试样本属于某个类别的概率。
当我们设置不同阈值时,将得到不同的P值(Precision,查准率)和R值(Recall,查全率)
基于此,可以绘制PR曲线,python绘制PR曲线比较方便。
首先,可以使用precision_recall_curve函数得

import numpy as np
import matplotlib.pyplot as plt
from sklearn.metrics import precision_recall_curve
import matplotlib.pyplot as plt
import numpy as np
from sklearn.metrics import precision_recall_curve

plt.figure("P-R Curve")
plt.title('Precision/Recall Curve')
plt.xlabel('Recall')
plt.ylabel('Precision')
# y_true为样本实际的类别,y_scores为样本为正例的概率
# y_true = np.array([1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0])
# y_scores = np.array(
#     [0.9, 0.75, 0.86, 0.47, 0.55, 0.56, 0.74, 0.62, 0.5, 0.86, 0.8, 0.47, 0.44, 0.67, 0.43, 0.4, 0.52, 0.4, 0.35, 0.1])
y_true = np.array([0, 0, 0, 1, 0, 1, 1, 1])
y_scores = np.array([0.1, 0.2, 0.3, 0.3, 0.6, 0.7, 0.8, 0.9])
precision, recall, thresholds = precision_recall_curve(y_true, y_scores)
# print(precision)
# print(recall)
# print(thresholds)
plt.plot(recall, precision)
plt.show()

 

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cpp_1211

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值