小明去医院体检,医生量了血压——正常;测了心率——正常;查了血糖——正常。但医生却皱起了眉头:心率虽在正常范围,却明显偏快;血压虽“正常”,却顶着正常值上限;血糖同样处在临界。三个指标单独看都没问题,可它们同时出现的组合模式,却不像一个健康人的画像。进一步的检查证实了医生的怀疑——这是早期的代谢异常信号。 这个故事正是“多变量”思想的精髓。AI 模型上线后,特征的分布会随着环境悄悄改变,这被称为“数据漂移”。传统监控像“只量血压的体检”,逐个特征独立检查;但真实世界的特征往往互相联动,就像血压、心率、血糖同进退。有时候每个特征单独看都纹丝不动,特征之间的相关性却已天翻地覆——这种复杂漂移恰恰是单变量检测的致命盲区。 多变量漂移检测就是那位全科医生:它盯着整个“指标组合画像”,用 PCA 降维提炼核心维度,用距离度量计算综合偏差,捕捉单变量检测看不见的复杂分布变化。

岗位关联

学会多变量漂移检测,你就能在生产环境中识别单变量监控发现不了的复杂漂移,提前预警模型性能劣化,守住 AI 系统可靠运行的底线——这是 ML 平台工程师的看家本领。

目录
  1. 可视化演示
  2. 单变量检测局限
  3. 联合分布视角
  4. PCA降维核心
  5. 距离度量选择
  6. 检测流程设计
  7. 高维工程实践
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

展示PCA降维投影漂移检测、多变量距离度量MMD/Wasserstein/KL散度对比、分层检测架构。切换模式探索高维分布变化捕捉方法。

本节配有交互动效(进入视口后自动加载,约 3KB)。

PCA降维投影漂移检测 高维数据PCA投影到2D子空间,对比参考分布与新数据分布的差异 投影后保留主要方差信息,计算分布间距离判断是否发生漂移 z = W^T(x - μ), drift = dist(Z_ref, Z_new) PCA降维是多变量漂移检测的核心手段

单变量检测局限

想象你是一家体检中心的全科医生。过去的做法是“单项体检”:给每个客户量一遍血压、测一遍心率、抽一管血查血糖,每一项对照参考范围打个勾。血压正常、心率正常、血糖正常——好,体检合格。这种把每个指标单独拎出来检查的方式,在医学和 AI 监控里有个共同的名字:单变量检测。它的思路很朴素:每个指标独立地和“正常范围”比较,只要越界就报警。

在模型监控中,“正常范围”就是训练数据里特征分布的统计量——均值、方差、分位数。单变量漂移检测为每个特征监视这些统计量是否显著变化。听起来合理,但它有两个致命盲区。第一,它假设特征之间互不影响,可现实中的特征往往是联动的——就像血压、心率和血糖会一起升高才是真正的危险信号。第二,当监控的特征数量变多时,误报率会像滚雪球一样膨胀。

误报率膨胀可以用一个简单的公式描述:假设每个特征单独检测的误报率是 \(\alpha\),监控 \(d\) 个特征,那么整个系统至少误报一次的概率是:

αtotal=1−(1−α)d\displaystyle \alpha_{\text{total}} = 1 - (1-\alpha)^{d}

1. 单项正常的概率:单次单变量检测不误报的概率是 \(1-\alpha\),它是所有后续计算的基石。

1−α1 - \alpha

2. 所有维度都正常:假设 d 个维度相互独立,它们全部不误报的概率等于每个维度正常概率的连乘。

(1−α)d(1 - \alpha)^d

3. 至少一个误报:用 1 减去“全部正常”的概率,得到整个系统至少出现一次误报的总概率,维度越多越接近 1。

1−(1−α)d1 - (1 - \alpha)^d

回到体检的比喻——单变量检测就像只发一张“各指标是否超标”的清单,却把指标之间的联动关系全部扔掉了。它看不见“三个指标同时处于正常上沿”这种组合警报,更会在项目增多时频繁发出假警报,让医生疲于奔命。这正是我们需要多变量视角的原因。

联合分布视角

全科医生之所以比“单项体检”高明,是因为他看的不是一张张孤立的化验单,而是这些指标的组合模式。他关心的是:在同一个时刻,心率 85、血压 130/85、空腹血糖 5.8——这三者同时出现,是否符合一个正常人的画像?这种“整体画像”,在概率论里就叫联合分布。

对于 d 个特征 \(X_1, X_2, \dots, X_d\),联合分布 \(P(X_1, X_2, \dots, X_d)\) 完整刻画了它们同时取值的规律。而单变量检测看的边缘分布 \(P(X_i)\),只是联合分布在某一个维度上的“投影”——投影会丢失维度之间的关系。当特征相关时,即使所有边缘分布都不变,联合分布也可能面目全非。捕捉这种“关系”的核心工具是协方差矩阵:

Σ=E[(X−μ)(X−μ)T]\displaystyle \Sigma = \mathbb{E}\big[(X - \mu)(X - \mu)^{\mathsf{T}}\big]

1. 中心化处理:先把样本 \(X\) 减去均值向量 \(\mu\),让数据围绕原点分布,消除整体偏移的干扰。

X−μX - \mu

2. 外积展开:\((X-\mu)(X-\mu)^{\mathsf{T}}\) 得到一个 d×d 矩阵,对角线为各特征方差,非对角线为特征两两协方差。

(X−μ)(X−μ)T(X-\mu)(X-\mu)^{\mathsf{T}}

3. 期望平均:对所有样本求期望,得到协方差矩阵 Σ,它就是联合分布线性相关结构的标准画像。

E[⋅]\mathbb{E}[\cdot]

有了这张“画像”,医生就能比较“现在的病人画像”和“健康基准画像”差多远。健康人的心率-血压协方差是一个方向,长期高压人群是另一个方向——同样的边缘分布,不同的联合结构。这就是多变量检测能发现单变量检测盲区的根本原因:它看的不是某个指标,而是指标之间的联动脉搏。

PCA降维核心

全科医生如果把体检项目扩展到 100 项、血液里几百种生化指标,他也会头晕。聪明的医生会先做“分科归纳”:把几十项心肺相关指标综合成“心肺功能”,把血糖、血脂、胰岛素综合成“代谢水平”。几个核心维度,就能覆盖身体的大部分状态。在数学里,这个归纳操作就叫主成分分析(PCA)。

在多变量漂移检测里,直接在高维空间计算距离会遇到“维度灾难”:维度越高,样本越稀疏,任意两点间的距离都趋于相等,距离度量彻底失效。PCA 的解法是:找到数据方差最大的几个方向(主成分),把数据投影上去,用低维近似代替高维。方差最大的方向,就是信息最丰富的方向。

数学上,第一个主成分方向 w 是下面优化问题的解:

max⁡w  wTΣws.t.wTw=1\displaystyle \max_{w} \; w^{\mathsf{T}}\Sigma w \quad \text{s.t.} \quad w^{\mathsf{T}}w = 1

1. 投影方差:\(w^{\mathsf{T}}\Sigma w\) 是数据投影到方向 w 上之后的方差,PCA 希望它越大越好。

wTΣww^{\mathsf{T}}\Sigma w

2. 单位长度约束:\(w^{\mathsf{T}}w = 1\) 限制 w 是单位向量,避免模长无限增大导致方差虚高。

wTw=1w^{\mathsf{T}}w = 1

3. 特征方程:用拉格朗日乘子法求解该优化问题,得到特征方程 \(\Sigma w = \lambda w\),前 k 个最大特征值对应的特征向量就是前 k 个主成分。

Σw=λw\Sigma w = \lambda w

回到医生比喻——PCA 不是简单的“取平均”,而是根据数据本身的相关结构,自动找出最能代表整体状态的几个“核心维度”。在漂移检测中,我们把基准和当前数据都投影到这些核心维度上再比较位置,既压缩了维度,又保留了最重要的分布信息。

距离度量选择

医生拿到了病人的核心指标(血压偏高、心率偏快、血糖临界),该怎么量化“这个人和健康标准差多远”?直接算“血压差 10、心率差 10、血糖差 0.5,总差 20.5”?不行——血压的单位是 mmHg,心率的单位是 bpm,量纲不同,数值大小没有可比性;而且血压和心率本来就相关,分开累加会重复计算。

这就是距离度量要解决的问题。最朴素的欧氏距离只适合量纲统一、互不相关的空间,而真实特征分布不满足这个前提。马氏距离(Mahalanobis Distance)通过协方差矩阵的逆来“调整坐标系”:先去除特征间相关性,再按各自方差归一化,最后计算距离:

DM2=(x−μ)TΣ−1(x−μ)\displaystyle D_{M}^{2} = (x - \mu)^{\mathsf{T}}\Sigma^{-1}(x - \mu)

1. 偏差向量:\(x-\mu\) 表示新样本与基准分布均值之间的偏差,携带“偏了多少”的信息。

x−μx - \mu

2. 逆协方差加权:\(\Sigma^{-1}(x-\mu)\) 用协方差矩阵的逆去缩放偏差,实现去相关和按方差归一化。

Σ−1(x−μ)\Sigma^{-1}(x-\mu)

3. 二次型汇总:偏差向量与加权结果做内积,得到一个标量平方距离,数值越大代表偏离基准越远。

(x−μ)TΣ−1(x−μ)(x - \mu)^{\mathsf{T}}\Sigma^{-1}(x - \mu)

体检报告上,“综合偏差评分”把血压、心率、血糖放在同一把尺子上衡量——高血糖的 1 个单位不能和高血压的 1 个单位混为一谈,因为它们的方差尺度不同、彼此相关。马氏距离做的正是这件事:它在协方差结构下重新定义了“多远算远”。

检测流程设计

体检不是一次性的,而是“定期复查”。医生每次拿到新的体检报告,都跟之前的健康基准比较,看综合偏差评分是否超过警戒线。多变量漂移检测的线上流程,就是这套“定期复查”的自动化版本。

流程分四步:第一步,用健康期(通常是训练期)的数据拟合基准分布,得到均值 \(\mu\)、协方差 \(\Sigma\) 以及 PCA 投影;第二步,对线上数据开一个滑动窗口,窗口里缓存最近 W 个样本;第三步,把窗口内的每个样本变换到主成分空间,计算马氏距离平方,再取窗口平均,得到当前漂移分数;第四步,分数超过阈值 \(\tau\) 就触发告警:

scoret=1W∑i=0W−1DM2(xt−i),若 scoret>τ 则告警\displaystyle \text{score}_t = \frac{1}{W}\sum_{i=0}^{W-1} D_{M}^{2}(x_{t-i}), \qquad \text{若 } \text{score}_t > \tau \text{ 则告警}

1. 窗口内样本:\(x_{t-i}\) 表示当前时刻 t 之前的第 i 个样本,W 个样本构成滑动窗口。

xt−i,i=0,1,…,W−1x_{t-i}, \quad i = 0, 1, \dots, W-1

2. 逐样本距离求和:对窗口内每个样本计算马氏距离平方后求和,体现整体偏离程度。

∑i=0W−1DM2(xt−i)\sum_{i=0}^{W-1} D_{M}^{2}(x_{t-i})

3. 取平均并比较阈值:除以 W 得到窗口平均漂移分数,若超过 \(\tau\) 则触发告警;\(\tau\) 通常在基准数据上取高分位数来确定。

1W∑i=0W−1DM2(xt−i)>τ\frac{1}{W}\sum_{i=0}^{W-1} D_{M}^{2}(x_{t-i}) > \tau

阈值 \(\tau\) 就像医生划的那条“警戒线”:划得太低,体检者会被频繁叫回来复查,浪费资源;划得太高,真正的病人会被漏掉。工程上常用基准数据的分数分布来定,比如取 99 分位数,保证健康状态下误报率低于 1%。

高维工程实践

一家体检中心要高效运转,光有医生和公式还不够,还得有化验流水线、报告系统、复查排期。多变量漂移检测落地到生产环境,同样有一堆工程问题:特征几百上千维怎么算得动?告警之后怎么办?新模型上线没有健康数据怎么办?

工程实践的第一课是“算得动”。高维数据每天几十亿条,逐条计算马氏距离不现实。常用做法是:用 PCA 把维度压到几十维,预先计算并缓存降维矩阵、均值向量和协方差逆矩阵;窗口内的距离计算可以向量化批量执行。第二课是“看得见”:把漂移分数画成时间序列曲线,叠加阈值线和告警点,让值班同学一眼看出趋势。第三课是“接得住”:告警触发后要走“归因 → 决策 → 更新”的闭环——归因需要单变量检测辅助定位是哪个特征出了问题,决策是回滚模型还是重训,更新后要用新数据重建基准。

冷启动也是常见难题:新模型上线初期没有足够的“健康期”数据。这时先用一小批人工校验过的数据作为临时基准,随数据积累逐步用滑动基线替代——就像体检中心给新设备先做一轮校准,再进入正常排期。PCA 保留多少维度,可以用累计解释方差比决定:

R(k)=∑i=1kλi∑i=1dλi\displaystyle R(k) = \frac{\sum_{i=1}^{k}\lambda_i}{\sum_{i=1}^{d}\lambda_i}

1. 前 k 个特征值求和:分子是前 k 个主成分对应特征值之和,代表降维后保留的方差总量。

∑i=1kλi\sum_{i=1}^{k}\lambda_i

2. 全部特征值求和:分母是所有 d 个特征值之和,代表原始数据的总体方差。

∑i=1dλi\sum_{i=1}^{d}\lambda_i

3. 比值判定:当 \(R(k)\) 达到 0.95 时,选 k 为主成分个数——在压缩维度和保留信息之间取平衡。

R(k)≥0.95R(k) \geq 0.95

体检中心运营成熟后,每个环节都有标准动作:校准(基准)、检测(评分)、看板(可视化)、随访(模型更新)。多变量漂移检测的工程实践也是如此——它不是一个孤立的算法,而是一套可持续运转的监控体系,让 AI 系统在数据变化的大海中始终知道自己是否“偏离了航线”。

AI 应用场景

信贷风控模型监控

阶段:模型监控与运维

解决的问题:信贷风控模型依赖大量强相关特征(收入、负债率、消费水平)。传统单变量监控逐特征检查,某次合作渠道变更后,用户画像中“年龄与收入”的相关结构发生改变,但每个特征的分布单独看变化很小,单变量检测完全不报警。

具体案例:某消费金融公司部署多变量漂移检测后,在 PCA 降维空间监控用户特征的马氏距离。上线第三周,漂移分数持续爬升并突破阈值,风控团队及时定位到新渠道引入的高风险人群,触发模型重训,将坏账率上升的苗头扼杀在初期。

工业传感器故障预警

阶段:数据质量监控

解决的问题:工厂设备上几十个传感器(温度、振动、电流)存在物理耦合关系。单个传感器读数漂移很小,但多个传感器联合模式异常,往往是机械故障的早期信号。

具体案例:某制造企业用多变量漂移检测监控注塑机传感器。某个轴承磨损初期,温度和振动的相关性结构悄然改变,单维检测毫无察觉;多变量检测识别出联合分布异常,提前 48 小时告警,避免了产线停机。

Python 演示

python88 行
import numpy as npfrom sklearn.decomposition import PCA  def block_cov(d, groups, rho):    """构造分组相关的协方差矩阵:组内相关系数为 rho,组间独立"""    cov = np.eye(d)    for g in groups:        for i in g:            for j in g:                if i != j:                    cov[i, j] = rho    return cov  def break_group(cov, group, new_rho):    """把某个特征组的相关系数整体替换为 new_rho,模拟相关性漂移"""    for i in group:        for j in group:            if i != j:                cov[i, j] = new_rho    return cov  class MultivariateDriftDetector:    def __init__(self, n_components=0.95, window_size=200, threshold=14.0):        self.n_components = n_components        self.window_size = window_size        self.threshold = threshold        self.pca = None        self.mean = None        self.cov_inv = None     def fit_baseline(self, X):        """用健康期数据建立基准:PCA 降维,并保存均值与协方差逆矩阵"""        self.pca = PCA(n_components=self.n_components)        Z = self.pca.fit_transform(X)        self.mean = Z.mean(axis=0)        cov = np.cov(Z, rowvar=False)        self.cov_inv = np.linalg.pinv(cov)     def detect(self, stream):        """滑动窗口检测:窗口内样本平均马氏距离平方超过阈值即告警"""        scores = []        window = []        for x in stream:            z = self.pca.transform(x.reshape(1, -1))[0]            window.append(z)            if len(window) > self.window_size:                window.pop(0)            if len(window) == self.window_size:                dists = []                for s in window:                    delta = s - self.mean                    dists.append(delta @ self.cov_inv @ delta)                scores.append(float(np.mean(dists)))        return scores  def main():    rng = np.random.default_rng(42)    d = 12    groups = [[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11]]    cov = block_cov(d, groups, 0.7)    baseline = rng.multivariate_normal(np.zeros(d), cov, size=2000)     detector = MultivariateDriftDetector()    detector.fit_baseline(baseline)     stream = []    for i in range(1000):        if i < 500:            x = rng.multivariate_normal(np.zeros(d), cov)        else:            broken = break_group(cov.copy(), groups[0], -0.3)            x = rng.multivariate_normal(np.zeros(d), broken)        stream.append(x)     scores = detector.detect(stream)    alarms = [i for i, s in enumerate(scores) if s > detector.threshold]    print("漂移分数样本:", [round(s, 2) for s in scores[:10]])    print("告警次数:", len(alarms))    if alarms:        print("首次告警样本:", alarms[0] + detector.window_size)  if __name__ == "__main__":    main()
目的:仅改变特征间的相关性(0.7 → -0.3),各特征均值和方差完全不变,演示多变量漂移检测发现单变量检测看不见的复杂漂移。
  1. cov = block_cov(d, groups, 0.7)构造带分组相关结构的数据,模拟真实场景中特征互相联动的现象
  2. self.pca = PCA(n_components=self.n_components)在健康数据上拟合 PCA,降维矩阵只能从基准学习
  3. delta = s - self.mean计算样本与基准均值的偏差,这是马氏距离的起点
  4. dists.append(delta @ self.cov_inv @ delta)用逆协方差矩阵加权后求二次型,得到马氏距离平方
  5. window.pop(0)窗口滑动的关键:挤掉最老的样本,永远只看最近 W 个样本
  6. break_group(cov.copy(), groups[0], -0.3)只改变第一组特征间的相关系数,各特征的单维分布完全不变
  7. if i < 500:前半段用基准分布生成数据,后半段发生“相关性漂移”,触发多变量告警

常见误区

误区我把每个特征都分别做了分布检测,全部通过,所以模型的特征分布肯定没问题,不用再检查了。

正解单维检测通过只能说明“每个边缘分布”没变,但特征之间的相关性可能已经面目全非。就像体检单上血压、心率、血糖都“正常”,但三者同时处于异常偏高的组合模式,恰恰是代谢问题的早期信号。本文 Python 演示里,两组数据的每个特征均值、方差完全相同,只有相关性从 0.7 变成 -0.3,单维检测完全失效,而马氏距离从 12 飙到 21。

为何常见:单变量检测直观、计算简单、告警容易定位,大家习惯性认为“逐项检查通过”就等于整体健康,忽略了“整体大于部分之和”。

误区我数据量不大、内存够用,所以不需要 PCA,直接在原始高维特征上算距离就行。

正解PCA 在多变量检测里的价值不是省内存,而是“去相关”和“抗维度灾难”。高维空间里样本间距趋于均匀,欧氏距离失去区分度;PCA 把数据投影到方差最大的主成分上,让距离度量重新变得敏感。此外,它还能抑制噪声——主成分之外的小方差方向往往是噪声。

为何常见:PCA 常被宣传为“降维压缩”工具,大家习惯从存储和计算角度理解它,忽略了它在统计推断中的角色。

误区多变量检测就是要监控所有特征,维度越高信息越全,检测应该越灵敏才对。

正解维度灾难恰恰相反:维度升高后,大部分样本到基准中心的距离都落在很窄的区间,阈值的区分度下降;同时协方差矩阵的估计需要更多样本,估计误差放大。所以工程上会先用 PCA 把几百维压到几十维,再算距离,灵敏度和稳定性反而更高。

为何常见:“信息越多越好”是直觉,但忽略了高维空间中距离分布趋于集中的数学事实。

误区上了多变量漂移检测,单变量检测就可以下线了,反正前者能看到所有变化。

正解多变量检测回答的是“整体是否偏离”,单变量检测回答的是“哪个特征偏了”。前者负责发现,后者负责定位。告警发生后,工程师需要单变量检测和 SHAP 等归因手段找到具体漂移特征,才能决定是回滚、重训还是重新清洗数据。两者是搭档,不是替代关系。

为何常见:新工具出现时容易被神化,忽略了它们在监控链路中的分工协作。

面试题

Q1. 单变量漂移检测的主要局限是什么?

单选题 · easy

  • A.单纯看单特征会漏掉相关变化← 正确答案
  • B.无法处理数值型特征数据
  • C.需要人工设定计数阈值
  • D.只适合低维数据的监控

答案:A。单变量检测只检查每个特征各自的边缘分布,特征间的相关结构被完全忽略。就像只量血压的体检,三项指标单独看都正常,但它们的组合模式可能已经异常。B、C、D 都不是单变量检测的本质缺陷,它完全能处理数值特征并设置阈值。

Q2. 以下哪种信息是联合分布携带、而边缘分布不含的?

单选题 · easy

  • A.各特征自身方差大小
  • B.特征两两之间的相关性← 正确答案
  • C.各特征的均值偏移量
  • D.各特征的取值范围

答案:B。边缘分布只刻画单个特征自身的取值规律(均值、方差、范围),而特征之间的关系(协方差、相关性)只存在于联合分布中。这正是多变量检测能发现单变量盲区的根本原因。

Q3. 关于 PCA 在多变量漂移检测中的作用,正确的说法有哪些?

多选题 · mid

  • A.降低特征维度缓解维度灾难← 正确答案
  • B.去相关后距离度量更稳定← 正确答案
  • C.保留主成分方差压缩噪声← 正确答案
  • D.自动给出最佳告警阈值

答案:ABC。PCA 通过找方差最大的方向完成降维,缓解高维空间中距离失效的问题;去相关后马氏距离等度量更稳定;保留大方差方向的同时天然压制小方差噪声。但阈值仍需工程师根据基准分数分布人为设定,PCA 不会自动给出。

Q4. 马氏距离与欧氏距离的关键区别是什么?

单选题 · mid

  • A.马氏距离考虑了协方差结构← 正确答案
  • B.欧氏距离计算精度更高
  • C.马氏距离不需要均值向量
  • D.两者实际上是同一回事

答案:A。马氏距离用协方差矩阵的逆对偏差向量做去相关和方差归一化,相当于在标准化坐标系里算距离;欧氏距离默认各维度独立且同尺度。真实特征往往相关、量纲不同,欧氏距离会失真。

Q5. 关于滑动窗口检测机制,正确的说法有哪些?

多选题 · mid

  • A.窗口平均可以缓解单点噪声← 正确答案
  • B.窗口越大漂移响应越滞后← 正确答案
  • C.窗口越小基准分布越稳定
  • D.窗口大小不影响检测延迟

答案:AB。滑动窗口取平均能平滑单样本噪声,但窗口越大,需要越多的新数据才能把旧数据“挤”出窗口,因此对漂移的响应越滞后。窗口大小与基准分布无关,基准是用健康期数据建立的,所以 C、D 错误。

Q6. 维度 d=10、每维误报率 α=5% 时,单变量检测的总误报率约为多少?

单选题 · hard

  • A.约 5% 与维度数无关
  • B.约 10% 线性叠加
  • C.约 40% 指数累积效应← 正确答案
  • D.约 95% 完全失控

答案:C。根据公式 \(1-(1-\alpha)^d = 1-0.95^{10} \approx 0.401\),总误报率约 40%。它随维度指数积累而非线性叠加,这也是高维场景下多变量检测更具优势的原因之一。

Q7. 马氏距离公式中 \(\Sigma^{-1}\) 的作用是什么?

单选题 · mid

  • A.对特征去相关并按方差归一← 正确答案
  • B.把高维数据压缩到一维
  • C.放大所有偏差的距离数值
  • D.计算基准分布的均值向量

答案:A。逆协方差矩阵把数据从原始坐标系变换到“去相关、单位方差”的坐标系中,使距离计算不受量纲和特征相关性的干扰。它与降维和均值计算无关,也不会无差别放大距离。

Q8. 哪些场景适合部署多变量漂移检测?

多选题 · mid

  • A.特征之间存在较强相关性← 正确答案
  • B.复杂漂移单特征检测不到← 正确答案
  • C.只需监控单个特征变化
  • D.特征间完全彼此独立

答案:AB。多变量检测的价值在于捕捉特征间的联合变化,因此特征相关性强、单变量检测不到的复杂漂移场景最合适。如果只监控单个特征或特征完全独立,单变量检测就已经足够,多变量方案反而增加复杂度。

Q9. 关于多变量漂移检测的工程实践,正确的说法是?

单选题 · hard

  • A.PCA 应在基准数据上完成拟合← 正确答案
  • B.测试数据需重新拟合 PCA
  • C.滑动窗口越大延迟越低
  • D.高维欧氏距离最稳健

答案:A。PCA 的降维矩阵、均值、协方差逆都必须在基准(健康期)数据上拟合,线上数据只做变换,否则会产生信息泄漏、基准不稳定。窗口越大延迟越高;高维下欧氏距离受维度灾难影响并不稳健。

Q10. 特征相关性改变而各特征分布不变时,下列说法正确的是?

单选题 · easy

  • A.单变量检测可能完全无告警← 正确答案
  • B.多变量检测必然无法发现
  • C.模型性能不会受到影响
  • D.这种情况不属于分布漂移

答案:A。相关性变化属于典型的联合分布漂移,每个特征自己的均值、方差都没变,所以单变量检测可能毫无反应。这正是多变量检测的主场——它通过协方差结构的变化发现这种隐蔽漂移,而模型性能完全可能因此受损。