カレーちゃんブログ

Kaggleや競技プログラミングなどのこと

kaggle-apiというKaggle公式のapiの使い方をまとめます

いつものように、Kaggleのtitanicのページをみていたら、以下のような表示があって、驚きました。
Kaggle公式のapiがベータ版でリリースされていたとのこと。
簡単に、データをダウンロードしたり、サブミットしたり、コンペ一覧を取得したりすることができてとても便利です。
使い方をまとめます。

f:id:currypurin:20180311011916j:plain
最近追加されたと思われる記載

使い方

使い方は、公式のgithubである、GitHub - Kaggle/kaggle-api: Official Kaggle APIに書いてあり、使用例も含めてよくまとまっています。
公式は英語なので、わかりにくという方むけに、日本語で使い方をまとめます。

  1. pip install kaggle でインストール
  2. 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.と表示される。) f:id:currypurin:20180311004605p:plain
  3. 取得したjsonファイルを、~/.kaggle/kaggle.jsonに移動させる。(ウィンドウズだとC:\Users\<Windows-username>.kaggle\kaggle.json、マックだと/Users//.kaggle/kaggle.json)
  4. 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を知った時の驚き

まとめ

データのダウンロードやサブミットなど、これまで手動でやっていたので、apiが使えることになったことで、少しだけ時間が節約できそうです。 サブミットの一覧を取得するのも、便利そうです。

更新履歴

2018.5.26 kaggleコマンドについて更に詳しく説明を追加
2018.5.26 google colaboratoryでkaggle apiを使うを追加
2019.9.5 Kaggle apiとPythonを使って、サブミットをする方法へのリンクを追加


  1. <username>には、kaggleでのusernameをいれます。