Help us understand the problem. What is going on with this article?

Kaggleコンペの提出データをKernelから提出する

More than 1 year has passed since last update.

はじめに

Kaggleに参加して数週間。Kaggle内をさまよったり、Youtubeで入門動画をみたりして
どうやってコンペに参加するのか、コンペってそもそも何なのか?など調べた。

で、自分なりにKaggleのコンペにデータを提出する方法はいくらかあることまではわかった。
 1.Kaggleが提供するKernelでデータを作って提出する
 2.MyPCでデータを作って、提出する
 3.VPC(AWSやGCPなど)でデータを作って提出する。

最初は3.でしかデータ提出できないとおもってたけど、1.でも出せる方法を知り
これがやり方がわかるととても便利で使いやすいことがわかったのでメモに残す。

参考サイト

コンペのデータ提出にあたって参考にさせてもらいました。
https://note.mu/toshioakaneya/n/na582cb273153

前提

Kaggleに登録済みの人が前提です。
登録の仕方については別の記事を探してください。
まぁ。。。TOP画面行くと、登録の案内があり、そこでGoogleアカウントと連携するだけなのでそんなに難しくないですけど。

手順

  1. コンペに参加する
  2. KernelでNotebookを作成する
  3. Notebook上で提出データを作る
  4. 提出データをコンペに提出する

今回は、House Prices: Advanced Regression Techniques(https://www.kaggle.com/c/house-prices-advanced-regression-techniques)
を題材に説明。

1. コンペに参加する

お手本画像はすでに参加済みなので別物になっているけど
これから参加するコンペであれば「Join Competition」となっているのでクリック
キャプチャ_1.png

2. KernelでNotebookを作成する

コンペの説明画面に移る。
ここで[Kernel]タブをクリックし、[New Notebook]クリック
キャプチャ2_2.png

Notebookを選択。
キャプチャ3_1.png

Notebookの編集画面表示。
Notebookの名前はデフォルトだと適当な名前になるが、名前をクリックすると簡単に編集できる。
NotebookのつくりはJyupiterNotebookと一緒なので細かい説明は割愛。
右側のペインはNotebookの実行環境・性能を表示しているのでまぁ参考までに。
キャプチャ4.PNG

デフォルトで書かれているScriptをクリックすると、
ディレクトリ構造を表示してくれる。inputディレクトリにコンペのテストデータ類が
予め取り込まれた状態になっている。親切。
キャプチャ5_1.png

3. Notebook上で提出データを作る

コンペ次第だとは思うけど、今回題材にした「House Prices: Advanced Regression Techniques」では
inpuディレクトリに提出データのお手本がある。
すごい強引だけどこれを提出データとして提出する。
普通の試験だとシバかれるけどKaggle的には全く問題なし。懐が深い。

お手本データをそのまま提出データにするスクリプトがコチラ

#ファイルの読み出し
submission = pd.read_csv('../input/sample_submission.csv')
#ファイルの書き出し
submission.to_csv('submission.csv', index=False)

やってることは、ファイルのコピーでも十分なんだけど
一応、データ提出を想定したお手本なので、学習モデルを使って提出データを作って
それをコンペの提出データ用にcsv形式で出力した、という流れをイメージして
to_csv()メソッドを使っている(つもり)

キャプチャ6_1.png

できたかどうか見てみよう。ってことで確認スクリプトを実行

for dirname, _, filenames in os.walk('./'):
    for filename in filenames:
        print(os.path.join(dirname, filename))

これはカレントディレクトリ上のファイルを確認してる。
さっきCSV出力した提出データはここに置かれていることがわかる。
ちなみにこの場所にファイルを置いてないと、このあとの提出画面で提出データを認識してくれないっぽい。

キャプチャ7_1.png

4. 提出データをコンペに提出する

ようやく念願のデータ提出。作っただけだとダメでちゃんとCommitする。

キャプチャ7_2.png

Commitがおわったら、こんな感じになるので「Open Version」でNotebookのTOPへ移動する。
もちろん「return to editor」を教えて別ルートからNotebookのTOPへ移動してもOK
キャプチャ8_1.png

左ペインのOutputをクリック
キャプチャ9_1.png

Output欄にジャンプする。
Output Filesの箇所に先ほど作成したsubmission.csvがあり、「Submit to Competition」が
アクティブ化しているのでコイツをクリック。
キャプチャ10_1.png

これで提出完了。
赤丸部をクリックすると、自分の順位の箇所へジャンプする。
キャプチャ11_1.png

今回の例はお試しということもあり自己ベストを越えなかったこともありちょっと出るところが
思った場所に出なかったけど、こんな感じで自分のランキングの場所へ飛んでくれる。
キャプチャ12.PNG

~おしまい~

watyanabe164
会社ではインフラエンジニアやってます。一方プライベートではAIの可能性に感化されて趣味でpythonでAI関連のプログラムを試したり、そのほか興味の赴くままに様々な技術を試して楽しんでます。シンギュラリティが楽しみで仕方ない。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away