データリーケージ:機械学習の落とし穴
データリーケージとは、機械学習のモデルを作る段階で、本来使ってはいけない情報が、水道の配管から水が漏れるように、こっそりと紛れ込んでしまう現象のことです。まるで未来を予知するかのように見えるモデルが作られてしまうことがありますが、これは実際には使えない情報に基づいているため、実用化の段階で予測精度が大きく下がってしまいます。これは、まるで砂上の楼閣のように、一見立派に見えても、実際には脆く崩れやすいものと言えるでしょう。
例えば、ある商品の売れ行きを予測するモデルを作るとしましょう。この時、顧客が商品を買った後に集まる情報、例えば、買った後に答えてもらう満足度調査の結果などを、うっかり学習データに混ぜてしまうと、モデルは非常に高い精度で売れ行きを予測できるように見えてしまいます。買った後に得られるはずの満足度情報が、まるで商品を買う前から分かっていたかのように扱われてしまうからです。しかし、現実の世界では、商品を買う前に満足度を知ることはできません。そのため、このモデルは一見素晴らしい性能を示すにもかかわらず、実際に使ってみると全く役に立たないという結果になってしまいます。
また、別の例として、病気の診断モデルを考えてみましょう。患者の検査データから病気を診断するモデルを作る際、将来行われる手術の結果をうっかり学習データに含めてしまうと、どうなるでしょうか。モデルは非常に高い精度で病気を診断できるように見えますが、これは手術の結果という未来の情報を使ってしまっているためです。現実には、診断の時点で手術の結果を知ることは不可能です。このように、未来の情報が紛れ込むことで、モデルはあたかも超能力を持っているかのような錯覚を起こさせますが、これは現実にはあり得ない情報に基づいた予測です。
このようなデータリーケージを防ぐためには、データの収集方法や前処理の方法を注意深く見直すことが重要です。どのような情報が、どのような順番で得られるのかをきちんと把握し、使ってはいけない情報をモデルに与えないように気を付けなければなりません。また、モデルの精度検証も慎重に行う必要があります。一見高い精度が出ているように見えても、それがデータリーケージによるものではないか、常に疑いの目を持ち、様々な角度から検証することが大切です。