Google ColabでSIGNATEのデータセットをダウンロードする方法を備忘録的に記す。
事前準備
- SIGNATEのアカウント設定画面で "API Token" の "作成" をクリック
- "新規作成" をクリックしてAPI Token(
signate.json
)を取得 - ダウンロードした
signate.json
をGoogle Drive上のどこかにアップロードする。
Google ColaboratoryでAPIの認証を実行
以下のコードを実行する。
!pip install signate
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 = 'signate.json'", fields="files(id)").execute()
signate_api_key = results.get('files', [])
filename = "/root/.signate/signate.json"
os.makedirs(os.path.dirname(filename), exist_ok=True)
request = drive_service.files().get_media(fileId=signate_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)
認証コードを取得するためのURLが表示されるため、アクセスし、認証コードをコピペする。
(略)
Download 100%.
と表示されれば成功。
SIGNATEで開催されているコンピ一覧の表示
以下のコードを実行する
! signate list
competitionId title closing prize submitters
--------------- ----------------------------------------------------------------- ---------- -------------- ------------
1 【練習問題】銀行の顧客ターゲティング - 4772
24 【練習問題】お弁当の需要予測 - 5810
27 【練習問題】Jリーグの観客動員数予測 - 1200
100 【練習問題】手書き文字認識 - Knowledge 140
102 【練習問題】タイタニックの生存予測 - Knowledge 631
103 【練習問題】音楽ラベリング - Knowledge 46
104 【練習問題】スパムメール分類 - Knowledge 101
105 【練習問題】毒キノコの分類 - Knowledge 207
106 【練習問題】アワビの年齢予測 - Knowledge 310
107 【練習問題】国勢調査からの収入予測 - Knowledge 468
108 【練習問題】画像ラベリング(20種類) - Knowledge 209
112 【練習問題】ワインの品種の予測 - Knowledge 272
113 【練習問題】山火事の消失面積予測 - Knowledge 66
114 【練習問題】レンタル自転車の利用者数予測 - Knowledge 326
115 【練習問題】アヤメの分類 - Knowledge 284
116 【練習問題】活動センサーログからの動作予測 - Knowledge 27
118 【練習問題】テニスの試合結果の予測 - Knowledge 48
121 【練習問題】自動車の走行距離予測 - Knowledge 1084
122 【練習問題】自動車の評価 - Knowledge 283
123 【練習問題】オゾンレベルの分類 - Knowledge 22
124 【練習問題】ボットの判別 - Knowledge 252
125 【練習問題】ガラスの分類 - Knowledge 65
126 【練習問題】林型の分類 - Knowledge 13
127 【練習問題】ゲーム選手のリーグ分類 - Knowledge 10
128 【練習問題】ステンレス板の欠陥分類 - Knowledge 13
129 【練習問題】都市サイクルの燃料消費量予測 - Knowledge 19
130 【練習問題】天秤のバランス分類 - Knowledge 10
132 【練習問題】ネット広告のクリック予測 - Knowledge 128
133 【練習問題】画像ラベリング(10種類) - 315
135 【練習問題】ネット画像の分類 - 67
262 【SOTA】国立国会図書館の画像データレイアウト認識 2100-12-31 - 11
263 【SOTA】産業技術総合研究所 衛星画像分析コンテスト 2100-12-31 - 18
264 【SOTA】マイナビ × SIGNATE Student Cup 2019: 賃貸物件の家賃予測 2100-12-31 - 217
265 【練習問題】健診データによる肝疾患判定 - 317
266 【練習問題】民泊サービスの宿泊価格予測 - 295
267 【SOTA】海洋研究開発機構 熱帯低気圧(台風等)検出アルゴリズム作成 2100-12-31 - 10
268 【SOTA】オプト レコメンドエンジン作成 2100-12-31 14
269 【SOTA】アップル 引越し需要予測 2100-12-31 - 171
270 【SOTA】Weather Challenge:雲画像予測 2100-12-31 - 3
271 【SOTA】JR西日本 走行中の北陸新幹線車両台車部の着雪量予測 2100-12-31 - 2
288 【SOTA】Sansan 名刺の項目予測 2100-12-31 - 12
294 【練習問題】債務不履行リスクの低減 - 92
358 【練習問題】機械稼働音の異常検知 - 42
404 【練習問題】モノクロ顔画像の感情分類 - 17
406 【練習問題】鋳造製品の欠陥検出 - 72
409 【練習問題】株価の推移予測 - 76
444 パナソニック株式会社 間取り図解析アルゴリズム作成 2021-06-30 総額¥2,000,000 86
コンペのデータセットをダウンロード
今回はリスト表示した中の108番のデータセットをダウンロードしてみます。
まずは以下のコードを実行して、108番のデータ一覧を表示します。
! signate files --competition-id=108
fileId name title size updated_at
-------- ----------------- ---------------------------------- --------- -------------------
313 train.zip 学習用画像データ 117694558 2018-06-26 23:12:54
314 test.zip 評価用画像データ 23554059 2018-06-26 23:14:56
315 label_master.tsv ラベルマスタ 419 2018-06-26 23:16:23
316 train_master.tsv 学習用画像データとラベルIDの対応表 975020 2018-06-26 23:17:07
317 sample_submit.csv 応募用サンプルファイル 4212460 2018-06-26 23:17:33
続いて、こちらのファイルをダウンロードしてみます。
以下のコードを実行。
! signate download --competition-id=108
label_master.tsv
train_master.tsv
sample_submit.csv
test.zip
train.zip
Download completed.
ダウンロードが完了しました。
train.zip
とtest.zip
はzip形式なので解凍します。
! unzip train.zip
! unzip test.zip
(略)
inflating: test/test_09997.png
inflating: test/test_09998.png
inflating: test/test_09999.png
ディレクトリ内のファイル一覧を見てみます。
%ls
一覧は以下です。
adc.json sample_data/ test/ train/ train.zip
label_master.tsv sample_submit.csv test.zip train_master.tsv
例えば、trainデータを読み込みたいときは、ディレクトリは以下のように指定。
./train/
追記
- 特定のデータをダウンロードする
今回は、108番のコンペのファイルIDが313をダウンロードする場合は、--file-id=
の後に番号を記載する。
! signate download --competition-id=108 --file-id=313