データセットシフト#

標準的な機械学習の問題設定ではtrainとtestあるいはserving(顧客に予測値を提供するときに使うデータ)のデータが独立に同一分布からサンプリングされていることを前提としている。

データセットシフトはそれらのデータ分布が違うケース

シフトの種類#

Covariate Shift(共変量シフト)#

train/testで共変量の周辺分布にシフトが生じているケース。

\[\begin{split} p_{tr}(x) \neq p_{te}(x) \\ p_{tr}(y|x) = p_{te}(y|x) \end{split}\]

Shimodaira (2000)で報告され、杉山や金森などの研究により尤度比(重要度)による重み付け学習が提案された

Target Shift / Label Shift#

train/testで目的変数の周辺分布にシフトが生じているケース。共変量シフトの逆

\[\begin{split} p_{tr}(y) \neq p_{te}(y) \\ p_{tr}(x|y) = p_{te}(x|y) \end{split}\]

Concept Shift#

train/testで目的変数の条件付き分布にシフトが生じているケース

\[\begin{split} p_{tr}(y|x) \neq p_{te}(y|x) \\ p_{tr}(x|y) \neq p_{te}(x|y) \end{split}\]

Domain Shift#

データを観測した環境や機材が異なることによるデータセットのシフト

例えば同じ物体を夜に撮影した画像データと昼に撮影した画像データなど

参考#