Help us understand the problem. What is going on with this article?

kaggle一週間チャレンジのススメ - ダレない、飽きない、ハードルが低い

この記事は、Kaggle Advent Calendar 2019のアドベントカレンダー11日目の記事です。

KaggleのNFL Big Data Bowlというコンペを
緩く一週間で取り組んだ際の

  • どのように取り組んだか
  • どんなことが得られたか
  • 一週間だったことの良かった点

について書いていきます。

TL;DR

  • 締切の一週間前にコンペを始めた
  • 写すというだけでも意外と勉強になったし、それで順位が伸びるのは快感だった
  • 短期集中なのでダレなくて良い
  • 上位解法も実際に参加したコンペのものなので読みやすさが段違いで最高

なんで1週間

友達に「NFLコンペ良いらしいよ」とおすすめされたのが締切の一週間前(11/20の夜)だったので(参加登録だけは以前にしていた)。

どのように取り組んだか

コンペの概要を理解する

  • とりあえずOverviewとData DescriptionをGoogle翻訳にかけて流し読み
    • 幸い、割と設定は理解しやすく「ボールを持った人がどれくらい進めるかを予測するコンペ」だとわかる

Discussionを流し読みする

  • どういう特徴量を作っていけば強くなるんだろうなーという思いで
  • Most Votes でソートして上の方に来たやつを10個くらい読む
    • 持った人とその他の人の位置関係が重要だという知見を得る
    • 割とデータの前処理が大変そうだということも薄っすらと理解する

いい感じのKernelを見つける

  • 割とデータの前処理が大変そうだということを薄っすら理解した
    • 前処理は良い感じのKernelをフォークしてくるか、という気分
    • かといって、適当な前処理引いて爆死したくはない
    • なのでbest scoreでソートして上の方にあるもので
      • (割とvoteがある) & (scoreがそれなりに高い) & (書いてる人の順位が高い | コンペMaster以上) という基準でフィルタかけて、良さげなのを改良していくという方針
      • (Kernels GranMaなのにコンペはメダル0とかの人のKernelってどう解釈すれば良いのだろう…?)

PDCA(?)を回す

後は特徴量をガンガン追加→kernelをしていきました。手順としては概ね
1. Kernel/Discussionの上位を読む
2. 現在の特徴で足りてなさそうな事項を見つける
3. それを加味した特徴を追加する(まんまコピーしたり、考えたり)
です。締め切り前日までひたすら繰り返してました。

具体的に追加した特徴量としては
- ボールを持った選手と他の選手との距離に関する特徴
- 敵チームのプレイヤーの位置に関する特徴
- 両チームの重心に関する特徴
あたりです。

どんなことが得られたか

銅メダル(予定)

順位の出方が少し特殊で、今後の試合結果で都度評価していく形式なため最終結果は出ていませんが
提出締め切りのときの順位が159/2038、2回目の更新の時点での評価が138/2038と(今のところは)銅メダルくらいは貰えそうな順位に付くことができました。初メダルです、ラッキー。

コンペに纏わるコーディング力

KernelやDiscussionを基本再現しただけ、と言えどもそれを組み合わせたり、またDiscussionをコードに起こしたりしようとすると
割とバグります。それなりに苦労が伴うわけです。
なので、単に再現するというだけでも存外力が付いた気がします。

コンペ自体への理解とその後の勉強のしやすさ

これはコンペの後に気づいたことです。
たとえ一週間と言えども実際に参加したことでこれがどんなコンペかある程度は理解できます。
そうすると、人のSolutionを見たときに割とスッと頭に入ってきます。
これによって新しい知見を吸収しやすくなり、今後のコンペのための勉強がずっと捗るようになった、かと思います。

良かったこと

飽きない、ダレない

Kaggleのコンペって基本始まりから終わりで2,3ヶ月くらいの期間があります。
その期間中ずっと集中してやるなんて無理だ!って人も多いかと思います。
その点、1週間チャレンジだと時間がとにかく無いので尻に火が付いて猛烈な短期集中でやっていけます。

既に有益な情報が出揃ってるので参入のハードルが低い

ラスト1週間ということもあり、強い人たちが出せる情報を惜しみなく出してくれてます。
そのため、複雑な前処理とかEDAとかを自力でしなく済みます。
楽です。

初心者でも割とスコアが伸びてくれてモチベになる

そして、強い人の公開した情報をトレースするだけで初心者でも割とスコアが伸びます。
この感覚は結構楽しく、病みつきになること間違いないと思います。
この方式を最初にやって、徐々に長い時間をコンペに費やすと無理が無くドハマれるんじゃないでしょうか。

まとめ

  • コンペに締切の1週間前から参加すると情報が出揃っていて楽
  • しかも短期集中なのでダレない
  • それでも、リアルタイムで参加したから、強い人の解法を読みやすくなり今後の勉強にもなる

以上です、ご愛読ありがとうございました

KJ0513
都内の情報系学生です。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした