当前位置: 首页 > news >正文

Python----机器学习(模型评估:准确率、损失函数值、精确度、召回率、F1分数、混淆矩阵、ROC曲线和AUC值、Top-k精度)

一、模型评估 

1. 准确率(Accuracy):这是最基本的评估指标之一,表示模型在测试集上正确 分类样本的比例。对于分类任务而言,准确率是衡量模型性能的直观标准。

2. 损失函数值(Loss):观察模型在测试集上的损失函数值,可以帮助了解模型的 泛化能力。低损失值表明模型在未见过的数据上的表现较好。

3. 精确度(Precision):精确度是指所有被模型预测为正类的样本中实际为正类 的比例。它关注的是预测为正类的准确性。

4. 召回率(Recall):召回率是指所有实际为正类的样本中被模型正确识别为正类 的比例。它反映了模型识别出所有正类的能力。

5. F1分数(F1 Score):F1分数是精确度和召回率的调和平均值,适用于需要同时 考虑精确度和召回率的情况,特别是在类别分布不均衡时更为有用。

6. 混淆矩阵(Confusion Matrix):这是一个表格,展示了分类模型预测结果与 真实标签之间的比较,可以从中计算出精确度、召回率等指标。

7. ROC曲线和AUC值(Receiver Operating Characteristic Curve and Area Under the Curve):ROC曲线通过描绘不同阈值下的真正率(True Positive Rate, TPR)与假正率(False Positive Rate, FPR),来评估二分类模型的性能。 AUC(曲线下面积)是ROC曲线下的面积,其值范围从0到1,AUC值越接近1, 表示模型的分类性能越好。

8. Top-k精度:在多分类任务中,有时会考虑模型预测的前k个最可能类别中是否包 含正确答案,这种情况下会用到Top-k精度作为评估指标。

二、准确率(Accuracy)

        这是最基本的评估指标之一,表示模型在测试集上正确分类样本的比例。对于分类任 务而言,准确率是衡量模型性能的直观标准。

特点:

  • 直观但受类别不平衡影响大

三、损失函数值(Loss)

        模型预测结果与真实标签的差异量化值

四、精确度(Precision)

        预测为正类的样本中实际为正类的比例

五、召回率(Recall)

        实际为正类的样本中被正确预测的比例

六、F1分数(F1 Score)

        F1 分数是精确度(Precision)和召回率(Recall)的调和平均数,它综合考虑了模 型的预测精度和覆盖率。

七、混淆矩阵(Confusion Matrix)

        是一个表格,展示了分类模型预测结果与真实标签之间的比较,可以从中计算出精 确度、召回率等指标。

预测类别1预测类别2
真实类别1TPFN
真实类别2FPTN

八、ROC曲线和AUC值

        ROC曲线通过描绘不同阈值下的真正率(True Positive Rate, TPR)与假正率(False Positive Rate, FPR),来评估二分类模型的性能。AUC(曲线下面积)是ROC曲线 下的面积,其值范围从0到1,AUC值越接近1,表示模型的分类性能越好。

8.1、ROC曲线

        以假正率(FPR)为横轴,真正率(TPR)为纵轴的曲线

8.2、AUC值

        ROC曲线下的面积

九、Top-k精度

        模型预测概率前k高的类别中包含真实标签的比例

指标优点局限性适用场景
准确率直观易理解类别不平衡时失效平衡数据集
F1分数平衡精确度与召回率仅关注单一类别(二分类)不均衡数据、二分类任务
AUC不受阈值影响仅适用于二分类类别不平衡的二分类任务
Top-k精度容错性强计算复杂度高细粒度分类任务
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, confusion_matrix, roc_auc_score, top_k_accuracy_score# 真实标签与预测结果
y_true = [0, 1, 2, 0, 1, 2]
y_pred = [0, 2, 1, 0, 0, 1]
y_proba = [[0.7, 0.2, 0.1],[0.1, 0.3, 0.6],[0.3, 0.4, 0.3],[0.8, 0.1, 0.1],[0.6, 0.2, 0.2],[0.2, 0.5, 0.3]]# 计算各项指标
print("准确率:", accuracy_score(y_true, y_pred))
print("精确度(宏平均):", precision_score(y_true, y_pred, average='macro'))
print("召回率(宏平均):", recall_score(y_true, y_pred, average='macro'))
print("F1分数(宏平均):", f1_score(y_true, y_pred, average='macro'))
print("混淆矩阵:\n", confusion_matrix(y_true, y_pred))
print("Top-2精度:", top_k_accuracy_score(y_true, y_proba, k=2))# 二分类场景下的AUC计算示例
y_true_binary = [0, 1, 1, 0]
y_proba_binary = [0.1, 0.9, 0.8, 0.3]
print("AUC值:", roc_auc_score(y_true_binary, y_proba_binary))

相关文章:

  • vue3 - keepAlive缓存组件
  • Python的ArcPy基于Excel表格对大量遥感影像批量重分类
  • 传感器数据处理笔记
  • Spring Boot Jpa封装快速构建Specification、OrderBy、Pageable的查询条件
  • Docker 容器化部署
  • Learning vtkjs之MultiSliceImageMapper
  • 数据分析之药物-基因-代谢物
  • Linux系统编程---进程间管道通信
  • 通讯协议开发实战:从零到一打造企业级通信解决方案
  • Spring AI版本1.0.0-M6和M8效果比较
  • SAM-Decoding_ 后缀自动机助力大模型推理加速!
  • JSON Web Token 默认密钥 身份验证安全性分析 dubbo-admin JWT硬编码身份验证绕过
  • 【2025软考高级架构师】——2024年05月份真题与解析
  • 数据采集文氏管旋风高效湿式除尘器文丘里旋风除尘组合实验装置
  • MFiX(Multiphase Flow with Interphase eXchanges)软件介绍
  • 从 AWS Marketplace 开始使用 AssemblyAI 的语音转文本模型构建语音智能
  • 架构思维:使用懒加载架构实现高性能读服务
  • 工业认知智能:从数据分析到知识创造
  • 【PostgreSQL数据分析实战:从数据清洗到可视化全流程】2.2 多表关联技术(INNER JOIN/LEFT JOIN/FULL JOIN)
  • 单细胞测序数据分析试验设计赏析(二)
  • 人民日报和音:引领新时代中俄关系坚毅前行
  • 五一假期,新任杭州市委书记刘非到嘉兴南湖瞻仰红船
  • 首次面向上海、江苏招收本科生,西湖大学接连发布招生简章
  • 五一假期首日,上海外滩客流超55万人次
  • 金科股份:去年营收约275亿元,今年确保所有项目“零烂尾”
  • 宜昌打造“算力之都”:产业链快速延伸,追逐千亿级产值