訓練集和測試集如果來自不同的分布,會怎樣?
![]()
類似的問題不是沒遇到過只是語境不同,比如說模型上次構建以來是否發生了數據漂移?銷售分析中產品 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
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.