召回率/正例/负例

目录

1. 数据标签

2. 正例在评估指标中的关键作用

2.1 四种基本结果

2.2 精确率 vs 召回率在考试中的含义

2.3精确率(Precision)

2.4 召回率(Recall)

3. 数据层面优化

3.1 处理类别不平衡

3.2 收集更多正例数据

假设我们要训练一个模型来区分猫和狗的图片:

  • 正例:猫的图片(假设我们想识别猫)。
  • 负例:狗的图片。

1. 数据标签

通常,正例和负例会被标注为:

  • 正例标签:1(或“True”)。
  • 负例标签:0(或“False”)。

2. 正例在评估指标中的关键作用

在分类任务中,正例和负例直接影响模型的性能指标(如召回率、精确率)。以下是关键概念:

2.1 四种基本结果

模型预测后,样本会被分为四类:

类别含义
真正例(TP)模型预测为正例,且实际是正例。
假反例(FN)模型预测为负例,但实际是正例(漏报,模型漏掉了正例)。
假正例(FP)模型预测为正例,但实际是负例(误报,模型错误地认为是正例)。
真反例(TN)模型预测为负例,且实际是负例。

假设你参加了一次判断题考试,共有 100 道题,题目分为两类:

  • 正例(Positive):正确答案(如题目正确,应答“对”)。
  • 负例(Negative):错误答案(如题目错误,应答“错”)。

你回答后,老师统计了以下结果:

  • 实际正确答案(正例):共有 80 道题(TP + FN = 80)。
  • 实际错误答案(负例):共有 20 道题(TN + FP = 20)。

你的回答结果如下:

  • 你答对的正确题(TP):70 道(正确题目中你答对了 70 题)。
  • 你答错的正确题(FN):10 道(正确题目中你漏掉了 10 题)。
  • 你答对的错误题(TN):15 道(错误题目中你正确判断为错的题)。
  • 你误判的错误题(FP):5 道(错误题目中你错误地答为对的题)。

2.2 精确率 vs 召回率在考试中的含义

2.3精确率(Precision)
  • 类比你认为自己答对的题目中,实际真正确题的比例
  • 公式

    Precision=TPTP + FP=7070+5=93.3%Precision=TP + FPTP​=70+570​=93.3%

  • 含义
    • 你一共认为自己答对了 75 题(TP=70 + FP=5)。
    • 其中 70 题 是真正确题,5 题 是误判的错误题。
    • 精确率 93.3% 表示:“你认为答对的题中,约 93% 是真正确题”。
2.4 召回率(Recall)
  • 类比所有真正确题中,你正确答对的比例
  • 公式

    Recall=TPTP + FN=7070+10=87.5%Recall=TP + FNTP​=70+1070​=87.5%

  • 含义
    • 总共有 80 道真正确题
    • 你正确答对了 70 题,漏掉了 10 题
    • 召回率 87.5% 表示:“所有真正确题中,你找到了 87.5%”。

提高召回率的核心目标是尽可能多地捕捉所有实际存在的正例(Positive Examples),即使这意味着会增加一些误判的负例(False Positives)。以下是具体方法和策略,结合理论和实践示例,帮助你系统性地提升召回率:


3. 数据层面优化

3.1 处理类别不平衡

当正例(目标类别)远少于负例时,模型容易偏向预测多数类(负例),导致召回率低。以下是解决方案:

  • # 使用SMOTE过采样
    from imblearn.over_sampling import SMOTE
    X_resampled, y_resampled = SMOTE().fit_resample(X_train, y_train)
  • 欠采样(Undersampling):随机删除部分负例,使类别分布平衡。
  • 调整类别权重(Class Weight):在训练时给正例更高的权重,迫使模型更关注正例。
     
    # 示例:在Scikit-learn中设置class_weight
    model = LogisticRegression(class_weight='balanced')
    model.fit(X_train, y_train)
3.2 收集更多正例数据
  • 方法:通过人工标注或外部数据源获取更多正例样本。
  • 数据增强:对现有正例进行变换生成新样本(如图像旋转、文本同义词替换)。

模型侧面我后面再补充

<think> 嗯,用户这次问的是预测值和预测值的定义,需要特别注意区分预测值和真实标签的区别。从对话历史看,用户之前已经理解了ROC曲线中/的真实含义,现在转向预测值的概念。 用户可能是在阅读机器学习资料时遇到了混淆。观察引用的内容[1][2][5],都提到了预测值和真实标签的对应关系,特别是引用[2]用番茄案直观展示了预测概率如何影响分类结果。这个案可以借用来说明预测值的含义。 需要明确区分两组概念:真实标签的(Ground Truth)和模型预测的(Prediction)。预测值通常指模型输出的概率分数或置信度,而最终分类结果是根据阈值划分的。如在二分类中: - 模型输出0.8的预测值 > 阈值0.5 → 预测为 - 模型输出0.3的预测值 < 阈值0.5 → 预测为 用户引用的材料[4]提到AUC反映“预测值大于预测值的概率”,这里的预测值显然是指模型输出的原始分数而非最终分类结果。因此回答要强调: 1. 预测值:模型对真实样本输出的分数 2. 预测值:模型对真实样本输出的分数 可以举说明:在医疗检测中,某患者真实患病(),模型输出0.9→该预测值为0.9;健康人()模型输出0.1→该预测值为0.1。这样用户能直观理解预测值是连续值而非二元标签。 注意到用户引用的代码片段[1]中有Python示,虽然具体代码未显示,但说明用户可能具备编程基础。后续相关问题可以考虑加入简单代码说明,比如用numpy提取预测值数组。 </think>预测值和预测值是机器学习分类任务中的核心概念,它们基于模型的输出定义: ### 1. **预测值 (Positive Predictive Value, PPV)** - **定义**:在所有被模型**预测为**的样本中,**真实所占的比**。 - **数学公式**: $$ PPV = \frac{TP}{TP + FP} $$ 其中: - $TP$(True Positive):真实且被确预测为的数量 - $FP$(False Positive):真实但被错误预测为的数量 - **意义**: - 衡量模型预测的**可靠性**。如: - PPV=0.9 表示当模型预测某样本为时,有90%的概率预测确。 - 又称**精确率(Precision)**[^1][^5]。 --- ### 2. **预测值 (Negative Predictive Value, NPV)** - **定义**:在所有被模型**预测为**的样本中,**真实所占的比**。 - **数学公式**: $$ NPV = \frac{TN}{TN + FN} $$ 其中: - $TN$(True Negative):真实且被确预测为的数量 - $FN$(False Negative):真实但被错误预测为的数量 - **意义**: - 衡量模型预测的**可靠性**。如: - NPV=0.85 表示当模型预测某样本为时,有85%的概率预测确[^1]。 --- ### 关键区别总结 | **概念** | **计算基础** | **核心问题** | **别称** | |----------------|---------------------------|----------------------------------|---------------| | 预测值 (PPV) | 所有预测为的样本 | “预测为的样本中有多少是真的?” | 精确率 (Precision) | | 预测值 (NPV) | 所有预测为的样本 | “预测为的样本中有多少是真的?” | - | --- ### 示说明 假设医疗诊断场景: - **模型预测100个患者为患病()**: - 其中90人真实患病($TP=90$) - 10人实际健康($FP=10$) - **PPV** = $90/(90+10)=0.9$ → 模型预测患病的确率为90% - **模型预测200个患者为健康()**: - 其中180人真实健康($TN=180$) - 20人实际患病($FN=20$) - **NPV** = $180/(180+20)=0.9$ → 模型预测健康的确率为90% --- ### 与其他指标的关系 - PPV(精确率)与**召回率(Recall)** 常需权衡: 高精确率可能伴随低召回率(漏诊多),反之亦然[^5]。 - **AUC** 反映模型区分的能力,其本质是: 随机选一个和一个,**预测值 > 预测值** 的概率[^2][^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值