【机器学习 | 分类指标大全】全面解析分类评估指标:从准确率到AUC,多分类问题也不在话下, 确定不来看看?
🤵♂️ 个人主页: @AI_magician
📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。
👨💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!🐱🏍
🙋♂️声明:本人目前大学就读于大二,研究兴趣方向人工智能&硬件(虽然硬件还没开始玩,但一直很感兴趣!希望大佬带带)
该文章收录专栏
[✨— 《深入解析机器学习:从原理到应用的全面指南》 —✨]
@toc
分类评估指标(以下代码均可在sklearn.metrics
找到):
- 精确度(Accuracy):分类正确的样本数占总样本数的比例。
- 灵敏度(Sensitivity/Recall):真实正类中被正确预测为正类的样本数占总的真实正类样本数的比例。
- 特异度(Specificity):真实负类中被正确预测为负类的样本数占总的真实负类样本数的比例。
- 精确率(Precision): 被预测为正类的样本中真正是正类的样本数占被预测为正类的样本数的比例。
- F1值(F1-score):综合考虑精确率和灵敏度,是精确率和灵敏度的调和平均数。
- AUC值(Area Under the ROC Curve):ROC曲线下方的面积,用于表示分类器的整体性能。
当对一个分类模型进行评估时,通常需要使用多个评估指标来综合考虑其性能。
精确度(Accuracy)
精确度是指分类正确的样本数占总样本数的比例,是最简单直接的评估指标。
精确度计算公式如下:
其中, 表示真正类(True Positive)的样本数,即被分类器正确预测为正类的样本数; 表示真负类(True Negative)的样本数,即被分类器正确预测为负类的样本数; 表示误报样本(False Positive)的样本数,即被分类器错误地预测为正类的样本数; 表示漏报样本(False Negative)的样本数,即被分类器错误地预测为负类的样本数。
from sklearn.metrics import accuracy_score
y_true = [0, 1, 0, 1]
y_pred = [0, 1, 1, 1]
accuracy = accuracy_score(y_true, y_pred)
print("Accuracy:", accuracy)
灵敏度(Sensitivity/Recall)
灵敏度也称召回率,是指真实正类中被正确预测为正类的样本数占总的真实正类样本数的比例。灵敏度能够反映出分类器对于正样本的识别能力。
灵敏度计算公式如下:
from sklearn.metrics import recall_score
recall = recall_score(y_true, y_pred)
print("Sensitivity/Recall:", recall)
特异度(Specificity)
特异度是指真实负类中被正确预测为负类的样本数占总的真实负类样本数的比例。特异度能够反映出分类器对于负样本的识别能力。
特异度计算公式如下:
精确率(Precision)
精确率是指被预测为正类的样本中真正是正类的样本数占被预测为正类的样本数的比例,能够反映出分类器对于正样本的预测准确性。
精确率计算公式如下:
F1值(F1-score)
F1值是综合考虑精确率和灵敏度的调和平均数,能够综合评价分类器的预测准确性和召回率。
F1值计算公式如下:
AUC值(Area Under the ROC Curve)
AUC(Area Under the Curve)是一种常用的评估分类模型性能的指标,通常用于ROC曲线(Receiver Operating Characteristic curve)分析。AUC表示ROC曲线下方的面积,其取值范围在0到1之间。
以下是对AUC指标的详细解释:
1. ROC曲线:
ROC曲线是以二分类模型为基础绘制出来的一条图形。(如果是多分类,则需要绘制多条)
它展示了当分类器阈值变化时,真阳率(True Positive Rate, TPR)与假阳率(False Positive Rate, FPR)之间的关系。
TPR表示正确预测为正例样本占所有实际正例样本比例(sensitivity\recall);FPR表示错误预测为正例样本占所有实际负例样本比例(1 - specificity)。
以下是绘制ROC曲线的步骤:
收集模型预测结果和相应的真实标签。这些结果包括模型对每个样本的预测概率或分数以及它们对应的真实标签(0表示负例,1表示正例)。
根据预测概率或分数对样本进行排序。从高到低排列,使得排名最高的样本具有最大的预测概率或分数。
选择一个分类阈值,并根据该阈值将样本划分为正例和负例。例如,如果阈值设置为0.5,则所有预测概率大于等于0.5的样本被视为正例,而小于0.5则被视为负例。
计算此时的真正例率(TPR)和假正例率(FPR)。
TPR = TP / (TP + FN)
FPR = FP / (FP + TN)
重复步骤3和4,使用不同分类阈值来计算一系列不同点对应的TPR和FPR。这些点构成了ROC曲线上的各个坐标。
绘制ROC曲线,以FPR作为x轴,TPR作为y轴。通过连接这些坐标点可以得到一条典型情况下具有平滑形状且递增趋势的曲线。
在理想情况下,ROC曲线会靠近左上角,并且与对角线之间存在较大距离。该区域被认为是模型性能最佳、具有高度可区分能力和较小误判率的区域。
2. AUC计算:
- AUC被定义为ROC曲线下方区域与坐标轴之间所围成的面积。
- 当一个完美预测器具有TPR=1且FPR=0时,其AUC等于1;而当一个随机猜测器无法进行准确预测时,其AUC约等于0.5。
3. 解读和应用:
- 较高的AUC意味着分类器具有较好的性能,在不同阈值设置下能够更准确地区分正负类别。
- AUC可以用于比较不同分类模型的性能,选择最佳模型。
- AUC还可以用来评估特征工程、调整阈值或优化算法等操作对模型性能的影响。
4. 与准确率和召回率的区别:
- 准确率(Accuracy)是一个全局指标,衡量分类器在所有样本上预测正确的比例。
- 召回率(Recall)是一个针对正例类别的指标,衡量分类器成功找到正例样本占所有实际正例样本比例。
- AUC更关注分类器在不同阈值下判定真假阳性的表现,因此它提供了一种更全面且相对鲁棒的评估方法。
5. 如何运用到多分类:
在多分类问题中,我们可以将每个类别作为正例,并计算出多个二分类子问题的ROC曲线,并通过求解这些子问题下各自点集合并取平均值来获得整体的多类别ROC曲线。
为了绘制多类别的ROC曲线,在每个子问题上执行以下步骤:
- 将当前类别标记为正例,其他所有类别标记为负例。
- 计算预测概率或得分,并按照阈值确定预测结果。
- 根据不同阈值下的真阳率和假阳率绘制ROC曲线。
总而言之,AUC是通过计算ROC曲线下方所围成面积来评估二分类模型性能的指标。它提供了一种直观且综合考虑TPR和FPR之间权衡关系的方式,并广泛应用于机器学习中各种分类问题中。
多分类指标(multiple classification index)
在面对多分类问题时,常用的指标包括准确率(Accuracy)、**混淆矩阵(Confusion Matrix)**以及宏平均(Macro-average)和微平均(Micro-average)。
准确率:准确率是最简单直观的评估指标,表示模型正确预测的样本比例。对于多分类问题,准确率被定义为所有正确分类的样本数除以总样本数。
混淆矩阵:混淆矩阵可以提供更详细的多类别分类性能信息。它是一个二维表格,行代表真实类别,列代表预测类别。每个单元格记录了属于特定真实类别和预测类别组合的样本数量。
例如,在3个类别A、B、C下进行分类时,可能有以下情况:
- 类A中有10个样本被正确地预测为A。
- 类B中有5个样本被错误地预测为A。
- 类C中有3个样本被错误地预测为A。
- …
这些信息都可以通过混淆矩阵得到,并进一步计算其他指标如精确度、召回率等。
宏平均与微平均:在处理多分类问题时,我们通常需要将各种指标汇总成一个统一的度量(即拆分成多个二分类子问题,最后求平均得到结果)。宏平均和微平均是两种常用的方法。
宏平均:对每个类别单独计算指标(如精确度、召回率等),然后求取其算术平均值。它将所有类别视为同等重要,适用于各个类别都具有相似重要性的情况。
微平均:将多分类问题视为二分类问题,在所有样本上进行计算指标(如精确度、召回率等)。这意味着每个预测都被认为是同等重要的,并且更加关注少数类别。适用于不同类别之间存在明显不平衡时使用。
无论是准确率、混淆矩阵还是宏/微平均,这些指标可以帮助我们评估模型在多分类任务中的整体性能以及对每个特定类别的预测能力。根据具体需求和问题背景,选择合适的评估指标来解读和分析结果非常重要。
🤞到这里,如果还有什么疑问🤞
🎩欢迎私信博主问题哦,博主会尽自己能力为你解答疑惑的!🎩
🥳如果对你有帮助,你的赞是对博主最大的支持!!🥳
- 点赞
- 收藏
- 关注作者
评论(0)