いつものように、Kaggleのtitanicのページをみていたら、以下のような表示があって、驚きました。
Kaggle公式のapiがベータ版でリリースされていたとのこと。
簡単に、データをダウンロードしたり、サブミットしたり、コンペ一覧を取得したりすることができてとても便利です。
使い方をまとめます。
使い方
使い方は、公式のgithubである、GitHub - Kaggle/kaggle-api: Official Kaggle APIに書いてあり、使用例も含めてよくまとまっています。
公式は英語なので、わかりにくという方むけに、日本語で使い方をまとめます。
- pip install kaggle でインストール
- Kaggleのuser profileのページ(https://www.kaggle.com/ <username> 1/account) に移動し、
Create API Token
をクリックし、jsonファイルを取得(API Tokenが有効になるとEnsure kaggle.json is in the location ~/.kaggle/kaggle.json to use the API.と表示される。) - 取得したjsonファイルを、~/.kaggle/kaggle.jsonに移動させる。(ウィンドウズだとC:\Users\<Windows-username>.kaggle\kaggle.json、マックだと/Users/
/.kaggle/kaggle.json) - kaggle.jsonのパーミッションを600にする。(UNIX系だと、chmod 600 ~/.kaggle/kaggle.json) 以上で、kaggleコマンドが使えるようになります。
kaggleコマンド
kaggle -h
と後ろに-hをつけてやると、次のようにhelpが表示されるので、helpを見ながら使えばそんなに困らない感じです。
$ kaggle -h commands: {competitions,datasets,config} Use one of: competitions {list, files, download, submit, submissions} datasets {list, files, download} config {path}
上のように、kaggleの次にくるコマンドは、competitions datasets configがあると表示されます。
また、kaggle competitions -h
とすると次のようにkaggle competitionsのヘルプが表示されます。
$ kaggle competitions -h usage: kaggle competitions [-h] {list,files,download,submit,submissions} ... optional arguments: -h, --help show this help message and exit commands: {list,files,download,submit,submissions}
これは、conpetitionsの後には、list,files,download,submit,submissonsのいずれかのコマンドを入力することができる。
-h,または--helpで、ヘルプを表示させることができるという意味です。
kaggle competitions download -h
でデータをダウンロードするコマンドのヘルプを見ることができます。
-c COMPETITION, --competition COMPETITION competition URL suffix (use "kaggle competitions list" to show options) optional arguments: -h, --help show this help message and exit -f FILE, --file FILE file name, all files downloaded if not provided (use "kaggle competitions files -c <competition>" to show options) -p PATH, --path PATH folder where file(s) will be downloaded, defaults to /Users/purin/.kaggle -w, --wp download to current working path -o, --force skip check whether local version of file is up to date, force file download -q, --quiet suppress printing information about download progress
'conpetitions download'の後ろに入力することができるコマンドが表示されました。
例えば、kaggle competitions download -c <コンペ名>
とすれば、ダウンロードすることができることがわかりました。
kaggleコマンドについて更に詳しく説明
competitions
competitionsは、コンペの一覧を取得したり、サブミットしたり、サブミットの一覧を表示したりするときに使います。
コマンド例 | 結果 |
---|---|
kaggle competitions list | コンペの一覧を取得 |
kaggle competitions files -c titanic | タイタニックコンペのデータサイズ等を表示 |
kaggle competitions files -c titanic | タイタニックコンペのデータサイズ等を表示 |
kaggle competitions download -c titanic | タイタニックコンペのデータをダウンロード |
kaggle competitions submit -c titanic -f pred.csv -m test | タイタニックコンペにpred.csvをサブミット。メッセージはtest |
kaggle competitions submissions -c titanic | タイタニックコンペの自分のサブミット一覧を表示 |
サブミットなどは、Pythonから使うと、例えばcvスコアを更新した場合に、サブミットを行うなどという条件を簡単に書けるのでとても便利です。
Pythonから使う場合は、from kaggle.api.kaggle_api_extended import KaggleApi
というように、import して使います。
詳しい使い方は別記事にまとめました。
datasets
datasetsは、kaggleのデータセットのデータを探したり、ダウンロードするときに使います。
config
configは、フォルダの設定に使います。
google colaboratoryでkaggle apiを使う
google colaboratoryでもkaggle apiを使って、データのダウンロードをすることができます。 【Pythonメモ】Google ColaboratoryでKaggle APIを使うおまじないコード&作法 - Qiitaにわかりやすい使い方の説明があります。
kaggle-apiを知った時の驚き
Kaggle公式のapiできていたのか。まだβ版だけど。
— カレーちゃん (@currypurin) 2018年3月10日
コンペの一覧が取得できたり、データのダウンロード、サブミットができたり結構使えそう。
後でまとめてブログ書くか。技術書典の本にもワンチャンかけるかも。https://t.co/qOFL5GwBfE
まとめ
データのダウンロードやサブミットなど、これまで手動でやっていたので、apiが使えることになったことで、少しだけ時間が節約できそうです。 サブミットの一覧を取得するのも、便利そうです。
更新履歴
2018.5.26 kaggleコマンドについて更に詳しく説明を追加
2018.5.26 google colaboratoryでkaggle apiを使うを追加
2019.9.5 Kaggle apiとPythonを使って、サブミットをする方法へのリンクを追加
-
<username>には、kaggleでのusernameをいれます。↩