医療職からデータサイエンティストへ

統計学、機械学習に関する記事をまとめています。

kaggle-apiの使い方〜コンペのデータセットダウンロードから提出まで〜

kaggle

通常kaggleコンペでは、データセットのダウンロードから、結果の提出までを、kaggleサイト上で行います。しかし、kaggle-apiを使うことで、データセットのダウンロード、コンペ一覧表示、submission、leaderboardの確認など、ほとんど全ての作業をコマンドライン から行うことができます!

今回はkaggle-apiを使った、データセットダウンロードと、submissionを行う方法をご紹介します。

kaggle-apiのインストール

まずは、kaggle-apiをインストールします。

pip install kaggle

次に自分のkaggleアカウントページからAPIを作成します。

アカウントページに移動

kaggle

ページ中段にあるCreate API Tokenをクリック

kaggle

これでkaggle.jsonというファイルがダウンロードされます。 場所は、以下にあります。

  • mac:~/.kaggle/kaggle.json
  • windows:C:\Users\<Windows-username>\.kaggle\kaggle.json

最後にkaggle.jsonの権限を変更すれば、準備は完了です。

chmod 600 ~/.kaggle/kaggle.json

データセットをダウンロード

さて、実際にデータセットをダウンロードしてみましょう。 今回はタイタニックデータセットを使います。

以下のコマンドでデータをダウロードして、解凍できます。ちなみに、ダウンロードするためのコマンドは各コンペのページに記載してあります。

Titanic: Machine Learning from Disaster | Kaggle

#ダウンロード
kaggle competitions download -c titanic
#解凍
unzip titanic.zip 
#確認
ls
>gender_submission.csv   test.csv        titanic.zip     train.csv

全てのファイルがダウンロードできていますね!

apiでsubmission

最後にsubmissionしてみましょう。今回は最初から入っているgender_submission.csvを提出します。

kaggle competitions submit titanic -f gender_submission.csv -m "api submission"
>Successfully submitted to Titanic: Machine Learning from Disaster

gender_submission.csvを"api submission"というメッセージをつけて提出しました。上記のようなメッセージが出たら完了です。

確認してみましょう。

kaggle

実際にsubmissionできています!

まとめ

kaggle-apiを使えば、データの取得から提出までをコマンドライン 上で行えるので、便利ですね。

参考

GitHub - Kaggle/kaggle-api: Official Kaggle API