INPUTしたらOUTPUT!

忘れっぽいんでメモっとく

不均衡データの対応時における予測確率調整

不均衡データのクラス分類Python - 不均衡データにおけるsampling - Qiitaにあるように不均衡データへの対応としては

  • algorithm-level approaches
  • data-level approaches

の2つがある。

後者のように正例をオーバーサンプリングしたり負例をダウンサンプリングなどしてモデルを構築した場合、モデルから得られる予測確率は母集団の確率とは異なるので調整する必要がある。
が調整方法が分からなかったので調べたのでメモしとく。

以下参考。


ベイズの定理の復習

上記論文に

このうち,任意のプロファイルを持つ案件(例えば 前出の表2(e)列のような案件)に注目する.母集団からモデル構築標本の抽出率がブラック案件とホワイト案件でそれぞれq1xとq2xだったとすると,モデル構築標本のブラック率P'(x→)は母集団のブラック率P(x→) からベイズの定理を用いて次のように表される.

とあるので確率・統計 (17) ベイズの定理(Bayes' Theorem)を写経してベイズの定理の復習。


ある事象 B を前提条件として、その条件下で別の事象 A が起こる確率 P\left( A \mid B \right)

 \begin{align}
P\left( A \mid B \right) = \frac{ P\left( A \cap B \right) }{ P\left( B \right) }
\end{align}


同様に P\left( B \mid A \right)

 \begin{align}
P\left( B \mid A \right) = \frac{ P\left( A \cap B \right) }{ P\left( A \right) }
\end{align}


変形すると

 \begin{align}
P\left( A \cap B \right) =  P\left( B \mid A \right)P\left( A \right)
\end{align}


最初の式に代入すると

 \begin{align}
P\left( A \mid B \right) = \frac{ P\left( A \cap B \right) }{ P\left( B \right) } = \frac{ P\left( B \mid A \right)P\left( A \right) }{ P\left( B \right) }
\end{align}


事象複数事象 A_{i} \left( i=1,2,...\right)に分割されるとした場合、事象 Bは各 A_{i} \cap Bの和となるので

 \begin{align}
P\left(  B \right) = \sum_j {P \left( A_{j} \cap B \right)} = \sum_j { P\left( B \mid A_{j} \right)P\left( A_{j} \right) }
\end{align}


従って事象 Bを前提とした各事象 A_{i}の事後確率は

 \begin{align}
P\left( A_{i} \mid B \right) = \frac{ P\left( A_{i} \cap B \right) }{ P\left( B \right) } = \frac{ P\left( B \mid A_{i} \right)P\left(A_{i} \right) }{ \sum_j { P\left( B \mid A_{j} \right)P\left( A_{j} \right) } }
\end{align}


不均衡データの確率調整

次の図のように母集団が不均衡なデータからブラック・ホワイトの分類モデルを構築するために標本抽出したとする。


f:id:tak95:20150512205248p:plain

  • ブラックの抽出率 q_{1} = c_x / a_x
  • ホワイトの抽出率 q_{2} = d_x / b_x


 A_1 = ブラック, A_2 = ホワイト, B = 標本抽出としてベイズの定理に当てはめると、標本抽出されたという条件下のブラック率 P \left( ブラック \mid 標本抽出 \right) (=モデルから得られる確率)は以下のようになる。

 \begin{align}
P \left( ブラック \mid 標本抽出 \right) = \frac{ P\left( 標本抽出 \mid ブラック\right)  P\left(ブラック \right) }{ P\left( 標本抽出 \mid ブラック\right)  P\left(ブラック \right) + P\left( 標本抽出 \mid ホワイト\right)  P\left(ホワイト \right) }
\end{align}


 P\left( 標本抽出 \mid ブラック\right)はブラックという条件での標本抽出率なので q_1、同様に P\left( 標本抽出 \mid ホワイト \right) = q_2 P\left(ホワイト \right) = 1-P\left(ブラック \right)のため

 \begin{align}
P \left( ブラック \mid 標本抽出 \right) = \frac{ q_1  P\left(ブラック \right) }{ q_1  P\left(ブラック \right) + q_2\left(1-  P\left(ブラック \right) \right)}
\end{align}


母集団の確率を P\left( x \right)、標本抽出して構築したモデルから得られた予測確率を P'\left( x \right)とすると

 \begin{align}
P' \left( x \right) = \frac{ q_1  P\left(x \right) }{ q_1  P\left(x \right) + q_2\left(1-  P\left(x \right) \right)}
\end{align}

変形すると

 \begin{align}
P \left( x \right) = \frac{ q_2  P'\left(x \right) }{ q_2  P'\left(x \right) + q_1\left(1-  P'\left(x \right) \right)}
\end{align}

となるので抽出率が分かっていればモデルから得られる確率から母集団の確率を推計できる。


常識すぎるのかググり方が悪いのか、あまり情報が見当たらなかった。。。
アップサンプリングした場合は q_1 >1 になるけど問題ないかはよく分かってない。
詳しい人いらっしゃいましたらご指摘お願いします。m( )m