publicLBとprivateLBの違い【今年中にKaggleでメダルを取る男】
「PythonではじめるKaggleスタートブック」で出てきたコードでわからなかったところを思考整理がてらここに記述していきます。
publicLBとprivateLB
Kaggleの順位表ではpublic Leaderborard(LB)とprivate Leaderborard(LB)があります。publicはテストデータの一部を分析したスコアで、privateは最終的順位表にのるLeaderboardです。つまり、publicのスコアよりもprivateのスコアが重要だと言うことです。
もしかしたらpublicLBでは過学習をしてめちゃめちゃいいスコアだったとしても、privateLBのスコアでは「全然よくなかった泣」みたいなことも起こりうるわけです。
そしてKaggleにはsubmitの回数に限度があるので、publicLBのスコアだけで判断するのは
- 回数制限もあるし、
- 信憑性が高いとは言い難い
という2点から、publicLBのスコアはあまり気にしすぎないのが得策です。
なのでそうならないように、学習用データセットを学習用と検証用で分割して、その中で何度も検証してスコアを上げていくのが良いです。検証用データセットをどのように作るのかによりますが、ブラックボックス化しているpublicLBよりも検証用データセットの方が信頼できそうです。
性能の検証には「ホールドアウト検証」や「Cross Validation(交差検証)」などがあります。
振り返り
今日は89ページから97ページまでやりました。なんか色々と内容が複雑になってきたように思います。いま〜な作業をするために〜をしていてみたいな、ゴールを把握しながら今やっていることを把握するみたいなことが、むずかしいですね。でも、とりあえずコードリーディングを丁寧にやってどうしてもわからないことは完璧主義にならず潔く、次のコードを読み進めるみたいなことが必要だなと感じます。そっちの方が、「わかったぞ!」みたいな状況になる時間が増えるので、学習も長続きしそうですしね。
わかんないことだらけでも、根気強く勉強していけばだんだんとわかってくるのかなと思っています。とりあえず継続あるのみですね!
Discussion