机器学习-PR曲线

1.基本概念

        PR曲线用横轴表示召回率,纵轴表示精确率,将数据绘制成图表的形式。PR曲线可以用于评估分类器的性能,在处理高度不均衡的数据集时,PR曲线能表现出更多的信息。

        1.1.曲线中P和R的概念

        P:查准率,精确率

        精确率(precision)是预测为正例的样本中真正为正例的比例,表示预测为正例的样本中有多少是真正的正例。

        R:查全率,召回率

        召回率(recall)是所有真正的正例中被预测为正例的比例,表示真正的正例中有多少被正确地预测为正例。

        PR曲线以P为横坐标,R为纵坐标,将不同阈值下的预测结果进行可视化。通过观察PR图,可以选择合适的值来平衡查准率和查全率,提高分类器的性能。

        1.2.混淆矩阵

        在机器学习的分类问题中,TP、FP、TN、FN是评估分类模型性能的四个重要指标,它们组成了混淆矩阵(Confusion Matrix)。

       TP(True Positive):真正例,表示预测结果为正例,真实结果也为正例

        FP(False Positive):假正例,表示预测结果为正例,真实结果为反例

        TN(True Negative):真反例,表示预测结果为反例,真实结果为反例

        FN(False Negative):假反例,表示预测结果为反例,真实结果为正例

        1.3.P和R的定义

        P=TP/(TP+FP)

        R=TP/(TP+FN)

2.实现PR曲线

        2.1具体代码

from sklearn.metrics import precision_recall_curve  
import matplotlib.pyplot as plt  
  
# 准备数据集  
y_true = [1, 0, 0, 1, 1, 0, 0, 1, 0, 1]  
y_scores = [0.1, 0.4, 0.35, 0.8, 0.6, 0.2, 0.7, 0.9, 0.5, 0.85]  
  
# 计算查准率和查全率  
precision, recall, _ = precision_recall_curve(y_true, y_scores)  
  
# 绘制PR图  
plt.plot(recall, precision, marker='.')  
plt.xlabel('Recall')  
plt.ylabel('Precision')  
plt.title('Precision-Recall Curve')  
plt.show()

        2.2.代码说明

        y_true = [1, 0, 0, 1, 1, 0, 0, 1, 0, 1]  

        y_scores = [0.1, 0.4, 0.35, 0.8, 0.6, 0.2, 0.7, 0.9, 0.5, 0.85]

        定义一个包含10个样本的数据集,y_true是真实标签,y_scores是预测分数        

        使用precision_recall_curve函数计算查准率和查全率,并将结果分别赋值给变量precisionrecall

  使用matplotlib库绘制PR图,其中plot函数用于绘制曲线,xlabelylabeltitle分别用于设置X轴标签、Y轴标签和标题,show函数用于显示图形

        2.3.得到的PR图

3.结论

        PR曲线可以反映分类器对于正样本的识别准确率,以及对于所有正样本的覆盖程度。通过绘制多个不同分类器的PR曲线,可以比较它们的性能,选择最好的模型。观察PR曲线在不同阈值下的变化,可以调整模型的参数,以优化模型的性能。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值