kaggle全力でやります

kaggle masterを目指してやったことを、記録します

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 タイタニックコンペの自分のサブミット一覧を表示

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を使うを追加


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