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

模型评估指标详解:分类与回归场景

模型评估指标详解:分类与回归场景

文章目录

  • 模型评估指标详解:分类与回归场景
    • 一、引言
    • 二、分类模型评估指标
      • 2.1 混淆矩阵
        • 原理
        • 指标计算方法
        • 应用
        • 代码示例
      • 2.2 准确率(Accuracy)
        • 原理
        • 应用
        • 代码示例
      • 2.3 精确率(Precision)
        • 原理
        • 应用
        • 代码示例
      • 2.4 召回率(Recall)
        • 原理
        • 应用
        • 代码示例
      • 2.5 F1 值(F1 - Score)
        • 原理
        • 应用
        • 代码示例
      • 2.6 ROC 曲线与 AUC 值
        • 原理
        • 应用
        • 代码示例
    • 三、回归模型评估指标
      • 3.1 均方误差(Mean Squared Error, MSE)
        • 原理
        • 应用
        • 代码示例
      • 3.2 均方根误差(Root Mean Squared Error, RMSE)
        • 原理
        • 应用
        • 代码示例
      • 3.3 平均绝对误差(Mean Absolute Error, MAE)
        • 原理
        • 应用
        • 代码示例
      • 3.4 决定系数(Coefficient of Determination, R²)
        • 原理
        • 应用
        • 代码示例
    • 四、模型评估指标在实际应用中的注意事项
      • 4.1 数据特性
      • 4.2 业务需求
      • 4.3 多指标综合评估
      • 4.4 评估集的选择
    • 五、总结

一、引言

在机器学习领域,构建模型只是第一步,准确评估模型的性能才是确保模型有效性和可靠性的关键。模型评估指标能够帮助我们量化模型的表现,从而在不同的模型和参数设置之间进行比较和选择。根据任务类型的不同,模型评估指标主要分为用于分类问题的指标和用于回归问题的指标。本文将详细介绍常见的分类和回归模型评估指标的原理、应用,并给出相应的代码示例。

二、分类模型评估指标

2.1 混淆矩阵

原理

混淆矩阵是一个 C × C C\times C C×C 的矩阵( C C C 为类别数),用于展示分类模型在每个类别上的预测结果。对于二分类问题,混淆矩阵通常为 2 × 2 2\times 2 2×2 的形式,如下所示:

预测正类 预测负类
真实正类 真正例(True Positive, TP) 假负例(False Negative, FN)
真实负类 假正例(False Positive, FP) 真负例(True Negative, TN)
指标计算方法
  • 真正例(TP):模型预测为正类,且实际也为正类的样本数量。计算时,直接统计混淆矩阵中左上角的值。例如,在一个预测某种疾病是否存在的模型中,实际患病且被模型预测为患病的患者数量就是 TP。
  • 假负例(FN):模型预测为负类,但实际为正类的样本数量。对应混淆矩阵中右上角的值。在疾病预测场景中,就是实际患病但被模型预测为未患病的患者数量。
  • 假正例(FP):模型预测为正类,但实际为负类的样本数量。即混淆矩阵中左下角的值。如在疾病预测里,实际未患病却被模型预测为患病的数量。
  • 真负例(TN):模型预测为负类,且实际也为负类的样本数量。为混淆矩阵右下角的值。例如实际未患病且被模型预测为未患病的人数。
应用

混淆矩阵可以直观地展示模型在不同类别上的分类情况,帮助我们发现模型的优势和不足。例如,如果假正例较多,说明模型可能过于敏感;如果假负例较多,说明模型可能过于保守。

代码示例
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import confusion_matrix
import seaborn as sns
import matplotlib.pyplot as plt

# 加载鸢尾花数据集
iris = load_iris()
X = iris.data
y = iris.target

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# 创建决策树分类器
clf = DecisionTreeClassifier()
clf.fit(X_train, y_train)

# 预测测试集
y_pred = clf.predict(X_test)

# 计算混淆矩阵
cm = confusion_matrix(y_test, y_pred)

# 可视化混淆矩阵
plt.figure(figsize=(8, 6))
sns.heatmap(cm, annot=True, fmt='d', cmap='Blues')
plt.xlabel('Predicted Label')
plt.ylabel('True Label')
plt.title('Confusion Matrix')
plt.show()

在这里插入图片描述

2.2 准确率(Accuracy)

原理

准确率是指模型正确预测的样本数占总样本数的比例。其计算依赖于混淆矩阵中的真正例(TP)、真负例(TN)、假正例(FP)和假负例(FN)。计算公式为:

[Accuracy=\frac{TP + TN}{TP+TN &


http://www.kler.cn/a/586689.html

相关文章:

  • 基于SpringBoot+Vue的毕业论文管理系统+LW示例参考
  • 【NLP】 5. Word Analogy Task(词类比任务)与 Intrinsic Metric(内在度量)
  • 微信小程序面试内容整理-JSON
  • 【c++】【线程】【信号量】三个线程顺序打印1--100
  • docker pull 镜像问题
  • 【Rust交叉编译】在x86_64架构下交叉编译aarch64-linux-musl版的rust-opencv
  • 面向工业与汽车领域的高安全可靠MCU——AS32X601系列芯片解析
  • 斯坦福:通过认知行为改进LLM推理
  • java设计模式面试题3道
  • 高级java每日一道面试题-2025年2月18日-数据库篇-MySQL 如何做到高可用方案?
  • Java开发之数据库应用:记一次医疗系统数据库迁移引发的异常:从MySQL到PostgreSQL的“dual“表陷阱与突围之路
  • 串排序(信息学奥赛一本通-2048)
  • 【虚幻C++笔记】引擎源码下载及编译步骤
  • Let’s Build AI- 实用AI导航网站
  • 正则表达式全解析 + Java常用示例
  • 多线程到底重不重要?
  • 双指针算法专题之——盛最多水的容器
  • 洛谷P4376 [USACO18OPEN] Milking Order G
  • 垃圾收集算法
  • R语言的移动应用开发