机器学习:评价分类结果(Precision - Recall 的平衡、P - R 曲线)

本文深入探讨了在机器学习中如何平衡精准率和召回率,通过实例展示了调整阈值对两者的影响。详细阐述了如何绘制精准率-召回率(P-R)曲线,并介绍了scikit-learn库中的precision_recall_curve()方法,为模型评估提供参考。
摘要由CSDN通过智能技术生成

一、Precision - Recall 的平衡

 1)基础理论
  • 调整阈值的大小,可以调节精准率和召回率的比重
  1. 阈值:threshold,分类边界值,score > threshold 时分类为 1,score < threshold 时分类为 0;
  2. 阈值增大,精准率提高,召回率降低;阈值减小,精准率降低,召回率提高;

 

  • 精准率和召回率是相互牵制,互相矛盾的两个变量,不能同时增高;
  • 逻辑回归的决策边界不一定非是 ,也可以是任意的值,可根据业务而定:,大于 threshold 时分类为 1,小于 threshold 时分类为 0;
  • 推广到其它算法,先计算出一个分数值 score ,再与 threshold 比较做分类判定;

 

 2)举例说明精准率和召回率相互制约的关系(一)
  • 计算结果 score > 0 时,分类结果为 ★;score < 0 时,分类结果为 ●;
  • ★ 类型为所关注的事件;
  • 情景1:threshold = 0
  1. 精准率:4 / 5 = 0.80;
  2. 召回率:4 / 6 = 0.67;
  • 情景2:threshold  > 0;
  1. 精准率:2 / 2 = 1.00;
  2. 召回率:2 / 6 = 0.33;
  • 情景3:threshold < 0;
  1. 精准率:6 / 8 = 0.75;
  2. 召回率:6 / 6 = 1.00;

 

 3)举例说明精准率和召回率相互制约的关系(二)
  • LogisticRegression() 类中的 predict() 方法中,默认阈值 threshold 为 0,再根据 decision_function() 方法计算的待预测样本的 score 值进行对比分类:score < 0 分类结果为 0,score > 0 分类结果为 1;
  • log_reg.decision_function(X_test):计算所有待预测样本的 score 值,以向量的数量类型返回结果;
  1. 此处的 score 值不是概率值,是另一种判断分类的方式中样本的得分,根据样本的得分对样本进行分类;
  • import numpy as np
    from sklearn import datasets
    
    digits = datasets.load_digits()
    X =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值