Kaggle

Google Colab上でKaggleのデータを使用する方法

Google Colab上でKaggleのデータを使用する方法

 

Google Colab上でKaggleのデータを使用する方法を紹介していきます。

勉強中のため随時更新していきます。

Google ColabでKaggleのデータを使用する準備

まずは、Google ColabでKaggleのデータを使用する準備方法を行います。

具体的には以下の流れです。

  1. Kaggle APIをインストール
  2. Kaggle.jsonをGoogle Colab上にアップロード
  3. Google Colabratory上にKaggle.jsonをダウンロード

 

Kaggle APIをインストール

 

下記を入力してGoogle ColabにKaggle APIをインストールしてください。

!pip install kaggle

 

Kaggle.jsonを取得

 

Kaggle.jsonを取得するためには、まずKaggleアカウントページを開いてください。

次に、『Account』タブに行き、『Create API Token』を選択します。

これにより、kaggle.jsonをダウンロードすることができます。

ダウンロードが完了したらGoogleドライブにアップロードしてください(特に場所の指定はありません)

 

Google Colab上にkaggle.jsonをダウンロード

 

下記を入力し、Googleドライブ上からGoogle Colab上にkaggle.jsonをダウンロードしましょう。

from googleapiclient.discovery import build
import io, os
from googleapiclient.http import MediaIoBaseDownload
from google.colab import auth

auth.authenticate_user()

drive_service = build('drive', 'v3')
results = drive_service.files().list(
        q="name = 'kaggle.json'", fields="files(id)").execute()
kaggle_api_key = results.get('files', [])

filename = "/content/.kaggle/kaggle.json"
os.makedirs(os.path.dirname(filename), exist_ok=True)

request = drive_service.files().get_media(fileId=kaggle_api_key[0]['id'])
fh = io.FileIO(filename, 'wb')
downloader = MediaIoBaseDownload(fh, request)
done = False
while done is False:
    status, done = downloader.next_chunk()
    print("Download %d%%." % int(status.progress() * 100))
os.chmod(filename, 600)

引用 : Kaggle API with Colab

実行するとGoogleアカウント認証ページが表示されるので、認証作業を完了させましょう。

認証されると『Download 100%』と表示されます!

これでGoogle Colab上でKaggleを行う準備ができます。

または下記のコードを入力し、kaggle.jsonファイルをアップロードする方法もあります(参考 : How to use the Kaggle API from Colab

from google.colab import files

uploaded = files.upload()

for fn in uploaded.keys():
  print('User uploaded file "{name}" with length {length} bytes'.format(
      name=fn, length=len(uploaded[fn])))

!mkdir -p ~/.kaggle/ && mv kaggle.json ~/.kaggle/ && chmod 600 ~/.kaggle/kaggle.json

 

 

kaggle APIの使用方法

Kaggle APIの使用方法を紹介していきます。

 

コンペティションの情報を確認

 

下記を入力することで現在開催されているコンペティションの内容を確認することができます。

!kaggle competitions list

 

データの読み込み

 

まずは、Kaggleにアクセスしコンペティションのdataに移動し下記のコマンドをコピーしてください。

Kaggleのデータをインポート具体例として『House Prices – Advanced Regression Techniques』を使用

 

コピーしたコマンドをGoogle Colab上に貼り付けましょう。

貼り付ける際は、以下のように『!』を忘れずに入力するようにしましょう。

!kaggle competitions download -c house-prices-advanced-regression-techniques

 

zipファイルのデータはcsvデータに変換するため以下を入力しunzipしましょう。

# unzip
!unzip /content/house-prices-advanced-regression-techniques.zip

 

これでcsv形式のデータを得ることができます。

結果をsubmit

 

下記を入力することでGoogle Colabから結果をsubmitすることができます。

今回も具体例として『house prices advanced regression techniques』の『sample_submission.csv』を提出してみます。

# submit
!kaggle competitions submit -c house-prices-advanced-regression-techniques -f /content/sample_submission.csv -m "Message"

 

<output>

100% 31.2k/31.2k [00:00<00:00, 88.1kB/s]
Successfully submitted to House Prices - Advanced Regression Techniques

 

これが表示されれば無事提出できています。

 

参考資料

 

  • Kaggle API : Kaggle API GithubはKaggle APIの便利な機能をたくさん紹介しています。

 

まとめ

 

今回は、Kaggle APIを使用してGoogle Colab上でKaggleデータセットを使用したり、コンペ内容を確認する方法を紹介しました。

Google Colabプロを使用してコンペに出場してみたいという方は参考にしてください。

ABOUT ME
努力のガリレオ
【運営者】 : 東大で理論物理を研究中(経歴)東京大学, TOEIC950点, NASA留学, カナダ滞在経験有り, 最優秀塾講師賞, オンライン英会話講師試験合格, ブログと独自コンテンツで収益6桁達成 【編集者】: イングリッシュアドバイザーとして勤務中(経歴)中学校教諭一種免許取得[英語],カナダ留学経験あり, TOEIC650点