个人总结:机器学习分类模型评估指标 准确率、精确率、召回率、F1等以及关联规则支持度、置信度

本文详细介绍了机器学习分类模型的评估指标,包括准确率、精确率、召回率、F1分数及其在不平衡数据集中的局限性。此外,还探讨了ROC曲线、AUC、PR曲线以及支持度、置信度等关联规则评价指标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

机器学习分类中的常用指标,这几个指标最大的特点,其实是容易看完就忘。。

英文

TP true positive, 前面的字母代表预测是否正确,后面的字母代表预测的类型,TP是预测正确的正例,预测为1实际也为1

TN true negative预测正确的负例,预测为0实际也为0

FP false positive预测错误,预测为正例,实际为负例,所以是预测错误的负例,预测为1实际为0

FN false negative预测错误的正例,预测为1实际为0

准确率-accuracy

精确率-precision

召回率-recall

F1分数-F1-score

ROC 曲线 Receiver Operating Characteristic curve

ROC曲线下面积-ROC-AUC(area under curve)

PR曲线 precision recall curve 

PR曲线下面积-PR-AUC

准确率

准确率和精确率是一对在字面上很容易搞混的名词,准确率 = 预测正确的样本数量/预测总的样本数量。准确率指标在不平衡样本的情况下,基本没有什么实质性说明作用。这很容易理解,假设有100条样本,其中99条正例,1条反例。假设一个模型对所有样本均预测为正例,则这个模型的准确率为99%。然而它并没有泛化作用,因为它无法预测反例。

精确率/召回率

精确率和召回率关系紧密,是一对在含义上很容易混淆的名词。

精确率针对预测结果,所有预测为正的样本的包括:将正例预测为正(TP),负例预测为正(FP)

精确率,即为预测正确的正例(TP)在所有预测为正例的样本中出现的概率,即分类正确的正样本个数占分类器判定为正样本的样本个数的比例:

precision =\frac{TP}{TP + FP}

<think>好的,我现在需要帮助用户了解召回率-置信度曲线的概念和绘制方法。首先,我得明确用户的问题是什么。用户提到了召回率置信度曲线以及机器学习中的绘制方法。但根据我的知识,在机器学习中,常见的评估指标组合通常是精确召回率F1分数,以及ROC曲线(使用FPR和Recall)或者PR曲线(Precision-Recall)。用户提到的“置信度”可能有两种理解:一种是关联规则中的置信度,另一种是模型预测的概置信度。不过,结合用户提供的引用内容,特别是引用[1]提到了关联规则支持度置信度,而引用[2]则讨论了ROC曲线和PR曲线,可能需要进一步澄清。 首先,我需要确认用户所说的“置信度”具体指什么。如果是关联规则中的置信度,那么召回率-置信度曲线可能是指在不同置信度阈值下召回率的变化情况。但关联规则置信度通常用于衡量规则的可信度,比如在购物篮分析中,置信度表示购买商品A后购买商品B的概。这种情况下,召回率可能不是直接相关的指标,因为关联规则更多关注的是支持度置信度,而分类模型才涉及召回率。 另一种可能是用户混淆了“置信度”和“概阈值”。在分类模型中,预测的概值可以视为置信度,调整分类阈值会影响召回率指标。例如,在二分类中,降低阈值会增加召回率,因为更多的样本被判定为正类,但可能会增加误报。这时候的曲线可能是召回率随阈值变化的曲线,或者PR曲线(Precision-Recall)。但用户明确提到了“置信度”,所以需要明确。 查看用户提供的引用,引用[2]中提到ROC曲线是FPR和Recall的关系,而PR曲线是Precision和Recall的关系。引用[1]提到了关联规则置信度,但用户的问题可能是在分类模型中,将置信度作为阈值来调整,从而绘制召回率的变化。可能用户误将“概阈值”称为“置信度”,或者希望了解关联规则中的置信度召回率的关系。 接下来,我需要确定如何正确引导用户。如果用户指的是分类模型中的概阈值,那么正确的曲线应该是PR曲线或ROC曲线。如果是关联规则中的置信度,则需要解释两者结合的可能性。但根据常见的机器学习评估指标,更可能的情况是用户想了解分类模型中基于预测置信度(概)调整阈值时的召回率变化,即类似于PR曲线或阈值-召回率曲线。 因此,我需要解释召回率如何随置信度阈值变化,并说明绘制这种曲线的方法。同时,可能需要指出通常使用PR曲线或ROC曲线,但用户的需求可能需要定制化的曲线。此外,需要确保使用正确的中文术语和LaTeX格式,并生成相关问题。 现在,我需要组织回答结构,首先明确概念,然后分步骤说明绘制方法,最后生成相关问题。同时,引用提供的参考资料中的相关内容来支持回答,比如引用[2]中关于ROC曲线和PR曲线的讨论,以及阈值调整对指标的影响。</think>### 召回率-置信度曲线概念与绘制方法 #### 概念澄清 在机器学习中,**召回率-置信度曲线**可能指两种场景: 1. **分类模型中的概阈值调整**:将模型预测的置信度(即概值)作为阈值,观察召回率随阈值变化的情况。例如,在二分类中,降低置信度阈值会捕捉更多正类样本,召回率上升,但可能引入更多误判[^2]。 2. **关联规则中的置信度指标**:若问题涉及关联规则挖掘(如购物篮分析),则需结合关联规则置信度召回率,但此类组合非常见评估方式。需明确场景后再分析。 以下以**分类模型中的概阈值调整**为例进行说明。 --- #### 绘制方法(分类模型场景) 1. **获取预测概** 对测试集样本,使用模型输出正类的概置信度)$P(y=1|x)$。 2. **排序与阈值划分** 将样本按预测概从高到低排序,设定一组置信度阈值(如从0到1,间隔0.01)。 3. **计算召回率** 对每个阈值$t$: - 预测概 $\geq t$ 的样本标记为正类,其余为负类。 - 计算召回率: $$ \text{Recall} = \frac{\text{TP}}{\text{TP} + \text{FN}} $$ 4. **生成曲线** 以置信度阈值为横轴,召回率为纵轴绘制曲线。 --- #### 示例代码(Python) ```python import numpy as np from sklearn.metrics import recall_score # 假设y_true为真实标签,y_proba为模型输出的正类概 thresholds = np.linspace(0, 1, 100) recalls = [] for t in thresholds: y_pred = (y_proba >= t).astype(int) recalls.append(recall_score(y_true, y_pred)) # 绘制曲线 import matplotlib.pyplot as plt plt.plot(thresholds, recalls) plt.xlabel('置信度阈值') plt.ylabel('召回率') plt.title('召回率-置信度曲线') plt.show() ``` --- #### 注意事项 1. **与ROC/PR曲线的区别** - **ROC曲线**:横轴为假正(FPR),纵轴为召回率(即真正TPR)[^2]。 - **PR曲线**:横轴为召回率,纵轴为精确。 - 召回率-置信度曲线直接反映阈值对召回率的影响,适用于需明确选择阈值的场景。 2. **应用场景** - 当需平衡召回率与误判成本时(如医疗诊断中漏诊风险控制)。 - 模型部署前确定最佳阈值。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值