是否可以通过实时预测检测漂移?

数据挖掘 机器学习 数据 概念漂移
2022-01-20 18:17:37

我一直在阅读有关检测数据漂移和概念漂移的内容,我找到了这个库,但似乎这里的所有方法都检测概念漂移并接受输入,就好像预测是否正确一样。(需要基本事实)这是正确的假设吗?

然后我偶然发现了 Kullback-Leibler Divergence 和 JS-Divergence。我可以使用这些方法实时检测数据漂移吗?(例如:请求进入我的模型 API,然后进行预测。然后我获取特征并将其传递给计算漂移的函数)

我的一些担忧是我需要完整的训练数据来比较吗?据我了解,这些算法需要相同大小的数据进行比较,那么我是否需要与我的训练数据大小相同的数据集?甚至了解用于检测数据漂移、概念漂移和协变量偏移的输入是有帮助的。

2个回答

您可能会也可能不会使用地面实况来检测漂移。

根据谷歌:

什么是数据漂移?数据漂移是模型准确性随时间下降的主要原因之一。对于机器学习模型,数据漂移是导致模型性能下降的模型输入数据的变化。监控数据漂移有助于检测这些模型性能问题。

在预测分析和机器学习中,概念漂移意味着模型试图预测的目标变量的统计属性会随着时间以不可预见的方式发生变化这会导致问题,因为随着时间的推移预测变得不那么准确。

协变量偏移是协变量,即自变量的分布变化。

所以我看到数据漂移和协变量偏移非常相似,如果不相等的话。根据这些定义:

  • 您需要基本事实来衡量概念漂移。
  • 您不需要基本事实来衡量数据漂移。

为了测量数据漂移:

  • 您可能需要也可能不需要所有训练数据。如果您对预测变量进行建模(假设我将高斯变量拟合到我的特征xi, 它的意思是μi和标准差σi) 并保存其分布的参数,总结分布可能就足够了,您不需要完整的训练数据。
  • 我认为您根本不需要为服务数据提供相同的样本量。
  • 数据漂移需要以批处理的方式完成,所以你可以用你的API来做,只要你存储结果并在服务一段时间后进行分析。除非在非常极端的情况下,否则说单个观察值有漂移是没有意义的。

您可以检测新预测中的漂移,可能不是实时而是累积预测,以便能够检测相关的漂移模式而不仅仅是异常值。

我建议你看一下 package drifter_ml在支持的分类方法列表中,您可以找到名为“Against New Predictions”的部分,其中包含以下方法:

  • 每类预测的比例
  • 类不平衡测试
  • 概率分布相似性检验
  • 校准测试

正如您从他们的描述中可以理解的那样,您不需要完整的训练数据,而是需要它的一些统计数据,甚至是一个具有代表性的子集,以便您可以进行比较。