理解 Keras 中的指标

2025年6月24日 | 阅读 4 分钟

Keras 是一个基于 TensorFlow 构建的广受欢迎的深度学习库。Keras 提供了一组度量指标,用于评估模型执行其预期功能的能力。在 Keras 中,度量指标是用于以多种不同方式评估模型性能的函数:准确度、损失、精确度、召回率等等。度量指标是开发人员在训练和评估模型时分析模型性能的方法。

度量指标是 Keras 用于展示模型在训练过程中的表现以及在测试过程中评估模型的工具。每当交叉熵、均方误差或类似损失函数被优化时,度量指标也可能提供一个不同的视角来观察模型的行为。度量指标不参与模型的训练;它们是评估工具,用于检查潜在的改进和/或评估可能出现的任何问题。

使用 Keras 训练模型时,度量指标通常会添加到 compile() 方法中。Keras 有一套内置的度量指标,但也允许用户定义自己的自定义度量指标。度量指标的类型取决于用例问题,无论是分类问题、回归问题还是其他问题。

在 Keras 中,可以通过将度量指标作为列表添加到 compile 方法中来指定它们,例如,对于分类任务:

代码

在这种情况下,我们使用准确度作为度量指标,以观察预测与相应标签的准确对齐程度。Keras 将在每个 epoch 之后自动计算此度量指标,并将在输出中报告。

准确度是正确预测实例与实例总数的比率;它也是分类问题中最广泛使用的度量指标。

代码

准确度是二元分类问题的一个很好的度量指标,特别是当类别平衡时。在不平衡数据集的情况下,衡量其他度量指标(如精确度和召回率)可能更具信息量。

精确度衡量所有正向预测中正确正向预测的比例。

代码

召回率(或敏感度)是另一个重要的度量,它表示所有实际正向实例中正确正向预测的比例。

代码

F1 分数是精确度和召回率的调和平均值(越高越好,平衡这两个度量)

代码

AUC,或受试者工作特征 (ROC) 曲线下面积,是二元分类问题的一个有用度量。AUC > 0.5 意味着模型可以将正类别与负类别区分开来。

代码

回归指标

MSE:均方误差 (MSE) 是预测值与实际值之间差异的平方的平均值。它对大错误而非小错误赋予了不成比例的强权重。

代码

MAE:平均绝对误差 (MAE) 计算预测值与实际值之间绝对差值的平均值,并且对异常值不如 MSE 敏感。

代码

MSLE:均方对数误差 (MSLE) 类似于平均平方误差 (MSE),但它应用了对数变换,这对于指数增长模式很有用。

代码

度量指标(自定义)

尽管内置度量指标将处理大多数用例,但 Keras 确实为开发人员提供了一种基于 TensorFlow 函数定义新度量指标的方法。如果需要评估性能的特定度量指标,自定义度量指标会很有用。这是一个自定义度量指标的示例,用于计算均方根误差 (RMSE)。

代码

现在我们将它付诸使用。

代码

输出

 
F-beta score: 0.7142857