ColabでKaggleのAPIを呼んで学習データのダウンロードと提出を行う
machinelearningColabではランタイムがリセットされるたびにファイルが消えてしまうのでその度に学習データをアップロードするのが面倒。 そこで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).