ColabでKaggleのAPIを呼んで学習データのダウンロードと提出を行う

(2019-07-09)

Colabではランタイムがリセットされるたびにファイルが消えてしまうのでその度に学習データをアップロードするのが面倒。 そこでKaggle APIでファイルを持ってきてついでに提出まで行う。

Notebookを公開することも考えてなるべく認証情報を直書きしたくないのでGoogle DriveをマウントしてそこからTokenを持ってくることにする。 KaggleのMy AccountからAPI Tokenを発行しGoogle Driveに上げておく。

from google.colab import drive
drive.mount('/content/gdrive')
! mkdir -p ~/.kaggle
! cp "gdrive/My Drive/kaggle/kaggle.json" ~/.kaggle/
! pip install kaggle --upgrade
! kaggle config view

competitions downloadでファイルをダウンロードしてくる。

! kaggle competitions download house-prices-advanced-regression-techniques -p house-prices

import pandas as pd
df_train = pd.read_csv('house-prices/train.csv')
df_test= pd.read_csv('house-prices/test.csv')

competitions submitで提出し、 competitions submissionsで提出履歴とスコアが見える。 リーダーボードはcompetitions leaderboardで取得できる。

! kaggle competitions submit house-prices-advanced-regression-techniques -f submit.csv -m "test submission"
! kaggle competitions submissions house-prices-advanced-regression-techniques
! kaggle competitions leaderboard --show house-prices-advanced-regression-techniques
fileName         date                 description                             status    publicScore  privateScore  
---------------  -------------------  --------------------------------------  --------  -----------  ------------  
submit.csv       2019-07-08 13:19:19  test submission                         complete  0.17933      None          
...

submitし過ぎると上限にひっかかる。

403 - Your team has used its submission allowance (10 of 10). This resets at midnight UTC (10 hours from now).