u++の備忘録

Kaggleでソロ銀メダルを取った時にスマホでしていたこと【kaggle Advent Calendar 12日目】

本記事は、kaggle Advent Calendar 2018の12日目の記事です。

qiita.com

少しネタ要素が強いですが、Kagglerあるあるな記事だと思います。

今年の8月に終了した「Santander Value Prediction Challenge」にて、私はソロで銀メダルを獲得できました。

f:id:upura:20181206171651p:plain

upura.hatenablog.com

言わずもがな、プライベートの相当な時間をこのコンペに捧げたのですが、捧げたのは必ずしもPCに向かっている時間だけではありません。コンペ終盤に差し掛かってくると、通勤時間やちょっとした隙間時間でもKaggleに取り組みたくなります。[要出典]

本記事では、私がSantanderコンペの終盤時にスマホでしていた3つの取り組みについて、紹介したいと思います。

1. Twitterを見る

正直特に意識せずにやっていることですが、Twitterを追っているだけでも多くの情報が得られます。

もちろんKaggleではPrivate Sharingが禁止なのですが、例えば自分と同じコンペに参加している方がLeaderboardを登っていく様子を見るだけでも、モチベーションを高められる利点があります。また高スコアのKernelやリークなどが公開された場合はTwitterでも話題になるので、重要な情報を見落とす可能性を低くできます。

僕の場合は、次のようなKagglerを集めたTwitterリストを作成しています。このリストはコンペ参加中に限らず、いつも定期的に確認するようにしています。

https://mobile.twitter.com/upura0/lists/kaggle1

2. メール通知でKaggleのdiscussionsを追う

Kaggleの公式の機能として、discussionsの「購読」が可能です。この設定をしておくことで、自分が参加しているコンペのdiscussionに何かしらの投稿があった際に、メールアドレスに通知を飛ばすことができます。

詳細は下記の記事にまとめられています。

www.currypurin.com

コンペが盛り上がってくると結構な頻度でメールが飛んでくるので、全ての通知を追うのはかなり難しいかもしれません。しかし量をこなすことで私の場合は英語を読むことへの嫌悪感も払拭でき、熟読すべきかの判断を付ける練習にもなりました。

特にSantanderコンペはdiscussionsでの議論を追うことがメダル獲得に直結するようなコンペだったので、PCに向かっている時間以外でも議論の状況を確認できたのは良かったと思います。「メール通知が来ていない」=「discussionsの更新がない」ということなので、ある意味で心の安寧を担保できる仕組みにもなっていました。

3. Kaggle API&LINE APIでKaggleのkernelsを追う

コンペも終盤に差し掛かってくるとKernelの公開も注視したいという感情が湧いてきました。しかし現状、公式ではKernelsへの投稿を通知する機能はありません。

そこでKaggle APIとLINE APIを用いて、Kernelへの投稿を検知してLINEに通知を送る仕組みを実装しました。詳細は下記の記事にまとめています。

upura.hatenablog.com

実際のLINEの画面は以下の通りです。この仕組みを実装したことで、特に「高スコアのKernelが出ていないか」を常に確認できる状態になっていました。

f:id:upura:20180825171002p:plain

おわりに

本記事では、私がソロで銀メダルを獲得したSantanderコンペの終盤時にスマホでしていた3つの取り組みについて、紹介しました。

Twitterなどを眺めていると、スマホのブラウザでKaggleのKernelを開いてコーディングしている人もいるようです。これは好みの問題かと思いますが、私はコーディングはPCでやった方が明らかに効率が良いので、PCを開けない時間は完全に切り分けて「情報収集や思考の時間」としていました。

おまけ

PCを開けない時間に思いついたことをTo doリストに入れていたのですが、入力が手軽かつデバイス間の同期が容易な「Todist」が非常に便利でした。ここ4, 5年くらい、私のTo do管理には「Todist」を使っていて、個人的には日常に欠かせないサービスとなっています。

todoist.com