【論文レベルで理解しよう!】
欠測値処理編
株式会社ARISE analytics
MS Div. Service Growth Unit auCL UX Team 田中卓磨
©2023 ARISE analytics Reserved.
2023/09/01
目次
©2023 ARISE analytics Reserved.
👹:余裕があれば聞いてほしい
1
2
4
5
論文紹介
欠測値補完まとめ
欠測への対応一覧
欠測値補完の比較検証
3 欠測値を含む回帰問題の性質👹
論文紹介
©2023 ARISE analytics Reserved.
論文紹介
©2023 ARISE analytics Reserved. 3
業務上欠測値を扱うことが多いため、その扱いに関する論文をNeurIPSから紹介。
論文情報
著者:Marine Le Morvan, Julie Josse, Erwan Scornet, Gaël Varoquaux.
題目:What’s a good imputation to predict with missing values?
出典:35th Conference on Neural Information Processing Systems (NeurIPS 2021)
概要:欠測値を含む回帰はどのように扱えば良い結果が得られるのか。本論文では Impute-then-regress
によってベイズ最適を得られることを示す。ただ補完方法によって回帰の難しさが変動するので、
補完と回帰を同時に行う NeuMiss という手法が欠測値を含む回帰に効果的だと提案している。
紹介理由
実務上のデータの欠測値が多すぎるが、そのデータを使って機械学習をやる必要がある。
→ 欠測値の処理に関する論文を読もう。
欠測への対応一覧
©2023 ARISE analytics Reserved.
欠測データの対処法
©2023 ARISE analytics Reserved. 5
欠測データへの対処法について様々なものがあるので紹介する。後ほど性能を比較する。
⚫ 欠測データの除去 (論文に未記載のため、今回比較に含めない)
• 欠測が1つでもあるデータを省く。データの分布に影響を与えるのでよくない。
⚫ 平均値による欠測値補完
• 欠測値を観測値の平均値で補完する。データの分布に影響を与えるのでよくない。
⚫ GBDT/RandomForest での欠測対応
• 欠測値をそのまま特別扱いする。詳細は次ページ。
⚫ EMアルゴリズムでの最尤推定 (論文に未記載のため、今回比較に含めない)
• 観測値からなる尤度を計算し、尤度をもとに回帰を行う。
⚫ MICEによる欠測値補完
• 回帰代入法を繰り返し適用することで欠測値を補完する。詳細は次ページ以降。
⚫ NeuMiss での欠測補完と回帰の同時実行 ←今回推奨
• ニューラルネットワークを用いて欠測値の補完と回帰の学習を同時に行う。詳細は次ページ以降。
GBDT/RandomForestの欠測対応
©2023 ARISE analytics Reserved. 6
GBDT(勾配ブースティング)系モデルにNaNが入るのってナンでなん? - Qiita
木の成長の際に分割点と欠測値の分け方を全通り試し、lossが最小となる選択をする。
• SklearnもLightGBMも
XGBoostも同様の欠測
値処理を行っている。
• カテゴリ変数の場合はあ
るカテゴリであるかどうかの
Yes or Noで分岐する
が、欠測値は必ず No
に振り分けられる。
備考
X=2.0
Y=3.0
X=4.0
Y=4.0
X=8.0
Y=1.0
X=NA
Y=2.0
非欠測データ 欠測データ
X=NA
Y=6.0
分割点 x NAの左右分けを全通り試す
X=2.0
Y=3.0
X=4.0
Y=4.0
X=8.0
Y=1.0
X=NA
Y=2.0
X=NA
Y=6.0
分割点=3, NA=右
分割点=3
X=2.0
Y=3.0
X=4.0
Y=4.0
X=8.0
Y=1.0
X=NA
Y=2.0
X=NA
Y=6.0
分割点=3
Loss: 14.8
Loss: 14.75
分割点=3, NA=左
Loss: 13.17
…
全通りから最小のlossを選択
MICE詳細説明
©2023 ARISE analytics Reserved. 7
多重代入法(2):データの欠測に補完値を代入する(miceパッケージ)
[R] - ねこすたっと (hatenablog.jp)
欠測値に適当な初期値を与え、回帰代入法による各特徴量への補完を繰り返す手法
• 実装上では
sklearn.impute.Iter
ativeImputerを使えば
簡単に行える。
• 本論文では欠測値の回
帰代入法に線形回帰を
用いているが、もっと表現
力の高いモデルを用いて
もよい。
備考
適当な初期値を代入
欠測箇所をもとに戻す
回帰により欠測補完
回帰により欠測補完
回帰により欠測補完
欠測箇所をもとに戻す
NeuMiss詳細説明
©2023 ARISE analytics Reserved. 8
NeuMiss networks: differentiable programming for
supervised learning with missing values. (neurips.cc)
ニューラルネットワークを用いて、欠測値補完と回帰を同時に行う手法
変数Xがガウス分布に従うとき、観測値 𝑋𝑜𝑏𝑠 が与えられたときの欠測値 𝑋𝑚𝑖𝑠の期待値
𝐸 𝑋𝑚𝑖𝑠|𝑋𝑜𝑏𝑠 = 𝜇𝑚𝑖𝑠 + Σ𝑚𝑖𝑠,𝑜𝑏𝑠 Σ𝑜𝑏𝑠
−1
𝑋𝑜𝑏𝑠 − 𝜇𝑜𝑏𝑠
漸化式 𝑆(𝑛+1)
= 𝐼 − Σ𝑜𝑏𝑠 𝑆(𝑛)
+ 𝐼 の極限 lim
𝑛→∞
𝑆(𝑛)
= Σ𝑜𝑏𝑠
−1
より、
モデルとして、ガウス分布を仮定した欠測値補完を含んでいる。(重みが青の場合)
𝜇𝑚𝑖𝑠
𝑋𝑜𝑏𝑠 − 𝜇𝑜𝑏𝑠
Σ𝑜𝑏𝑠
−1 𝑋𝑜𝑏𝑠 − 𝜇𝑜𝑏𝑠
𝑋𝑜𝑏𝑠
𝑚 : 𝑥𝑗 が欠測のとき 𝑚𝑗 = 1 、観測のとき 𝑚𝑗 = 0
𝑋𝑜𝑏𝑠
𝜇𝑜𝑏𝑠
欠測値を含む回帰問題の性質👹
©2023 ARISE analytics Reserved.
問題設定
©2023 ARISE analytics Reserved. 10
説明変数に欠測値を含んだ回帰問題を考える。
• データ生成仮定:完全データ 𝑋 ∈ ℝ𝑑 と真の回帰関数 𝑓∗:ℝ𝑑 → ℝ とランダムノイズ 𝜖 ∈ ℝ から構成
𝑌 = 𝑓∗ 𝑋 + 𝜖, 𝔼 𝜖 𝑋𝑜𝑏𝑠(𝑀),𝑀 = 0
• データ欠測:欠測指示ベクトル 𝑀 ∈ 0,1 𝑑 により、欠測データ ෨
𝑋 ∈ ℝ ∪ 𝑁𝐴 𝑑 が生成
෨
𝑋𝑗 = ൝
𝑋𝑗, 𝑀𝑗 = 0
𝑁𝐴, 𝑀𝑗 = 1
• 欠測を含む回帰の評価(リスク)
上記のリスクを最小にする関数 ሚ
𝑓∗
: ℝ ∪ 𝑁𝐴 𝑑
→ ℝ をベイズ予測器と呼び、
ベイズ予測器のリスクと同等のリスクを達成する関数 𝑓: ℝ ∪ 𝑁𝐴 𝑑
→ ℝ をベイズ最適と呼ぶ。
ベイズ最適を得るにはどうすれば良いか考える。
Impute-then-regress
©2023 ARISE analytics Reserved. 11
一般的には欠測値を補完したのちに回帰問題を解くことが行われる。
(論文中では Impute-then-regress と呼ぶ)
欠測補完関数 Φ と回帰関数 𝑔の合成関数である𝑔 ∘ Φ(⋯ )を欠測を含む回帰関数として用いる
また、欠測補完関数 Φ ∈ ℱ𝐼
に対してリスクを最小にする回帰関数を 𝑔Φ
∗
とする。
平均値補完・MICE・NeuMissなどが
これに該当する。
Impute-then-regress 𝒈𝚽
∗
∘ 𝚽 はベイズ最適を達成することができるのか。
(できるとすればどのような条件があるのか)
観測値ならそのまま
欠測値なら観測値からデータ補完
論文の主張
©2023 ARISE analytics Reserved. 12
補完関数と回帰関数の関係性として、その組合せによりベイズ最適が得られること、どちら
か一方が完璧だと、もう片方は学習困難なものとなることが示された。
補完と回帰を同時に学習し、両者の塩梅を上手くとれる NeuMiss は強い
どんな補間関数Φならいいの?
どんな補間関数Φならいいの?
• ほとんどすべての無限回微分可能な補完関数 Φ に対して、𝑔𝛷
∗
∘ Φ はベイズ最適
→ どんな補完でも最適な回帰は理論上可能
でもそれって実用上学習困難(不連続)だったりしないの?
どんな補間関数Φならいいの?
• 補完関数として条件付き期待値を完璧に表せたとしても、真の回帰関数 𝑓∗
を適用してベイズ最適となるとは
限らない。またそうならない場合、不連続関数を回帰に用いるとベイズ最適になる。(不連続関数は学習困難)
→ 補完が完璧すぎると、回帰が難しい
• 逆に真の回帰関数 𝑓∗
を適用してベイズ最適を目指すとき、補完関数 Φ は不連続となることも
→ 回帰が完璧でも、補完がうまくいくとは限らない
欠測値補完の比較検証
©2023 ARISE analytics Reserved.
豆知識:欠測メカニズムの種類
©2023 ARISE analytics Reserved. 14
欠測は、そのメカニズムから、MCAR・MAR・MNARの3種類に分けられる。
MCAR・MARは統計的手法を用いた欠測値補完が比較的容易だが、
MNARは一般的にメカニズムを知り、その専用の補完モデルを作成する必要がある。
• Missing Completely At Random (MCAR)
• 完全にランダムに欠測が発生している。データの値に全く依存しない。
• Ex) 機械のバグで実験の測定値が欠測する。
• Missing At Random (MAR)
• 観測されているデータの値にのみ依存して確率的に欠測する。
• Ex) グレードが高い社員ほどアンケートの欠測率が小さくなる。
• Missing Not At Random (MNAR)
• 欠測したデータの値に依存して確率的に欠測する。
• Ex) 年収が低い社員ほど年収の公開せず欠測率が大きくなる。
欠測値補完
難易度
易
難
欠測を含む回帰の精度比較実験
©2023 ARISE analytics Reserved. 15
① 完璧な補完関数と真の回帰関数を繋げた
としても、非線形性が高く、変数間の相関
が低い場合は、回帰に失敗する
② 完璧な補完関数を使った連続関数での回
帰はベイズ最適にならない
③ マスク情報を入れることはMNARのとき有効
である。→ 「欠測した」という情報が大事
④ Oracleを用いない手法の中でNeuMiss
が一番精度が良い
• Maskとは回帰の説明変数Xに欠測か否か
の0/1(M)情報を入れること
• Oracle: データの生成仮定などの実際には
本来利用できない情報。およびそれを用い
た理論上最適な予測器のこと。
考察
①
③
②
④
④
②
①
真の回帰関数 𝑓∗
𝑋 = ℎ∗
(𝛽𝑇
𝑋 + 𝛽0) や説明変数の相関、欠測メカニズムを変えて各手法で回帰を行い、
ベイズ最適との差を確かめる。
まとめ
©2023 ARISE analytics Reserved.
まとめ
©2023 ARISE analytics Reserved. 17
• Impute-then-regress は欠測メカニズムに関わらず、欠測を含む回帰
に効果的な手法である。しかし、補完関数によって、学習の難しさが変わっ
てしまうため、データに適した補完を行うことが重要。
• 補完と回帰を同時に行うニューラルネットワークを用いた手法 NeuMiss は
GBDTや他の補完法と比較して良い精度が得られる。
• GBDT < 平均値補完+mask+NN < MICE+mask+NN < NeuMiss
欠測値は無下に扱わず、補完は適切に行うことが大切。
ここで紹介できなかったEMアルゴリズムでの最尤推定や多重代入法といった別のアプローチや、
生存時間分析での欠測処理(カプランマイヤー法)など、欠測処理は学ぶことが多い。
Best Partner for innovation, Best Creator for the future.

【論文レベルで理解しよう!】​ 欠測値処理編​

  • 1.
    【論文レベルで理解しよう!】 欠測値処理編 株式会社ARISE analytics MS Div.Service Growth Unit auCL UX Team 田中卓磨 ©2023 ARISE analytics Reserved. 2023/09/01
  • 2.
    目次 ©2023 ARISE analyticsReserved. 👹:余裕があれば聞いてほしい 1 2 4 5 論文紹介 欠測値補完まとめ 欠測への対応一覧 欠測値補完の比較検証 3 欠測値を含む回帰問題の性質👹
  • 3.
  • 4.
    論文紹介 ©2023 ARISE analyticsReserved. 3 業務上欠測値を扱うことが多いため、その扱いに関する論文をNeurIPSから紹介。 論文情報 著者:Marine Le Morvan, Julie Josse, Erwan Scornet, Gaël Varoquaux. 題目:What’s a good imputation to predict with missing values? 出典:35th Conference on Neural Information Processing Systems (NeurIPS 2021) 概要:欠測値を含む回帰はどのように扱えば良い結果が得られるのか。本論文では Impute-then-regress によってベイズ最適を得られることを示す。ただ補完方法によって回帰の難しさが変動するので、 補完と回帰を同時に行う NeuMiss という手法が欠測値を含む回帰に効果的だと提案している。 紹介理由 実務上のデータの欠測値が多すぎるが、そのデータを使って機械学習をやる必要がある。 → 欠測値の処理に関する論文を読もう。
  • 5.
  • 6.
    欠測データの対処法 ©2023 ARISE analyticsReserved. 5 欠測データへの対処法について様々なものがあるので紹介する。後ほど性能を比較する。 ⚫ 欠測データの除去 (論文に未記載のため、今回比較に含めない) • 欠測が1つでもあるデータを省く。データの分布に影響を与えるのでよくない。 ⚫ 平均値による欠測値補完 • 欠測値を観測値の平均値で補完する。データの分布に影響を与えるのでよくない。 ⚫ GBDT/RandomForest での欠測対応 • 欠測値をそのまま特別扱いする。詳細は次ページ。 ⚫ EMアルゴリズムでの最尤推定 (論文に未記載のため、今回比較に含めない) • 観測値からなる尤度を計算し、尤度をもとに回帰を行う。 ⚫ MICEによる欠測値補完 • 回帰代入法を繰り返し適用することで欠測値を補完する。詳細は次ページ以降。 ⚫ NeuMiss での欠測補完と回帰の同時実行 ←今回推奨 • ニューラルネットワークを用いて欠測値の補完と回帰の学習を同時に行う。詳細は次ページ以降。
  • 7.
    GBDT/RandomForestの欠測対応 ©2023 ARISE analyticsReserved. 6 GBDT(勾配ブースティング)系モデルにNaNが入るのってナンでなん? - Qiita 木の成長の際に分割点と欠測値の分け方を全通り試し、lossが最小となる選択をする。 • SklearnもLightGBMも XGBoostも同様の欠測 値処理を行っている。 • カテゴリ変数の場合はあ るカテゴリであるかどうかの Yes or Noで分岐する が、欠測値は必ず No に振り分けられる。 備考 X=2.0 Y=3.0 X=4.0 Y=4.0 X=8.0 Y=1.0 X=NA Y=2.0 非欠測データ 欠測データ X=NA Y=6.0 分割点 x NAの左右分けを全通り試す X=2.0 Y=3.0 X=4.0 Y=4.0 X=8.0 Y=1.0 X=NA Y=2.0 X=NA Y=6.0 分割点=3, NA=右 分割点=3 X=2.0 Y=3.0 X=4.0 Y=4.0 X=8.0 Y=1.0 X=NA Y=2.0 X=NA Y=6.0 分割点=3 Loss: 14.8 Loss: 14.75 分割点=3, NA=左 Loss: 13.17 … 全通りから最小のlossを選択
  • 8.
    MICE詳細説明 ©2023 ARISE analyticsReserved. 7 多重代入法(2):データの欠測に補完値を代入する(miceパッケージ) [R] - ねこすたっと (hatenablog.jp) 欠測値に適当な初期値を与え、回帰代入法による各特徴量への補完を繰り返す手法 • 実装上では sklearn.impute.Iter ativeImputerを使えば 簡単に行える。 • 本論文では欠測値の回 帰代入法に線形回帰を 用いているが、もっと表現 力の高いモデルを用いて もよい。 備考 適当な初期値を代入 欠測箇所をもとに戻す 回帰により欠測補完 回帰により欠測補完 回帰により欠測補完 欠測箇所をもとに戻す
  • 9.
    NeuMiss詳細説明 ©2023 ARISE analyticsReserved. 8 NeuMiss networks: differentiable programming for supervised learning with missing values. (neurips.cc) ニューラルネットワークを用いて、欠測値補完と回帰を同時に行う手法 変数Xがガウス分布に従うとき、観測値 𝑋𝑜𝑏𝑠 が与えられたときの欠測値 𝑋𝑚𝑖𝑠の期待値 𝐸 𝑋𝑚𝑖𝑠|𝑋𝑜𝑏𝑠 = 𝜇𝑚𝑖𝑠 + Σ𝑚𝑖𝑠,𝑜𝑏𝑠 Σ𝑜𝑏𝑠 −1 𝑋𝑜𝑏𝑠 − 𝜇𝑜𝑏𝑠 漸化式 𝑆(𝑛+1) = 𝐼 − Σ𝑜𝑏𝑠 𝑆(𝑛) + 𝐼 の極限 lim 𝑛→∞ 𝑆(𝑛) = Σ𝑜𝑏𝑠 −1 より、 モデルとして、ガウス分布を仮定した欠測値補完を含んでいる。(重みが青の場合) 𝜇𝑚𝑖𝑠 𝑋𝑜𝑏𝑠 − 𝜇𝑜𝑏𝑠 Σ𝑜𝑏𝑠 −1 𝑋𝑜𝑏𝑠 − 𝜇𝑜𝑏𝑠 𝑋𝑜𝑏𝑠 𝑚 : 𝑥𝑗 が欠測のとき 𝑚𝑗 = 1 、観測のとき 𝑚𝑗 = 0 𝑋𝑜𝑏𝑠 𝜇𝑜𝑏𝑠
  • 10.
  • 11.
    問題設定 ©2023 ARISE analyticsReserved. 10 説明変数に欠測値を含んだ回帰問題を考える。 • データ生成仮定:完全データ 𝑋 ∈ ℝ𝑑 と真の回帰関数 𝑓∗:ℝ𝑑 → ℝ とランダムノイズ 𝜖 ∈ ℝ から構成 𝑌 = 𝑓∗ 𝑋 + 𝜖, 𝔼 𝜖 𝑋𝑜𝑏𝑠(𝑀),𝑀 = 0 • データ欠測:欠測指示ベクトル 𝑀 ∈ 0,1 𝑑 により、欠測データ ෨ 𝑋 ∈ ℝ ∪ 𝑁𝐴 𝑑 が生成 ෨ 𝑋𝑗 = ൝ 𝑋𝑗, 𝑀𝑗 = 0 𝑁𝐴, 𝑀𝑗 = 1 • 欠測を含む回帰の評価(リスク) 上記のリスクを最小にする関数 ሚ 𝑓∗ : ℝ ∪ 𝑁𝐴 𝑑 → ℝ をベイズ予測器と呼び、 ベイズ予測器のリスクと同等のリスクを達成する関数 𝑓: ℝ ∪ 𝑁𝐴 𝑑 → ℝ をベイズ最適と呼ぶ。 ベイズ最適を得るにはどうすれば良いか考える。
  • 12.
    Impute-then-regress ©2023 ARISE analyticsReserved. 11 一般的には欠測値を補完したのちに回帰問題を解くことが行われる。 (論文中では Impute-then-regress と呼ぶ) 欠測補完関数 Φ と回帰関数 𝑔の合成関数である𝑔 ∘ Φ(⋯ )を欠測を含む回帰関数として用いる また、欠測補完関数 Φ ∈ ℱ𝐼 に対してリスクを最小にする回帰関数を 𝑔Φ ∗ とする。 平均値補完・MICE・NeuMissなどが これに該当する。 Impute-then-regress 𝒈𝚽 ∗ ∘ 𝚽 はベイズ最適を達成することができるのか。 (できるとすればどのような条件があるのか) 観測値ならそのまま 欠測値なら観測値からデータ補完
  • 13.
    論文の主張 ©2023 ARISE analyticsReserved. 12 補完関数と回帰関数の関係性として、その組合せによりベイズ最適が得られること、どちら か一方が完璧だと、もう片方は学習困難なものとなることが示された。 補完と回帰を同時に学習し、両者の塩梅を上手くとれる NeuMiss は強い どんな補間関数Φならいいの? どんな補間関数Φならいいの? • ほとんどすべての無限回微分可能な補完関数 Φ に対して、𝑔𝛷 ∗ ∘ Φ はベイズ最適 → どんな補完でも最適な回帰は理論上可能 でもそれって実用上学習困難(不連続)だったりしないの? どんな補間関数Φならいいの? • 補完関数として条件付き期待値を完璧に表せたとしても、真の回帰関数 𝑓∗ を適用してベイズ最適となるとは 限らない。またそうならない場合、不連続関数を回帰に用いるとベイズ最適になる。(不連続関数は学習困難) → 補完が完璧すぎると、回帰が難しい • 逆に真の回帰関数 𝑓∗ を適用してベイズ最適を目指すとき、補完関数 Φ は不連続となることも → 回帰が完璧でも、補完がうまくいくとは限らない
  • 14.
  • 15.
    豆知識:欠測メカニズムの種類 ©2023 ARISE analyticsReserved. 14 欠測は、そのメカニズムから、MCAR・MAR・MNARの3種類に分けられる。 MCAR・MARは統計的手法を用いた欠測値補完が比較的容易だが、 MNARは一般的にメカニズムを知り、その専用の補完モデルを作成する必要がある。 • Missing Completely At Random (MCAR) • 完全にランダムに欠測が発生している。データの値に全く依存しない。 • Ex) 機械のバグで実験の測定値が欠測する。 • Missing At Random (MAR) • 観測されているデータの値にのみ依存して確率的に欠測する。 • Ex) グレードが高い社員ほどアンケートの欠測率が小さくなる。 • Missing Not At Random (MNAR) • 欠測したデータの値に依存して確率的に欠測する。 • Ex) 年収が低い社員ほど年収の公開せず欠測率が大きくなる。 欠測値補完 難易度 易 難
  • 16.
    欠測を含む回帰の精度比較実験 ©2023 ARISE analyticsReserved. 15 ① 完璧な補完関数と真の回帰関数を繋げた としても、非線形性が高く、変数間の相関 が低い場合は、回帰に失敗する ② 完璧な補完関数を使った連続関数での回 帰はベイズ最適にならない ③ マスク情報を入れることはMNARのとき有効 である。→ 「欠測した」という情報が大事 ④ Oracleを用いない手法の中でNeuMiss が一番精度が良い • Maskとは回帰の説明変数Xに欠測か否か の0/1(M)情報を入れること • Oracle: データの生成仮定などの実際には 本来利用できない情報。およびそれを用い た理論上最適な予測器のこと。 考察 ① ③ ② ④ ④ ② ① 真の回帰関数 𝑓∗ 𝑋 = ℎ∗ (𝛽𝑇 𝑋 + 𝛽0) や説明変数の相関、欠測メカニズムを変えて各手法で回帰を行い、 ベイズ最適との差を確かめる。
  • 17.
  • 18.
    まとめ ©2023 ARISE analyticsReserved. 17 • Impute-then-regress は欠測メカニズムに関わらず、欠測を含む回帰 に効果的な手法である。しかし、補完関数によって、学習の難しさが変わっ てしまうため、データに適した補完を行うことが重要。 • 補完と回帰を同時に行うニューラルネットワークを用いた手法 NeuMiss は GBDTや他の補完法と比較して良い精度が得られる。 • GBDT < 平均値補完+mask+NN < MICE+mask+NN < NeuMiss 欠測値は無下に扱わず、補完は適切に行うことが大切。 ここで紹介できなかったEMアルゴリズムでの最尤推定や多重代入法といった別のアプローチや、 生存時間分析での欠測処理(カプランマイヤー法)など、欠測処理は学ぶことが多い。
  • 19.
    Best Partner forinnovation, Best Creator for the future.