ktrのブログ

だいたい体験談と勉強したことのアウトプット

Coursera "How to Win a Data Science Competition" コース体験記

Courseraで開講中のHow to Win a Data Science Competitionを受講して無事に完走しました。
文字通りデータサイエンスコンペで勝つ方法をロシアのTop Kagglerが直々に講義してくれます。

www.coursera.org

よかった点

  • EDAセクション

    • 激強講師がこんな風にEDAするよとスクリーンキャストで解説してくれる。Kaggleの公開カーネルでは大体結果だけ示されるので、思考の流れを追えるのは参考になった。匿名カラムから元のデータを暴くところとかは普通に面白かった。個人的にはかなりお気に入りの部分
  • Target Encodingセクション

    • どうしてTarget Encodingが効くのか、どうしてリークに繋がるのかを簡単に説明してくれる
    • リークしやすいのでregularizationの手法をいくつか紹介して実装演習まである
  • Stackingセクション

    • StackNetライブラリ作者直々の講義で、ナイーブな事例+動くスライドを用いて説明される。すごいわかりやすかった
    • 一方でValidation手法がありすぎて結局どれがどんな時にいいんだ...と整理できない面も
  • 講師陣が参加した過去コンペの取り組みの紹介

悪かった点

ほとんどが私の知識が及ばないことに起因していると思うのであまりありません。強いて言うならば

  • Leakageセクション

    • 過去に開催されたコンペのLeak事例の紹介。全然わからんで有名なセクション
    • だれか日本語で教えてください...
  • たまに課題に対してなにをすればいいか説明不足で不親切だなあと思うところも

感想

  • かかった時間

    • 仕事終わりに大体1日2時間くらいやっていました。最終課題は結構時間をかけてやったので全て含めると60-70時間なったのかなと思います。ちなみにコースでは”6-10 hours/week"と書かれています
  • 必要なレベル感

    • 多少英語がわからなくても説明内容に察しがつくので、1, 2度コンペに参加したことがある位がちょうど良いと思います *1
    • 数学に関して言えば、ところどころ(特に評価指標)はあった方が理解が深まると思いますが、全体的にはほとんど求められません

日本語でも説明を理解できるか怪しいのに英語のビハインドが加わりなおさらわからん。という自体に陥る箇所が多々ありました

英語ネイティブは本当に羨ましいなあと思った次第です。 英語は得意だけど機械学習コンペは入門者みたいな人には圧倒的にオススメします*2

それでもコンペに特化した教材はあまり存在しないので普通に楽しかったです

進め方

最初はただビデオを見ているだけでしたが、紹介される手法や知識の雨あられに整理が追いつかず、後からメモをとって進めるスタイルに変更しました

最終課題以外はコースの表記通り3h+αくらいで終わると思います。
最終課題はコース用に実際にKaggleでホストされているコンペに参加して一定スコアを取ることです。合格点は明示されていませんが、ベンチマークが1.16で大体1.0を切れば合格できるという噂。コース内容に沿った解法ができているかのソリューションのペアレビューもあり、まとめるのに結構骨が折れました

Courseraの指示ではWeekを進めるごとにStep By Stepで最終課題のコンペに取り組みましょうとなってます。しかし、一旦コンペに取り組むとそっちに気が向いて上手くリソース配分できないと思い、一先ずコースのビデオと課題をガシガシ進めました

最終的に最終課題を取り組むに当たって試したいテクニックなどをビデオで復習するような感じに落ち着き、よい復習サイクルになったと思います

おそらく最終課題のコンペ自体は誰でも参加できるので、受講時間を稼ぐためにもとりあえず参加して、流れがある程度固まった時点で受講を開始するのもアリかもしれません

おわりに

知識の整理になったし、なりよりTarget EncodingとStackingは習得したいテクニックだったので参考になりました

もちろん講座だけでコンペで良い成績を出すことはできないと思います。しかし、これから学ぶためのキッカケにもなったので、私のような入門者にはとても参考になる講座だと思います

*1:Titanicのチュートリアルを終えた+αくらいでしょうか

*2:そういう人は少ないと思いますが...