机器学习概念漂移检测方法(Aporia)

简介: 目前,有多种技术可用于机器学习检测概念漂移的方法。熟悉这些检测方法是为每个漂移和模型使用正确度量的关键。在本文章中,回顾了四种类型的检测方法:统计、统计过程控制、基于时间窗口和上下文方法。

统计方法

统计方法用于比较分布之间的差异

在某些情况下,会使用散度,这是分布之间的一种距离度量。 在其他情况下,运行测试以获得分数。


Kullback-Leibler 散度

Kullback-Leibler 散度有时被称为相对熵。

KL散度试图量化一个概率分布与另一个概率分布有多大不同,所以,如果我们有分布Q和P,其中,Q分布是旧数据的分布,P是我们想要计算的新数据的分布:

KL(Q∣∣P)=−∑xP(x)∗log(Q(x)P(x))KL(Q||P) = - \displaystyle\sum_x{P(x)}*log(\frac{Q(x)}{P(x)})KL(QP)=xP(x)log(P(x)Q(x))

其中,“||”代表散度。

我们可以看到,

  • 如果 P(x) 高而 Q(x) 低,则散度将很高。
  • 如果 P(x) 低而 Q(x) 高,则散度也会很高,但不会那么大。
  • 如果 P(x) 和 Q(x) 相似,则散度就会很低。

网络异常,图片无法展示
|


JS 散度

Jensen-Shannon 散度使用 KL 散度

JS(Q∣∣P)=12(KL(Q∣∣M)+KL(P∣∣M))JS(Q||P) = \frac{1}{2}(KL(Q||M) +KL(P||M))JS(QP)=21(KL(QM)+KL(PM))

其中,M=Q+P2M = \frac{Q+P}{2}M=2Q+P 是 P 和 Q 之间的平均值。

JS散度和KL散度的主要区别在于JS是对称的,它总是有一个有限值。

网络异常,图片无法展示
|

网络异常,图片无法展示
|

Kolmogorov-Smirnov 检验 (K-S 检验)

两样本 KS 检验是比较两个样本的有用且通用的非参数方法。 在 KS 测试中,我们计算:Dn,m=supx∣F1,n(x)−F2,m(x)∣D_{n,m}=sup_{x}|F_{1,n}(x) - F_{2,m}(x)|Dn,m=supxF1,n(x)F2,m(x)

其中,F1,n(x)F_{1,n}(x)F1,n(x) 是先前数据与 nnn 样本的经验分布函数,F2,m(x)F_{2,m}(x)F2,m(x) 是新数据与 mmm 样本和Fn(x)=1n∑i=1nI[−∞,x](Xi)F_{n}(x) = \frac{1}{n} \displaystyle\sum_{i=1}^n I_{[- \infty,x]}(X_{i})Fn(x)=n1i=1nI[,x](Xi)的经验分布函数,supxsup_{x}supx 是使  ∣F1,n(x)−F2,m(x)∣|F_{1,n}(x) - F_{2,m}(x)|F1,n(x)F2,m(x) 最大化的样本 xxx 的子集。

KS 检验对两个样本的经验累积分布函数的位置和形状的差异很敏感。它非常适合数值数据

网络异常,图片无法展示
|


何时使用统计方法

统计方法部分的想法是评估两个数据集之间的分布。

我们可以使用这些工具来查找不同时间范围内的数据之间的差异,并衡量随着时间的推移数据行为的差异。

对于这些方法,不需要标签,也不需要额外的内存,我们可以快速获得模型输入特征/输出变化的指标。 这将帮助我们甚至在模型的性能指标出现任何潜在下降之前就开始调查这种情况。 另一方面,如果没有正确处理,缺少标签和忽视对过去事件和其他特征的记忆可能会导致误报。


统计过程控制

统计过程控制的想法是验证我们模型的误差是否在可控范围内。 这在生产中运行时尤其重要,因为性能会随着时间而变化。因此,我们希望有一个系统,如果模型达到了一定错误率,就会发送警报。请注意,某些模型具有“红绿灯”系统,其中也有警告报警。

漂移检测方法/早期漂移检测方法 (DDM/EDDM)

这个想法是将误差建模为二项式变量。 这意味着我们可以计算出我们的预期误差值。 当我们使用二项式分布时,我们可以标记 =npt=npt=npt,因此, σ=pt(1−pt)n\sigma = \sqrt{\frac{p_{t}(1-p_{t})}{n}}σ=npt(1pt)


DDM

在这里我们可以提出:

  • pt+σt≥pmin+2σminp_{t}+\sigma_{t}\ge p_{min} +2\sigma_{min}pt+σtpmin+2σmin 时发出警告
  • pt+σt≥pmin+3σminp_{t}+\sigma_{t}\ge p_{min} +3\sigma_{min}pt+σtpmin+3σmin 时报警

优点:DDM 在检测逐渐变化(如果它们不是很慢)和突然变化(增量和突然漂移)时表现出良好的性能。

缺点:当变化缓慢时,DDM 难以检测漂移。许多样本可能在漂移水平激活之前储存了很长时间,存在样本储存溢出的风险。


EDDM

在这里,通过测量 2 个连续错误的距离,我们可以提出:

  • pt+2σtpmax+2σmax<α\frac{p_{t}+2{\large \sigma}_{t}}{p_{max}+2{\large \sigma}_{max}}<{\Large \alpha}pmax+2σmaxpt+2σt<α 时发出警告
  • pt+2σtpmax+2σmax<β\frac{p_{t}+2{\large \sigma}_{t}}{p_{max}+2{\large \sigma}_{max}}<{\Large \beta}pmax+2σmaxpt+2σt<β 时发出警报,其中 β{\Large \beta} β 通常为 0.9

EDDM 方法是 DDM 的修改版本,其重点是识别逐渐漂移。

网络异常,图片无法展示
|


CUMSUM 和 Page-Hinckley (PH)

CUSUM 及其变体 Page-Hinckley (PH) 是社区中的开拓方法之一。 该方法的想法是提供一种序列分析技术,该技术通常用于监测高斯信号平均值的变化检测。

CUSUM 和 Page-Hinckley (PH) 通过计算观测值与平均值的差异来检测概念漂移,并在该值大于用户定义的阈值时设置漂移警报。 这些算法对参数值很敏感,导致在误报和检测真实漂移之间进行权衡。

由于 CUMSUM 和 Page-Hinckley (PH) 用于处理数据流,因此每个事件都用于计算下一个结果:

CUMSUM

  • g0=0,gt=max(0,gt−1+εt−v){\large g}_{0}=0, {\large g}_{t}= max(0, {\large g}_{t-1}+{\large \varepsilon}_{t}-{\large v})g0=0,gt=max(0,gt1+εtv) 其中, g 代表事件,或出于漂移目的,模型的输入/输出
  • gt>h{\large g}_{t}>hgt>h 发出警报,并设置 gt=0{\large g}_{t}=0gt=0
  • h,vh,vh,v 是可调参数

注意:CUMSUM 是无记忆的、单边的或不对称的,因此它只能检测到值的增加。

Page-Hinckley (PH)

  • g0=0,gt=gt−1+(εt−v){\large g}_{0}=0, {\large g}_{t}= {\large g}_{t-1}+({\large \varepsilon}_{t}-v)g0=0,gt=gt1+(εtv)
  • Gt=min(gt,Gt−1)G_{t}=min({\large g}_{t},G_{t-1})Gt=min(gt,Gt1)gt−Gt>hg_{t}-G_{t}>hgtGt>h 发出警报,并设置 gt=0g_{t}=0gt=0

网络异常,图片无法展示
|


何时使用统计过程控制方法

要使用所介绍的统计过程控制方法,我们需要提供样本的标签。 在许多情况下,这可能是一个挑战,因为延迟可能很高,并且很难提取它,尤其是在大型组织中使用它时。 另一方面,一旦获得这些数据,我们就会得到一个相对快速的系统来涵盖 3 种漂移类型:突然漂移、渐进漂移和增量漂移

该系统还允许我们与部门一起跟踪退化情况(如果有的话),以发出警告和警报。


时间窗口分布方法

时间窗口分布模型关注时间戳和事件的发生

ADWIN

ADWIN 的思想是从时间窗口 WWW 开始,在上下文没有明显变化时动态增大窗口 WWW,并在检测到变化时将其缩小。 该算法试图找到显示不同平均值的 W−w0W - w_{0}Ww0w1w_{1}w1 的两个子窗口。 这意味着窗口的旧部分 −w0- w_{0}w0 是基于与实际不同的数据分布,因此被删除。

网络异常,图片无法展示
|


Paired Learners

假设对于给定的问题,我们有一个使用大量数据进行训练的大型稳定模型,让我们将其标记为模型 A。

我们还将设计另一个模型,一个更轻量级的模型,在更小和更新的数据上进行训练(它可以具有相同的类型)。 我们将其称为模型 B。

想法:找到模型 B 优于模型 A 的时间窗口。由于模型 A 比模型 B 稳定并且封装了更多数据,我们预计它会胜过它。 但是,如果模型 B 优于模型 A,则可能表明发生了概念漂移。

网络异常,图片无法展示
|


上下文方法(Contextual Approaches)

这些方法的想法是评估训练集和测试集之间的差异。 当差异显著时,可能表明数据存在漂移。

树特征

树特征的想法是在数据上训练一个相对简单的树,并添加预测时间戳作为特征之一。 由于树模型也可以用于特征重要性,我们可以知道时间如何影响数据以及在什么时候。此外,我们可以查看由时间戳创建的拆分,我们可以看到拆分前后概念之间的差异。

网络异常,图片无法展示
|


在上图中,我们可以看到日期特征位于根部,这意味着该特征具有最高的信息增益,这意味着在 7 月 22 日,他们可能在数据中发生了漂移。

漂移检测实现

您可以找到相关的提供漂移检测的实现:


相关文章
|
2月前
|
机器学习/深度学习 数据采集 算法
量子机器学习入门:三种数据编码方法对比与应用
在量子机器学习中,数据编码方式决定了量子模型如何理解和处理信息。本文详解角度编码、振幅编码与基础编码三种方法,分析其原理、实现及适用场景,帮助读者选择最适合的编码策略,提升量子模型性能。
222 8
|
6月前
|
机器学习/深度学习 人工智能 供应链
从概念到商业价值:AI、机器学习与深度学习全景指南
在这个科技飞速发展的时代🚀,人工智能正以惊人的速度渗透到我们的生活和工作中👀。但面对铺天盖地的AI术语和概念,很多人感到困惑不已😣。"AI"、"机器学习"、"深度学习"和"神经网络"到底有什么区别?它们如何相互关联?如何利用这些技术提升工作效率和创造价值?
|
5月前
|
机器学习/深度学习 存储 运维
机器学习异常检测实战:用Isolation Forest快速构建无标签异常检测系统
本研究通过实验演示了异常标记如何逐步完善异常检测方案和主要分类模型在欺诈检测中的应用。实验结果表明,Isolation Forest作为一个强大的异常检测模型,无需显式建模正常模式即可有效工作,在处理未见风险事件方面具有显著优势。
405 46
|
10月前
|
机器学习/深度学习 存储 设计模式
特征时序化建模:基于特征缓慢变化维度历史追踪的机器学习模型性能优化方法
本文探讨了数据基础设施设计中常见的一个问题:数据仓库或数据湖仓中的表格缺乏构建高性能机器学习模型所需的历史记录,导致模型性能受限。为解决这一问题,文章介绍了缓慢变化维度(SCD)技术,特别是Type II类型的应用。通过SCD,可以有效追踪维度表的历史变更,确保模型训练数据包含完整的时序信息,从而提升预测准确性。文章还从数据工程师、数据科学家和产品经理的不同视角提供了实施建议,强调历史数据追踪对提升模型性能和业务洞察的重要性,并建议采用渐进式策略逐步引入SCD设计模式。
381 8
特征时序化建模:基于特征缓慢变化维度历史追踪的机器学习模型性能优化方法
|
12月前
|
机器学习/深度学习 算法 数据挖掘
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构。本文介绍了K-means算法的基本原理,包括初始化、数据点分配与簇中心更新等步骤,以及如何在Python中实现该算法,最后讨论了其优缺点及应用场景。
1144 6
|
机器学习/深度学习 数据采集 算法
Java 大视界 -- Java 大数据机器学习模型在金融衍生品定价中的创新方法与实践(166)
本文围绕 Java 大数据机器学习模型在金融衍生品定价中的应用展开,分析定价现状与挑战,阐述技术原理与应用,结合真实案例与代码给出实操方案,助力提升金融衍生品定价的准确性与效率。
Java 大视界 -- Java 大数据机器学习模型在金融衍生品定价中的创新方法与实践(166)
|
10月前
|
机器学习/深度学习 资源调度 算法
机器学习领域必知数学符号与概念(一)
本文介绍了一些数学符号以及这些符号的含义。
820 65
|
10月前
|
机器学习/深度学习 人工智能 算法
机器学习算法的优化与改进:提升模型性能的策略与方法
机器学习算法的优化与改进:提升模型性能的策略与方法
1783 13
机器学习算法的优化与改进:提升模型性能的策略与方法
|
11月前
|
机器学习/深度学习 传感器 运维
使用机器学习技术进行时间序列缺失数据填充:基础方法与入门案例
本文探讨了时间序列分析中数据缺失的问题,并通过实际案例展示了如何利用机器学习技术进行缺失值补充。文章构建了一个模拟的能源生产数据集,采用线性回归和决策树回归两种方法进行缺失值补充,并从统计特征、自相关性、趋势和季节性等多个维度进行了详细评估。结果显示,决策树方法在处理复杂非线性模式和保持数据局部特征方面表现更佳,而线性回归方法则适用于简单的线性趋势数据。文章最后总结了两种方法的优劣,并给出了实际应用建议。
628 7
使用机器学习技术进行时间序列缺失数据填充:基础方法与入门案例
|
12月前
|
机器学习/深度学习 算法 UED
在数据驱动时代,A/B 测试成为评估机器学习项目不同方案效果的重要方法
在数据驱动时代,A/B 测试成为评估机器学习项目不同方案效果的重要方法。本文介绍 A/B 测试的基本概念、步骤及其在模型评估、算法改进、特征选择和用户体验优化中的应用,同时提供 Python 实现示例,强调其在确保项目性能和用户体验方面的关键作用。
404 6

热门文章

最新文章