您如何评估已在生产中部署的 ML 模型?

数据挖掘 机器学习 评估
2021-09-23 08:36:17

所以为了更清楚,让我们考虑贷款违约预测的问题。假设我已经离线训练和测试了多个分类器并集成了它们。然后我把这个模型投入生产。

但由于人在变化,数据和许多其他因素也会发生变化。我们模型的性能最终会下降。因此,它需要用新的、更好的模型替换。

部署后的常用技术、模型稳定性测试、模型性能测试、指标有哪些?如何决定何时用较新的型号替换当前型号?

3个回答

将模型部署到生产环境后,我将监控以下内容:

(1) 与您用于评估模型性能的指标相同,在某些情况下是准确度,也可能是精度、召回率、RMSE。我会绘制一个每日时间序列来绘制该指标的图表,并查看它的表现仍然高于令人满意的阈值。日历中可能存在季节性,该模型在某些月份表现良好,而在其他月份表现不佳。我会将性能与同一月份的测试/验证集进行比较,以考虑季节性。

(2) 除了查看模型的性能,尤其是在使用共享计算资源的情况下,我还建议密切关注数据聚合运行时、模型运行时、模型在过去一段时间内运行的成功率.

当机器学习用于执行特定任务时,这个问题在自动化中非常常见。保证质量始终是必须的。

在生产中评估模型并不是一件容易的事。之所以?
为了评估生产中的模型,您需要掌握基本事实。这个基本事实不可用(如果可用,则不需要模型)。
获取基本事实(例如通过使用人类)不是一个好的解决方案:
1- 它非常昂贵,
2- 同样,如果您要为生产中的数据生成基本事实,那么就不需要模型。但是在现实中如何处理这个问题呢?

我最近研究了一个用于预测车辆(品牌、模型)的预测模型,因为每年我们都可能有新的模型、品牌,所以问我必须多久重复一次训练过程是一个很好的问题?
Imp我曾经用三种不同的方式回答这个问题:

  1. 我逐年分析了我所拥有的训练数据的变化。基于这种变化,我可以估计每年出现的新品牌和型号的数量以及每年消失的品牌和型号的数量,因此我可以估计预期的性能下降。
  2. 我使用 1990-2014 年的数据进行了几次实验来预测 2015 年。使用 1991-2015 年的数据来预测 2016 年。这有助于我了解我的模型每年都有多少不变。
  3. 您可以随机抽样,而不是扫描生产中的所有数据。使用的分布可以是自适应的,使得采样记录的数量随着时间逐渐增加。分布之所以具有自适应性,是因为我们期望模型性能会随着时间的推移而偏离预期性能。

在生产场景中你更应该考虑的是你的模型的收入,A/B 测试是必须的。

与您的情况一样,您可以准确衡量您的贷款违约预测模型可以为您带来多少钱,或者您的模型可以为您节省多少损失。

此外,您可以检查您的预测分布是否与模型的准确性和稳定性相关的基本事实的分布一致。

希望这会对你有所帮助,祝你好运-)