Kaggleが、やりたいです
もうプログラマーである以上はいい加減Kaggleから逃げられないご時世になってきました。諦めてデータサイエンス覚えましょう。さもなくばクビです。
この記事はこんな人向けです
- プログラミングはできる
- Pythonは触ったことあるけどpythonのelse-if文の書き方忘れたなあ
- Google Cloud Platformは触ったことねえ
- Kaggleのアカウントだけ作った
なんでGoogle Cloud Platform?
セットアップが超簡単です。30分もあれば導入完了です。そのうち叩くコマンドは4つくらいです。簡単だね!
そして、BigQueryが使えます。今回は使わなかったけど。BigQuery使えるようになりたいですよね、deathよね。
あとAWS飽きた。
Kaggleのアカウント作りましょう
メールアドレスで登録するだけです。
Google Cloud Platformのアカウント有効にしましょう。
しましょう。
KaggleのTitanic問題に登録しましょう
これです。
Google Cloud Platformで作業しましょう
プロジェクトを選ぶ
Google Cloud Platformのダッシュボードに移動して、プロジェクトを新規作成しましょう。
左上に書いてあるやつが今ダッシュボードで作業中のプロジェクトです。名前をわかりやすくつけましょう。
ビリングを設定する
GCEは金かかりまっせ。支払い方法を設定しておきましょう。
支払い方法の追加、削除、更新 | Cloud Billing のドキュメント | Google Cloud
APIをイネーブルする
APIをイネーブルします。APIを管理する画面を開いて、
そこから追加画面を開きます。
そこからAPIを選択できます。こんな感じ。
最低限必要なのは
- Compute Engine API
です。名前の通り必須です。他にも後々使いそうなのはBigQueryとかBigTableとか。いつでもこの画面で追加できます。必要な操作をやるとAPIが必要な場合はそういう風に怒ってくれるので必要になり次第API追加していきましょう。
GCE準備できたのでDatalabをはじめる。
ここからコンソールを開きます。多分開いているページの下半分がコンソールになります。
こんな感じ。
Datalabインスタンスを作成する。
簡単です。こんだけ。
datalab create --disk-size-gb 10 --machine-type f1-micro datascience-01a
- --disk-size-gb : このVMインスタンスにくっつけるディスクのサイズです。20GBのディスクが自動でくっつくのでデータを保管する作業場所のサイズです。30GBまでならAlways Freeなはずなので、差し引き10GBを割り当てています。本当に無料になるかどうかは知りません。
- --machine-type : f1-microを指定しています。これもAlways Free Eligibleなはず。本当に無料になるかどうかは(略)
datascience-01aはVMインスタンスの名前です。適当につけましょう。
途中でインスタンスをデプロイする場所を聞かれます。お金持ちは近い場所asiaとか、で、私のような貧乏人はus-のどこかAlways Free Eligibleな場所にしましょう。本当に(略)
最後に作ったDatalabを保護するためのSSHトンネリング用のパスワードを聞かれます。忘れないやつをつけましょう。
そんだけ!
Datalabでの作業を始める
開く
まずは開かないと話になりません。開きましょう。 2つ方法があって
- 表示されたURLをコピーしてブラウザにぶち込む
- ウェブプレビューボタンを活用する
私は最初1でやりました。それでいいと思いますが、2を覚えておくと便利です。
このボタンを押して、開くと
モーダルが出るので、8081に変更して開く。
すると
データラボじゃー!
フォルダとノートブックを作る
この二つのボタンを使って作業場をこしらえます。私は既存のnotebooksフォルダの下にKaggleフォルダを作って、さらに問題フォルダを掘ってそこにノートブックを置きました。
フォルダ構成は自由です。憲法にも保障されている基本的人権の一つです。適当にやりましょう。
フォルダはボタンを押したあとしばらくしてできあがります。反応無いからつって連打するとたくさんできます。我慢しましょう。フォルダは無名で作成されるのでRenameしましょう。
ノートブックを作ると空っぽのノートができるはずです。開きましょう。
ノートブックを開く
まあ、開けますよね。
問題を取り込む
kaggleツールをインストール
いろいろなやり方があると思いますが、私はクソめんどくさがりなのでノートブックから取り込みました。kaggleは専用ツールを公開していて、そいつを使うと問題データを簡単に取り込めます。kaggleの問題ページにこんな感じに表示されていると思います。
これを使います。まずはツールをインストールしましょう。
こんな感じでノート上でシェルコマンドが実行できます。
%%bash pip install kaggle
実行しましょう。普通のpipコマンドが使えるので使いたいライブラリはこんな感じでどんどん足せます。
んで、このツールを使うにはツールが認証を突破できるようにしなければいけないので、kaggleのAPIトークンを発行しましょう。
kaggle APIトークンの取得
kaggleのページの右上に表示されているあなたのアバターの
でアカウントページを開いて、
ここからAPIトークンを取得します。トークンはユーザー名と暗号化トークンのふたつからなる辞書です。それをコピペしてDatalab上にファイルとしておいときます。
%%bash echo '{"username":"oreno_user_name","key":"cdac546cacd78dc9ac7897dc....."}' > ~/.kaggle/kaggle.json
こんな感じ。
ファイルをダウンロード!
するとkaggleコマンドが使えるようになっているので、問題ページのやつをコピペしてシェルコマンドとして実行しましょう。
%%bash kaggle competitions download -c titanic
これでノートブックと同じフォルダにファイルが置かれているはずです。
こんな感じ!
中身を確認
少し中身をのぞいてみましょう。実際にこれから作業していくのはトレーニングデータtrain.csv
です。
from google.datalab import Context import google.datalab.bigquery as bq import google.datalab.storage as storage import pandas as pd try: from StringIO import StringIO except ImportError: from io import BytesIO as StringIO train_data = pd.read_csv('train.csv') train_data.head(4)
こんな感じでデータ、見えました?
今回はここまで
長くなってきたのでここら辺で。次回は実際に読み込んだデータで問題に取り組みます。