16 模型评估之评估指标
整理说明
这篇内容怎么整理
郭震 · 2026-06-04
阅读路线
先按这条路线读
先抓住主线,再回到代码、配置和图文细节,读起来会更稳。
评估指标的选择要和业务代价对齐。疾病筛查、垃圾邮件、房价预测和客户分群,不能用同一套分数判断好坏。
指标定义可对照 scikit-learn model evaluation 文档。
选指标前,我会先写清楚哪类错误最不能接受。指标是决策工具,不是报告装饰。
在机器学习中,模型的性能评估是至关重要的一步,能够帮助我们理解模型的表现并进行必要的调整。在本篇中,我们将重点讨论一些常用的评估指标,帮助你在模型评估时做出明智的决策。我们将结合实际案例,使用 Scikit-Learn 的功能来实现评估指标的计算。
1. 分类评估指标
对于分类问题,常用的评估指标包括 准确率、精确率、召回率 和 F1-score。下面我们分别介绍这些指标及其计算方法。
使用 Scikit-Learn 评估模型时,先看任务类型、标签分布、precision、recall、F1、ROC-AUC 或回归误差。
1.1 准确率
准确率是指预测正确的样本占总样本的比例。其计算公式为:
其中:
- :真正例(True Positives)
- :真负例(True Negatives)
- :假正例(False Positives)
- :假负例(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 精确率
精确率是指被预测为正类的样本中,真实为正类的比例。其计算公式为:
我们同样可以使用 precision_score 函数来计算精确率。
from sklearn.metrics import precision_score
# 计算精确率
precision = precision_score(y_true, y_pred)
print(f"精确率: {precision:.2f}")
1.3 召回率
召回率是指真实为正类的样本中,被正确预测为正类的比例。其计算公式为:
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 函数可以方便地计算 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²得分。
进入《模型评估之评估指标》正文前,可以先扫一遍配图:它在问什么、要分清哪些概念、哪一步值得动手、最后用什么标准验收。
2.1 均方误差(MSE)
均方误差是预测值与实际值之间误差的平方的平均值。其计算公式为:
在 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)
均方根误差是均方误差的平方根,用来更直观地表示误差的级别。公式为:
import numpy as np
# 计算均方根误差
rmse = np.sqrt(mse)
print(f"均方根误差: {rmse:.2f}")
2.3 R²得分
R²得分表示模型对数据变异性的解释能力。其定义为:
可以使用 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)的风险。因此,继续关注这个系列教程,掌握模型评估的全貌!
继续阅读
从这篇继续找到相关教程
常见问题
读前先确认这三点
模型评估之评估指标适合谁读?
这是 Scikit-learn 入门 系列第 16 / 24 篇,适合正在学习Scikit-learn 入门,并且需要把概念落到操作步骤或判断标准里的读者。
读这篇Scikit-learn 入门教程要多久?
按中文技术文章阅读速度估算,通读大约 4 分钟;如果要跟着复现,建议把命令、配置和结果检查分开做。
这篇文章里的图文节点怎么用?
正文里有 6 个图文节点,可以先用它们抓住流程、配置和判断点,再回到对应段落细读。
分享文章
转发到常用平台
微信/朋友圈可先复制链接
相关教程
从相近问题继续读
继续阅读