kaggleみなさん楽しんでいますか??
今回は初心者の方向けにsubmit方法をいくつかまとめてみました。
初心者向け、csvをそのままsubmit

タイタニックコンペなどがそれにあたります。
テストデータのcsvがデータとして与えられて、その正解が何かだけが伏せられています。
public private両方のtestデータが手に入る
kaggleにはpublic scoreとprivate scoreという2種類のスコアがあります。
publicスコアはコンペ開催中に常にLeaderBoardに表示されるスコアで主にLBスコアと呼ばれます。
一方コンペ終了時に初めて公開されるスコアをPrivateスコアと言います。
この形式のコンペはテストデータが手に入った状態でpseudo labelingなど特殊な手法を用いやすいです。
結果がすぐ出る
予測するデータの量や評価指標にもよりますがsubmitした後の結果がすぐに出るのでPDCAが回しやすいことも特徴です。
初心者にはすごくわかりやすいのですが、testデータが既に手に入っていると言う状態が実践的な環境を遠ざけると言う観点から今後は少なくなっていくかもしれません。
最近の主流、コードコンペ

コードコンペ形式ではkaggleのnotebook自体を提出します。
コンペごとに計算時間の制約があるためそこだけ注意が必要です。
以下は最近のコンペMoAのCode Requirementsというページの抜粋です。
CPU Notebook <= 9 hours run-time
GPU Notebook <= 2 hours run-time
No internet access enabled
Freely & publicly available external data is allowed, including pre-trained models
Submission file must be named submission.csv
- notebookの総実行時間を9時間以内に
- GPUを利用しているのであれば総実行時間を2時間以内に
- インターネットの利用をしていない状態に
- 公開されているデータ及び訓練済みモデルを自由に利用していい
- 最後に必ずsubmissionファイルを提出する形式にすること
などが述べられています。
テストデータは基本的に公開されないものもあれば(キャッサバコンペなどがわかりやすくテストデータは1行のみです)、Jigsaw Multilingual Toxic Comment Classificationのようなコンペではコードコンペですがテストデータを公開しています。
最新の提出方法、Riiid
Riiidの提出方法はかなり特殊でテストデータが1セット(大体30〜50程度とされている)ずつどんどん出力されていくものでした。
つまりテストデータは完全に見えなくなっており、またどんどんと追加されたデータを新しく教師データとして利用できるかなり実戦形式に近い内容となっていました。
kaggleのMasterクラスの方から称賛がある一方、かなり初心者にとって難しい形式となったようです。
Riiid始めてからそもそもtest dataをユーザーが触れるっていうこと自体間違ってる、って思うようになってきた。予測は全部kaggle上で行うべきで、test dataは全く見られないようにするべき。
— mamas (@mamas16k) December 7, 2020
pandasのleft joinを300倍以上高速化したkaggle notebook。
結合するテーブルの結合キーがユニークである制約が必要なものの、軽く書き直すだけで300倍も早くなるとはすごい…!
concatのほうが速いのは直感的にわかるけどreindex知らなかったので勉強になりました。https://t.co/NFugt6Nisr pic.twitter.com/jcHK3T9ndo
— ML_Bear (@MLBear2) November 24, 2020
その他特殊な提出方法
採点形式
Acea Smart Water Analyticsはnotebookを採点すると言っています。まだ終わっていないコンペなので現状様子を見守っていますが、今までにないレアな形式です。
採点項目が13項目あり0~5点の点数を付けられる様です。
強化学習コンペ

ジャンケンコンペというコンペがあり、強化学習で育てたAI(強化学習の文脈ではよくエージェントとよく呼ばれます)を提出する方法です。
後はそのエージェントが戦ってくれるコンペです。
あまりないケースなので初心者は余程強い意思か興味がない限り手を出さない方が無難です。
いかがでしたでしょうか!個人的には今後もフェアで実践に近い方法が確立されていくことを祈ります。
よいkaggleライフを!

