🤵♂️ 个人主页: @AI_magician 📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。 👨💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!🐱🏍 🙋♂️声明:本人目前大学就读于大二,研究兴趣方向人工智能&硬件(虽然硬件还没开始玩,但一直很感兴趣!希望大佬带带)
该文章收录专栏 [✨— 《深入解析机器学习:从原理到应用的全面指南》 —✨]
分类评估指标(以下代码均可在sklearn.metrics
找到):
当对一个分类模型进行评估时,通常需要使用多个评估指标来综合考虑其性能。
精确度是指分类正确的样本数占总样本数的比例,是最简单直接的评估指标。
精确度计算公式如下:
其中,
表示真正类(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)
灵敏度也称召回率,是指真实正类中被正确预测为正类的样本数占总的真实正类样本数的比例。灵敏度能够反映出分类器对于正样本的识别能力。
灵敏度计算公式如下:
from sklearn.metrics import recall_score
recall = recall_score(y_true, y_pred)
print("Sensitivity/Recall:", recall)
特异度是指真实负类中被正确预测为负类的样本数占总的真实负类样本数的比例。特异度能够反映出分类器对于负样本的识别能力。
特异度计算公式如下:
精确率是指被预测为正类的样本中真正是正类的样本数占被预测为正类的样本数的比例,能够反映出分类器对于正样本的预测准确性。
精确率计算公式如下:
F1值是综合考虑精确率和灵敏度的调和平均数,能够综合评价分类器的预测准确性和召回率。
F1值计算公式如下:
AUC(Area Under the Curve)是一种常用的评估分类模型性能的指标,通常用于ROC曲线(Receiver Operating Characteristic curve)分析。AUC表示ROC曲线下方的面积,其取值范围在0到1之间。
以下是对AUC指标的详细解释:
1. ROC曲线:
在理想情况下,ROC曲线会靠近左上角,并且与对角线之间存在较大距离。该区域被认为是模型性能最佳、具有高度可区分能力和较小误判率的区域。
2. AUC计算:
3. 解读和应用:
4. 与准确率和召回率的区别:
5. 如何运用到多分类:
在多分类问题中,我们可以将每个类别作为正例,并计算出多个二分类子问题的ROC曲线,并通过求解这些子问题下各自点集合并取平均值来获得整体的多类别ROC曲线。
为了绘制多类别的ROC曲线,在每个子问题上执行以下步骤:
总而言之,AUC是通过计算ROC曲线下方所围成面积来评估二分类模型性能的指标。它提供了一种直观且综合考虑TPR和FPR之间权衡关系的方式,并广泛应用于机器学习中各种分类问题中。
在面对多分类问题时,常用的指标包括准确率(Accuracy)、**混淆矩阵(Confusion Matrix)**以及宏平均(Macro-average)和微平均(Micro-average)。
这些信息都可以通过混淆矩阵得到,并进一步计算其他指标如精确度、召回率等。
无论是准确率、混淆矩阵还是宏/微平均,这些指标可以帮助我们评估模型在多分类任务中的整体性能以及对每个特定类别的预测能力。根据具体需求和问题背景,选择合适的评估指标来解读和分析结果非常重要。