机器学习实验三之——ROC与PR曲线

一、PR曲线

        1.PR曲线的基本介绍

         PR曲线(Precision-Recall Curve)是用来评估分类模型性能的一种常见方法。它是基于分类模型对不同阈值下的预测结果进行排序,并计算精确率(Precision)和召回率(Recall)之间的关系而得到的基本曲线。

        精确率表示分类器在所有被预测为正例中真正为正例的比例,可以通过以下公式计算:

精确率P=TP/(TP+FP)

        召回率表示分类器在所有实际为正例中正确预测为正例的比例,可以通过以下公式计算: 召回率R=TP/(TP+FN)

        PR曲线横轴:召回率,纵轴精确率。分类器在不同阈值下会得到一系列不同的精确率和召回率值,通过将这些值以召回率为横坐标、精确率为纵坐标绘制成曲线,即为PR曲线。曲线上每个点表示了在对应召回率下的最大精确率值。当P=R时成为平衡点(BEP),如果这个值较大,则说明学习器的性能较好。所以PR曲线越靠近右上角性能越好。

        PR曲线的面积越大,表示分类模型在精确率和召回率之间有更好的权衡,性能越好。常用的评估指标是PR曲线下的面积,即PR AUC(Area Under the PR Curve),范围在0到1之间,数值越大越好。

        2.PR曲线的绘制

  1. 准备数据:首先需要有一个分类模型,并使用这个分类模型对一组样本进行预测。对于每个样本,需要知道其真实标签和预测概率。
  2. 排序预测结果:根据预测概率,对样本进行排序,通常将预测概率从高到低排列。为后面的计算精确率与召回率提供基础。
  3. 计算精确率与召回率:从最高概率开始,逐个将阈值设为当前概率,计算得到相应的精确率和召回率。重复此过程,知道最低概率。记下每个阈值下的精确率和召回率。
  4. 绘制PR曲线:将得到的精确率和召回率值作为坐标点,绘制PR曲线。横轴表示召回率,纵轴表示精确率。可以通过连接这些坐标点,获得平滑的PR曲线。
  5. 计算PR AUC:将PR曲线下方的面积计算出来,即可得到PR AUC。

        3.PR图像绘制实例

1.利用Scikit-learn机器学习库中的函数,生成了一个包含5000个样本和2个类别的数据集,包含一些特征和相应的类别标签,为训练和评估机器学习模型提供训练集。并且对数据进行划分训练集与测试集。

# 生成分类数据集
X, y = make_classification(n_samples=5000, n_classes=2, random_state=42)

print("x:")
print(X)
print("y:")
print(y)
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值