郭震 AI公众号:郭震AI

16 模型评估之评估指标

发布日期:

最近更新:

分类: Scikit

预计阅读: 4 分钟

阅读次数: 0

系列进度

Scikit-learn 入门 · 第 16 / 24

预计阅读4 分钟
结构重点10 个
图文要点6 张
正文规模1.8k 字

整理说明

这篇内容怎么整理

郭震 · 2026-06-04

独立整理围绕 10 个结构重点拆成环境、步骤、验证点和常见误区,尽量让读者能照着复现。
图文对照保留 6 张和配置、流程、判断结果有关的图片,方便快速定位正文重点。
持续校对工具、模型和命令变化较快,后续优先修正入口、参数和风险提醒。

阅读路线

先按这条路线读

先抓住主线,再回到代码、配置和图文细节,读起来会更稳。

图文要点

先看本文图文节点

按图先建立主线,再跳回正文核对步骤、配置和判断标准。

评估指标流程图查看大图
评估指标流程图

评估指标的选择要和业务代价对齐。疾病筛查、垃圾邮件、房价预测和客户分群,不能用同一套分数判断好坏。

指标定义可对照 scikit-learn model evaluation 文档

评估指标核对图查看大图
评估指标核对图

选指标前,我会先写清楚哪类错误最不能接受。指标是决策工具,不是报告装饰。

在机器学习中,模型的性能评估是至关重要的一步,能够帮助我们理解模型的表现并进行必要的调整。在本篇中,我们将重点讨论一些常用的评估指标,帮助你在模型评估时做出明智的决策。我们将结合实际案例,使用 Scikit-Learn 的功能来实现评估指标的计算。

1. 分类评估指标

对于分类问题,常用的评估指标包括 准确率精确率召回率F1-score。下面我们分别介绍这些指标及其计算方法。

Scikit-Learn评估指标判断卡查看大图
ScikitLearn评估指标判断卡

使用 Scikit-Learn 评估模型时,先看任务类型、标签分布、precision、recall、F1、ROC-AUC 或回归误差。

1.1 准确率

准确率是指预测正确的样本占总样本的比例。其计算公式为:

准确率=TP+TNTP+TN+FP+FN\text{准确率} = \frac{TP + TN}{TP + TN + FP + FN}

其中:

  • TPTP:真正例(True Positives)
  • TNTN:真负例(True Negatives)
  • FPFP:假正例(False Positives)
  • FNFN:假负例(False Negatives)

Scikit-Learn 中,可以使用 accuracy_score 函数来计算准确率。

from sklearn.metrics import accuracy_score

# 实际标签和预测标签
y_true = [1, 0, 1, 1, 0, 1]
y_pred = [1, 0, 0, 1, 0, 1]

# 计算准确率
accuracy = accuracy_score(y_true, y_pred)
print(f"准确率: {accuracy:.2f}")

1.2 精确率

精确率是指被预测为正类的样本中,真实为正类的比例。其计算公式为:

精确率=TPTP+FP\text{精确率} = \frac{TP}{TP + FP}

我们同样可以使用 precision_score 函数来计算精确率。

from sklearn.metrics import precision_score

# 计算精确率
precision = precision_score(y_true, y_pred)
print(f"精确率: {precision:.2f}")

1.3 召回率

召回率是指真实为正类的样本中,被正确预测为正类的比例。其计算公式为:

召回率=TPTP+FN\text{召回率} = \frac{TP}{TP + FN}

Scikit-Learn 提供了 recall_score 函数来计算召回率。

from sklearn.metrics import recall_score

# 计算召回率
recall = recall_score(y_true, y_pred)
print(f"召回率: {recall:.2f}")

1.4 F1-score

F1-score是精确率和召回率的调和平均数,考虑到二者的平衡。其计算公式为:

F1-score=2×精确率×召回率精确率+召回率\text{F1-score} = 2 \times \frac{\text{精确率} \times \text{召回率}}{\text{精确率} + \text{召回率}}

使用 f1_score 函数可以方便地计算 F1-score。

from sklearn.metrics import f1_score

# 计算 F1-score
f1 = f1_score(y_true, y_pred)
print(f"F1-score: {f1:.2f}")

2. 回归评估指标

对于回归问题,常用的评估指标包括 均方误差均方根误差R²得分

Scikit-Learn阅读地图卡查看大图
ScikitLearn阅读地图卡

进入《模型评估之评估指标》正文前,可以先扫一遍配图:它在问什么、要分清哪些概念、哪一步值得动手、最后用什么标准验收。

2.1 均方误差(MSE)

均方误差是预测值与实际值之间误差的平方的平均值。其计算公式为:

MSE=1ni=1n(yiy^i)2\text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2

Scikit-Learn 中可以使用 mean_squared_error

from sklearn.metrics import mean_squared_error

# 实际值与预测值
y_true = [3, -0.5, 2, 7]
y_pred = [2.5, 0.0, 2, 8]

# 计算均方误差
mse = mean_squared_error(y_true, y_pred)
print(f"均方误差: {mse:.2f}")

2.2 均方根误差(RMSE)

均方根误差是均方误差的平方根,用来更直观地表示误差的级别。公式为:

RMSE=MSE\text{RMSE} = \sqrt{\text{MSE}}
import numpy as np

# 计算均方根误差
rmse = np.sqrt(mse)
print(f"均方根误差: {rmse:.2f}")

2.3 R²得分

R²得分表示模型对数据变异性的解释能力。其定义为:

R2=1i=1n(yiy^i)2i=1n(yiyˉ)2R^2 = 1 - \frac{\sum_{i=1}^{n} (y_i - \hat{y}_i)^2}{\sum_{i=1}^{n} (y_i - \bar{y})^2}

可以使用 r2_score 来计算 R²得分。

from sklearn.metrics import r2_score

# 计算 R²得分
r2 = r2_score(y_true, y_pred)
print(f"R²得分: {r2:.2f}")
模型评估之评估指标应用复盘卡查看大图
模型评估之评估指标应用复盘卡

读到这里,可以把《模型评估之评估指标》整理成一张复盘表:先说清主线,再拿一个小任务检查结果。

模型评估之评估指标应用检查卡查看大图
模型评估之评估指标应用检查卡

读完《模型评估之评估指标》后,可以先挑一个小样例走完整流程,再判断哪些步骤已经能独立完成。

结语

通过上述介绍,我们学习了多种评估指标,以及如何使用 Scikit-Learn 来实现它们的计算。在下一篇中,我们将深入探讨模型评估中的一个重要技术——交叉验证(Cross-Validation)。利用交叉验证,我们能够进一步评估模型的稳健性,避免过拟合(Overfitting)的风险。因此,继续关注这个系列教程,掌握模型评估的全貌!

继续阅读

从这篇继续找到相关教程

AI 教程总索引

常见问题

读前先确认这三点

模型评估之评估指标适合谁读?

这是 Scikit-learn 入门 系列第 16 / 24 篇,适合正在学习Scikit-learn 入门,并且需要把概念落到操作步骤或判断标准里的读者。

读这篇Scikit-learn 入门教程要多久?

按中文技术文章阅读速度估算,通读大约 4 分钟;如果要跟着复现,建议把命令、配置和结果检查分开做。

这篇文章里的图文节点怎么用?

正文里有 6 个图文节点,可以先用它们抓住流程、配置和判断点,再回到对应段落细读。

分享文章

转发到常用平台

微信/朋友圈可先复制链接

相关教程

AI 教程总索引

继续阅读

继续找到相关 AI 教程

返回栏目

Reader Messages

读者留言

有问题、补充资料或实测结果,可以直接留下。这里不需要登录。

最多 800 字

为了防刷,每条留言会做长度、链接数量和提交频率限制。

0/800

留言列表

0
正在加载留言...