holdoutによるモデル選択について

複数の機械学習モデルからモデルを選択する際、訓練データセットを学習用と検証用にholdoutし、検証用データセットでのmetricsの値を参考にモデル選択を行うのは一般的な方法でしょう。要するに、以下のようにデータを分割し

学習用データセットで複数のモデルを学習させ、検証用データセットでmetricsの一番良いモデルを選択し、選択したモデルの評価をテストデータで行うという流れです。

ところで、訓練用データのholdoutによってモデル選択することにリスクはないのでしょうか。例えば次のようなシンプルな問題を考えてみると、このリスクを考えることが出来ます。

例題 : 10個の機械学習モデルM[1], ..., M[10]があって汎化誤差が1番小さいモデルをM[1]とします。M[2],...,M[10]の検証誤差がM[1]より小さくなる確率を0.05とし、各モデルの検証誤差は独立であるとしてよいとき、モデルM[1]が検証誤差最小になる確率はいくらでしょうか。

解答 : 約63%。なぜならM[1]がM[i] (i = 2, ..., 10)より検証誤差が大きくなる確率は0.95なので、同時に起こる確率は(0.95)⁹ ~ 0.63。

要するに37%で最良のモデルを見逃すことを意味しています。多重検定の際にもα-error 5%の検定を繰り返すと、全体的に見ればα-errorが上がってしまう問題は良く知られていますが、これと等価なわけです。モデル選択の際に訓練データで交差検証法を行うのは、このリスクを下げる役割があるわけですね。

おわりに

今回は少しテーマがあっさりしていたかもしれませんが、なにか示唆的なものを提供できていれば幸いです。ではでは、また今度。

サポートをいただいた場合、新たに記事を書く際に勉強する書籍や筆記用具などを買うお金に使おうと思いますm(_ _)m