leakって何?

質問ありがとうございます。以下回答したいと思います。
なお、私も初心者なので正確かどうかは自信はありません。
特に1.の質問については、kaggleにまとまったページがあるので、そこを見ると良いと思います。

kaggleのページ→https://www.kaggle.com/docs/competitions#leakage

1.leakとは何ですか?

上のkaggleのページによると

Data Leakage is the presence of unexpected additional information in the training data, allowing a model or machine learning algorithm to make unrealistically good predictions.

と書いています。

直訳すると、「リークは、トレーニングデータに予期しない追加情報があることにより、非現実的な良い予測をすること」となります。

これを含めて、現実にはできない予測をすることを「リーク」と言っているんだと思いますし、自分がモデルを作ったときに、テストデータの情報をトレーニングデータに使うことなどもリークと言っているのだと思います。

今回のコンペですと、トレーニングデータを並び替えることにより、targetの値がわかってしまうのがリークでしたし、テストデータについても同様でした。

2.全てのコンペにleakは存在するのでしょうか?

ほぼleakがないコンペから、今回のほぼleakで勝負が決まるsantanderコンペのように、色々なコンペがあるのだと思います。

ちょっとどれくらいの割合なのかはわからないです。

3.(2がもしNoなら)leakがあるコンペはないコンペと比べて別物と扱ったほうがいいですか?

自分がコンペに取り組むとして、そのコンペのリークの有無、またリークの大きさは終わってもわからないので、どこかでふんぎりをつけるしかないと思います。

santanderコンペの場合には、中盤でリークがあることがディスカッションで大々的に有志により周知され、スコアに効くことがわかったので、私はリークをみつけることを1番の主眼におくことにしました。

通常の他のコンペだと、リークがあるかどうかは、わからないので、リークがあるかどうかは通常の分析をしながら模索することになるのだと思います。

なので回答としては

・別物として扱うことは難しくリークがあるかどうかを模索することになる

・一旦リークがみつかると、そのリークをどれだけ大きなものか決断を迫られる(無視する、モデルに多少組み込む、リークに特化するなど)

なお、私は未だに、santanderコンペは、他にもリークがあるのではないかと考えているのですが、真実はわかりません。


Kaggleの楽しいところは、与えられたデータを自由に分析できることですね。

ルールで禁止されていない限りは、どんな分析をしても大丈夫なので、他の人が思いつかないような、オリジナルな分析ができると最高だと思います。

質問の回答としては、非現実的であろうがなんだろうが、書いてあるルールに反さない限り大丈夫です!


終わりに

質問ありがとうございました。

今後とも、以下から質問お願いします。


コメントお待ちしています。匿名の質問はマシュマロから→https://marshmallow-qa.com/currypurin