news 2026/4/18 12:30:32

机器学习中的性能指标

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
机器学习中的性能指标

摘要:机器学习性能指标是评估模型表现的关键工具。分类问题常用指标包括:混淆矩阵(TP/TN/FP/FN)、准确率、精确率、召回率、F1分数、ROC-AUC和对数损失;回归问题则使用MAE、MSE和R²分数。这些指标从不同角度量化模型性能,如准确率衡量总体正确率,精确率和召回率侧重正例预测质量,F1分数平衡两者,ROC-AUC反映分类器区分能力,MAE和MSE评估回归误差。选择合适的指标对模型优化至关重要,需根据具体任务需求权衡不同指标。Python的sklearn库提供了计算这些指标的便捷函数。

目录

机器学习中的性能指标

分类问题的性能指标

混淆矩阵(Confusion Matrix)

分类准确率(Classification Accuracy)

分类报告(Classification Report)

精确率(Precision)

召回率(Recall)或灵敏度(Sensitivity)

特异度(Specificity)

支持度(Support)

F1 分数(F1 Score)

ROC 曲线下面积分数(ROC AUC Score)

对数损失(LOGLOSS / Logarithmic Loss)

示例

输出结果

回归问题的性能指标

平均绝对误差(Mean Absolute Error, MAE)

均方误差(Mean Square Error, MSE)

决定系数(R² Score)

示例

输出结果


机器学习中的性能指标

机器学习中的性能指标用于评估机器学习模型的表现。这些指标提供了定量衡量标准,可评估模型的性能优劣,并对不同模型的性能进行比较。性能指标至关重要,因为它们能帮助我们了解模型的运行情况,判断其是否满足需求,进而让我们就是否使用某个特定模型做出明智决策。

我们必须谨慎选择评估机器学习性能的指标,原因如下:

  • 机器学习算法性能的衡量与比较方式完全取决于所选的指标。
  • 所选指标会直接影响我们对结果中各类特征重要性的权重分配。

评估机器学习算法(包括分类算法和回归算法)性能的指标有多种。下面我们将分别针对分类问题和回归问题讨论这些指标。

分类问题的性能指标

在前几章中,我们已经探讨了分类及其相关算法。本节将介绍可用于评估分类问题预测结果的各类性能指标:

  • 混淆矩阵(Confusion Matrix)
  • 分类准确率(Classification Accuracy)
  • 分类报告(Classification Report)
  • 精确率(Precision)
  • 召回率(Recall)或灵敏度(Sensitivity)
  • 特异度(Specificity)
  • 支持度(Support)
  • F1 分数(F1 Score)
  • ROC 曲线下面积分数(ROC AUC Score)
  • 对数损失(LOGLOSS / Logarithmic Loss)

混淆矩阵(Confusion Matrix)

混淆矩阵是衡量分类问题性能最简便的方法,适用于输出结果为两类或多类的场景。它本质上是一个二维表格,维度分别为 “实际类别(Actual)” 和 “预测类别(Predicted)”,且两个维度均包含 “真正例(True Positives, TP)”“真负例(True Negatives, TN)”“假正例(False Positives, FP)”“假负例(False Negatives, FN)” 四个指标,具体如下表所示:

实际类别 = 1实际类别 = 0
预测类别 = 1真正例(TP)假正例(FP)
预测类别 = 0假负例(FN)真负例(TN)

混淆矩阵相关术语的解释如下:

  • 真正例(TP):数据点的实际类别和预测类别均为 1 的情况。
  • 真负例(TN):数据点的实际类别和预测类别均为 0 的情况。
  • 假正例(FP):数据点的实际类别为 0,但预测类别为 1 的情况。
  • 假负例(FN):数据点的实际类别为 1,但预测类别为 0 的情况。

我们可以使用sklearn.metrics库中的confusion_matrix函数计算分类模型的混淆矩阵。

分类准确率(Classification Accuracy)

准确率是分类算法最常用的性能指标,定义为正确预测的数量占总预测数量的比例。借助混淆矩阵,可通过以下公式轻松计算:

我们可以使用sklearn.metrics库中的accuracy_score函数计算分类模型的准确率。

分类报告(Classification Report)

该报告包含精确率、召回率、F1 分数和支持度的得分,各指标解释如下:

精确率(Precision)

精确率衡量的是所有预测为正例的实例中,真正例的比例,计算公式为真正例数量除以真正例与假正例的数量之和(可通过混淆矩阵推导):

在文档检索场景中,精确率可定义为模型返回的正确文档数量。

召回率(Recall)或灵敏度(Sensitivity)

召回率衡量的是所有实际为正例的实例中,真正例的比例,计算公式为真正例数量除以真正例与假负例的数量之和(可通过混淆矩阵推导):

特异度(Specificity)

与召回率相对,特异度定义为模型返回的负例数量,计算公式为真负例数量除以真负例与假正例的数量之和(可通过混淆矩阵推导):

支持度(Support)

支持度指的是目标值中每个类别所包含的真实响应样本数量。

F1 分数(F1 Score)

F1 分数是精确率和召回率的调和平均数,是兼顾两者的平衡指标,在数学上表现为精确率和召回率的加权平均值。F1 分数的最佳值为 1,最差值为 0,计算公式如下:

F1 分数中精确率和召回率的相对贡献相等。

我们可以使用sklearn.metrics库中的classification_report函数获取分类模型的分类报告。

ROC 曲线下面积分数(ROC AUC Score)

ROC(受试者工作特征)曲线下面积(AUC)分数用于衡量分类器区分正例和负例的能力。其计算方式是:在不同的分类阈值下,绘制真正例率(TPR)与假正例率(FPR)的曲线,然后计算该曲线下的面积。

顾名思义,ROC 是一条概率曲线,AUC 则衡量模型的分离能力。简单来说,ROC-AUC 分数能反映模型区分不同类别的能力,分数越高,模型性能越好。

我们可以使用sklearn.metrics库中的roc_auc_score函数计算 ROC-AUC 分数。

对数损失(LOGLOSS / Logarithmic Loss)

对数损失又称逻辑回归损失或交叉熵损失,基于概率估计定义,用于评估输入为 0 到 1 之间概率值的分类模型性能。通过与准确率对比,能更清晰地理解其含义:准确率统计的是模型中预测值与实际值一致的数量,而对数损失则衡量预测结果与实际标签的偏离程度所带来的不确定性。借助对数损失值,我们能更准确地了解模型的性能。

我们可以使用sklearn.metrics库中的log_loss函数计算对数损失。

示例

以下是一个简单的 Python 代码示例,展示如何在二分类模型中使用上述性能指标:

python

运行

from sklearn.metrics import confusion_matrix from sklearn.metrics import accuracy_score from sklearn.metrics import classification_report from sklearn.metrics import roc_auc_score from sklearn.metrics import log_loss X_actual = [1, 1, 0, 1, 0, 0, 1, 0, 0, 0] # 实际值 Y_predic = [1, 0, 1, 1, 1, 0, 1, 1, 0, 0] # 预测值 results = confusion_matrix(X_actual, Y_predic) print('混淆矩阵:') print(results) print('准确率:', accuracy_score(X_actual, Y_predic)) print('分类报告:') print(classification_report(X_actual, Y_predic)) print('ROC-AUC分数:', roc_auc_score(X_actual, Y_predic)) print('对数损失值:', log_loss(X_actual, Y_predic))
输出结果

plaintext

混淆矩阵: [[3 3] [1 3]] 准确率: 0.6 分类报告: precision recall f1-score support 0 0.75 0.50 0.60 6 1 0.50 0.75 0.60 4 micro avg 0.60 0.60 0.60 10 macro avg 0.62 0.62 0.60 10 weighted avg 0.65 0.60 0.60 10 ROC-AUC分数: 0.625 对数损失值: 13.815750437193334

回归问题的性能指标

在前几章中,我们已经探讨了回归及其相关算法。本节将介绍可用于评估回归问题预测结果的各类性能指标:

  • 平均绝对误差(Mean Absolute Error, MAE)
  • 均方误差(Mean Square Error, MSE)
  • 决定系数(R² Score)

平均绝对误差(Mean Absolute Error, MAE)

平均绝对误差是回归问题中最简单的误差指标,定义为预测值与实际值之间绝对差值的平均值。简单来说,通过 MAE 我们可以了解预测结果的误差程度,但它无法指示模型误差的方向(即无法判断模型是预测不足还是预测过度)。计算公式如下:

其中,= 实际输出值,= 预测输出值。

我们可以使用sklearn.metrics库中的mean_absolute_error函数计算 MAE。

均方误差(Mean Square Error, MSE)

均方误差与平均绝对误差类似,不同之处在于它先对预测值与实际值的差值进行平方,再求和取平均。计算公式如下:

其中,= 实际输出值,= 预测输出值。

我们可以使用sklearn.metrics库中的mean_squared_error函数计算 MSE。

决定系数(R² Score)

决定系数通常用于解释性场景,用于衡量预测输出值与实际输出值的拟合优度。计算公式如下:

上述公式中,分子为均方误差(MSE),分母为实际输出值Y的方差(Yˉ为Y的平均值)。

我们可以使用sklearn.metrics库中的r2_score函数计算决定系数。

示例

以下是一个简单的 Python 代码示例,展示如何在回归模型中使用上述性能指标:

python

运行

from sklearn.metrics import r2_score from sklearn.metrics import mean_absolute_error from sklearn.metrics import mean_squared_error X_actual = [5, -1, 2, 10] # 实际值 Y_predic = [3.5, -0.9, 2, 9.9] # 预测值 print('决定系数(R²)=', r2_score(X_actual, Y_predic)) print('平均绝对误差(MAE)=', mean_absolute_error(X_actual, Y_predic)) print('均方误差(MSE)=', mean_squared_error(X_actual, Y_predic))
输出结果

plaintext

决定系数(R²)= 0.9656060606060606 平均绝对误差(MAE)= 0.42499999999999993 均方误差(MSE)= 0.5674999999999999
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 9:41:42

Windows 11 + WSL2 + vLLM 本地部署 Qwen3 8B AWQ 指南

Windows 11 WSL2 vLLM 本地部署 Qwen3 8B AWQ 指南 目录 系统要求环境准备WSL2 Ubuntu 安装配置NVIDIA 驱动配置CUDA 环境安装Python 环境搭建vLLM 安装Qwen3 8B AWQ 模型下载(国内加速)启动 vLLM 服务API 测试验证常见问题解决性能优化建议 系统要求…

作者头像 李华
网站建设 2026/4/18 7:40:34

单片机外卖柜

STM32-S368-存取柜取件码二维码语音播报存件手机号录入后台数据4舵机OLED屏按键(无线方式选择)STM32-S368N无无线-无APP板(硬件操作详细): STM32-S368B蓝牙无线-APP版: STM32-S368W-WIFI无线-APP版: STM32-S368CAN-视频监控WIFI无线-APP版: STM32-S368I-云平台WIFI无线-APP版: …

作者头像 李华
网站建设 2026/4/18 7:54:50

基于51/STM32单片机太阳能路灯台灯光伏风能追光光通信无线设计(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

09-太阳能光伏 基于51/STM32单片机太阳能路灯台灯光伏风能追光可见光通信无线设计 太阳能板风能风机充电管理升压锂电池光敏高亮LEDC51-19 WIFI无线太阳能板充电管理升压锂电池光敏AD转换高亮LEDPWM档位C51-21 蓝牙无线太阳能板充电管理升压锂电池光敏AD转换高亮LEDPWM档位C51-…

作者头像 李华