机器学习模型的性能评估方法

发布于:2023-03-20 ⋅ 阅读:(539) ⋅ 点赞:(0)

动动发财的小手,点个赞吧!

部署模型后,监控其性能对于确保 ML 系统的质量起着至关重要的作用。要计算准确度、精确度、召回率或 f1 分数等指标,需要标签。但是,在许多情况下,标签可能不可用、部分可用或延迟提供。在这些情况下,估计模型性能的能力会很有帮助。

在这篇文章中,将讨论在没有真实数据的情况下估计性能的可能方法。

1. NannyML

NannyML 是一个 Python 包,用于检测静默模型故障、估计没有标记数据的部署后性能以及检测数据漂移。目前,NannyML 有两种性能估计方法:Confidence-based Performance Estimation (CBPE) 和 Direct Loss Estimation (DLE)。

2. 基于置信度的性能估计

顾名思义,此方法利用模型预测的置信度分数来执行性能估计。

  • 注意事项:

    • 置信度作为概率:置信度分数应该代表概率——例如如果大量观察的分数为 0.9,则大约 90% 的时间都是正确的。
    • 良好校准的概率:另一个要求是分数应该经过良好校准,但情况可能并非总是如此。好消息是,如果需要,NannyML 会在内部执行校准。
    • 没有协变量转移到空间中以前看不见的区域:例如,如果您的模型是针对 10-70 岁的人进行训练的,并且在生产中,您的观察对象是 70 岁以上的人,则这种方法可能无法提供可靠的估计
    • 没有概念漂移:如果模型的输入和目标之间的关系发生变化,这种方法可能无法提供可靠的估计(我个人不知道有什么方法可以)
    • 不适合回归模型:回归模型通常不会固有地输出置信度分数,只会输出实际的预测,这使得这种方法的使用对于这种情况来说并非易事。

3. 直接损失估算

这种方法背后的直觉是训练一个额外的 ML 模型,其任务是估计监控模型的损失。额外的模型称为 Nanny 模型,而受监控的模型是 Child 模型。

  • 注意事项:

    • 额外模型:需要训练额外的模型来估计原始模型的损失,这会增加系统的复杂性。但是,模型不必比原始模型好,在许多情况下,它可以是一个简单的过程。
    • 适合回归:这种方法非常适合回归任务。例如,可以训练保姆模型来预测 MSE(均方误差)或 MAE(平均绝对误差)。
    • 没有协变量转移到空间中以前看不见的区域:对 CBPE 所做的相同考虑也适用于此方法
    • 无概念漂移:对 CBPE 所做的相同考虑也适用于此方法
    • 具有不同性能的区域:受监控模型在不同区域应具有不同的性能。例如,如果您的模型根据一天中不同季节的不同时段表现得更好或更差。

本文由mdnice多平台发布