こんにちは、Kaggleマスターでもなんでもないえんせきです。
ロボットの仕事よりもデータ解析の仕事のほうが増えてきそうです。
Kaggleでデータ解析の練習をしていきたいと思います。
つまりなにしたの?
Kaggle APIとか言うのが使えるようになっていたので、つかってみた。
ただ、まだBetaリリースなので今後変わっていくかも。
今回は、kaggle-1.0.5を使います。
Kaggle API
Kaggle APIを使ってデータセットの取得から提出までを行う
Kaggleで開催されているConpetitionsのリストを取得する
$ kaggle competitions list ref deadline category reward teamCount userHasEntered ---------------------------------------------- ------------------- --------------- --------- --------- -------------- imagenet-object-detection-challenge 2029-12-31 07:00:00 Research Knowledge 0 False imagenet-object-detection-from-video-challenge 2029-12-31 07:00:00 Research Knowledge 0 False imagenet-object-localization-challenge 2029-12-31 07:00:00 Research Knowledge 2 False titanic 2020-04-07 00:00:00 Getting Started Knowledge 10306 True house-prices-advanced-regression-techniques 2020-03-01 23:59:00 Getting Started Knowledge 4578 False
リストがつらつらっと出てくる。
自分が参加しているかどうかも一番左に表示される。ここでは、titanicを例にしてすすめる。
Titanicのデータを拾ってくる
TitanicのCompetitionに参加することを決めたらRuleに同意してデータを取得する権利を得る。
続いて、TitanicのCompetitionサイトを開いて、
クリップボードにコピーするボタンを押して、シェルにペーストする。
ただ、このままだと~/.kaggle/competitions/titanic以下にダウンロードされるので、
パスをカレントディレクトリに指定した。
$ kaggle competitions download -c titanic -p . train.csv: Downloaded 60KB of 60KB test.csv: Downloaded 28KB of 28KB gender_submission.csv: Downloaded 3KB of 3KB
予測データをSubmissionする
送付するファイル"submission.csv"とメッセージ"simple analyze"を決めたら以下のコマンドを実行する
$ kaggle competitions submit -c titanic -f submission.csv -m "simple analyze" Successfully submitted to Titanic: Machine Learning from Disaster
予測結果の確認をする
送付したらスコアが出るので確認しましょう
$ kaggle competitions submissions -c titanic fileName date description status publicScore privateScore -------------- ------------------- -------------------- -------- ----------- ------------ submission.csv 2018-03-15 17:22:52 simple analyze complete 0.65550 None
Titanicで0.65…私のスコアひくすぎ…?
スコアが低いのは欠損値処理とか諸々適当にやって数値だけ使ったガバガバ解析だからであってうんぬん。。。
どんな使い方をするか
大規模データセットをチームで確認
- 少量のデータで学習を実行する→うまくいった場合
- gitに適当ラベルを付けてコミット
- 大量のデータで学習を実行する
- メッセージにラベルを追加してKaggleに送信→多分暫し待つ
- スコアの確認を実行する
- 直近のスコアをチームのSlackに通知する
ボッチ参加ばっかりでチーム無いけど…
Submission制限ぎりぎり使ってパラメータ探索
- パラメータを適当に決める
- Submissionする
- スコアを確認する
- 最初に戻る
そんなギリギリの戦いしたこと無いけど…
とかですかね。
これからKaggleやっていきたいと思います
*1:pyenvについてはこちら ensekitt.hatenablog.com