训练集和测试集如果来自不同的分布,会怎样?

打开网易新闻 查看精彩图片

类似的问题不是没遇到过只是语境不同,比如说模型上次构建以来是否发生了数据漂移?销售分析中产品 A 和产品 B 的分布是否存在差异?归结下来问的都是同一件事,如何量化两个分布之间的差异。

单变量分析是最直接的入手点,逐个变量比较训练集与测试集的分布形状。但光看单变量可能不够。变量之间的联合关系如果存在差异呢?

打开网易新闻 查看精彩图片

怎么量化这种差异?Energy Distance 可以解决这个问题

Energy Distance 是一种用来度量两个概率分布差异程度的统计指标。两个分布完全相同时取值为零,分布差距越大数值越高。

形式化的定义

给定概率分布 F 和 G,从中分别抽取随机向量 X 和 Y,Energy Distance D(F,G) 的定义如下:

D(F,G) = 2E||X, Y|| — E||X, X'|| — E||Y, Y'||

定义包含两类距离。E||X, Y|| 是跨分布数据点对之间的期望欧几里得距离(一个来自 X,一个来自 Y),称为交叉距离;E||X, X'|| 和 E||Y, Y'|| 则是同一分布内部数据点对之间的期望欧几里得距离,称为组内距离。

Energy Distance 的原理

可以把 Energy Distance 类比为一个带电粒子系统的净相互作用能。设想两团点云,一团带正电,一团带负电。交叉距离对应异号粒子之间的相互作用能,组内距离对应同一团点云内部的自相互作用能。当交叉作用恰好被自作用抵消:即两个分布完全一致——净能量为零;否则为正值。

用一句话概括:

Energy Distance 度量的是两个分布之间的分离程度超出各自内部自然分离程度的幅度。

下面用两个二元分布的可视化来展示这一思路,同样的原理可以推广到更高维。

两个分布完全相同时,Energy Distance 为零。

打开网易新闻 查看精彩图片

随着两个分布彼此远离,交叉作用占据主导,Energy Distance 上升。

打开网易新闻 查看精彩图片

当每个分布内部的数据点变得更分散时,自作用开始抵消交叉作用,Energy Distance 趋向于零。

打开网易新闻 查看精彩图片

Energy Distance 解读

单独看 Energy Distance 的数值意义不大,通常需要配合置换检验来判断观测到的数值:即从原始样本计算得到的 Energy Distance,是否反映了两个分布之间具有统计意义的差异。

置换检验的零假设是 X 和 Y 来自同一分布(F=G)。操作上,将两组样本合并后随机重新分配组标签,保持原始样本量不变,反复计算 Energy Distance,由此构建零假设下的经验分布。p 值等于置换统计量超过观测统计量的比例。

打开网易新闻 查看精彩图片

置换检验的结果未检测到训练集与测试集之间存在整体性的分布偏移,无证据表明发生了全局协变量偏移。但这不等于排除了局部外推的可能:特征空间中稀疏及尾部区域仍需额外检查。

总结

Energy Distance 是一种基于度量的统计工具,适用于衡量两个多元分布的差异程度。数据漂移检测、A/B 测试中的样本一致性验证、不同群体间的分布比较——只要涉及"两组多元数据是否来自同一分布"的判断,它都能派上用场。

相比逐变量的单维度检验,Energy Distance 的优势在于能够捕捉变量间联合关系的变化,而不仅仅是边缘分布的偏移。配合置换检验,可以得到具有统计意义的推断结论,而非停留在视觉直觉上。

不过也需要注意它的边界。Energy Distance 检测的是全局性的分布差异,对于局部区域——特别是特征空间中样本稀疏的尾部——敏感度有限。高维场景下,欧几里得距离本身的区分能力会随维度增加而衰减,这一点同样会影响 Energy Distance 的表现。在实际使用中,结合局部密度估计或分区域检验等方法做补充验证是更稳妥的做法。

https://avoid.overfit.cn/post/7e479c1020bb4a25ab533c7cc4761894

by Inno Tanaya