AD-TECH
Lab BLOG
RCO アドテクLab ブログ

kaggle初心者の私が3ヶ月でソロゴールドを獲得した方法

2018/05/31pigimaru

こんにちは。今年2018年4月より新卒でRCOに入社した松田です。

kaggle というデータ分析のコンペティション運営サイトが昨今世間に注目されていますが、 今回 TalkingData AdTracking Fraud Detection Challenge において2月にkaggleを始めた私が単独で金メダル(ソロゴールド)を獲得できたのでそれまでにやったことなどをシェアしたいと思います。

図: kaggleサイト( https://www.kaggle.com/ )のプロフィール画面より

図: kaggleでの活動ログ。中2ヶ月はやってないので実質の活動期間は1ヶ月ほど

コンペの具体的内容やテクニックの話は別記事にまとめる予定なので、 ここではゆるふわに勉強法や経緯をシェアします。 これからkaggleを始める人が効率よくノウハウを得るのに役立てば幸いです。

前提

まずkaggle参加前の私のステータスは以下の通りです。

  • 大学では理論物理(素粒子)専攻でプログラミングやデータ分析とはほとんど関係ない
  • 機械学習は自習したが実践経験はあまりない
  • 英語・数学に苦手意識はない
  • kaggleは1年くらい前に知ってアカウント作ったけど何から始めていいかわからず放置していた

結論

以上を前提にまずは記事のタイトル「kaggle初心者の私が3ヶ月でソロゴールドを獲得した方法」の答えをまとめると次のようになります。

以下絵日記形式でこれらが具体的にどう役立ったのかを説明します。

絵日記

25 ~ 213 メルカリコンペに参加

RCOでは年に何回か開発合宿をしているらしく、2018年2月当時内定者だった私も参加していいよと言われたので「無料で旅行行けてラッキー!」ってノリで参加しました。

開発合宿のテーマはほぼ自由だったので私は内定者同期の2人に誘われて当時開催されていたメルカリコンペ (Mercari Price Suggestion Challenge) に参加することでkaggleデビューしました。

図: kaggleのサイト( https://www.kaggle.com/c/mercari-price-suggestion-challenge )より

合宿は1泊2日でその間ではデータを眺めてKernel見ながら基本的な手法を試すだけで終わりました。 合宿後も結果を提出する度に順位が上がっていく快感の中毒になってしまい、ひたすら試行錯誤してました。 既に締め切り約1週間前だったのですが序盤に思いついた特徴量が結構良かったみたいで銀メダルを獲得できました。

図: 109位で銀メダル圏内。徹夜したかいがあった。

そこで学んだことをまとめると以下の3点です。

  • データのダウンロードからsubmissionの仕方
  • とりあえずKernel読むべし
  • モデルはLightGBMが強力なので主な作業は特徴量エンジニアリング

経験者とチームを組むことでコンペの一連の流れや最近の主流を1日で知ることが出来たのはとても効率が良かったです。 あとkaggleを始めたいと思っても何か背中を強く押してくれるきっかけが無いと中々始められないので、合宿というのはちょうど良かったです。

まだまだ試したいことが残っていて最後時間が足りなかったので、次は早めにコンペに参加しようと誓いました。

2月中旬から4月中旬 ~ TalkingDataコンペ参加まで

メルカリコンペが終わった後は大学の研究や知り合いに頼まれたWEBアプリ開発などで忙しく結局コンペに参加出来ないまま4月になりRCOに入社しました。 RCOではエンジニアが働きやすい環境を重視していてそれが様々な制度として実施されていることに感動しました。個人的には特にきっちり業務をこなしていれば勤務時間が自由であることが気に入っています。

div.fc-ab-root")) { document.querySelector("body > div.fc-ab-root").style.setProperty('display', 'none', 'important');}