見出し画像

Kaggle 30 Days of ML 体験記

はじめに

この記事は2021年8月2日から2021年9月1日にかけてKaggle
で行われた30 Days of MLというコンペティションの体験記になります。
QiitaとZennにも投稿しています。


参加背景

Titanic後の壁を乗り越えたい

詳細は以下の方の記事を参照していただきたいのですが、自分もこの壁を感じていました。

開催中のコンペティションに参加しようにも、
画像認識など深層学習を必要とするものが多く、
内容を見ても「?」となってしまい、なかなか参加できない日々が続いていました。

ある日Twitterに次の情報が流れてきました。

スクリーンショット 2021-09-01 14.12.47

見た瞬間に参加を決めました。

スケジュール

30日間となっていますが、次のように分けられます。
前半15日間:コンペティションのためのインプット(8月2日〜15日)
後半15日間:コンペティション(8月16日〜31日)

前半(コンペティションのためのインプット)


この前半部分はさらに3セクションに分かれており、
Kaggleで元々設定されたコースを各自で学習する形になります。

Pythonの基本(1日目〜7日目)


既習の内容が多いため前倒しで進めました。

機械学習入門(8日目〜11日目)

こちらも既習の内容だったためサクサク進めました。

中級機械学習(12日目〜15日目)


名前は知っていましたが、PipelineやCross-Validation
はこれまで実施したことがありませんでした。
このコース自分で手を動かしながら学習することで
ある程度は分かりました。
ただ、自分で実際にコードを書くにはまだ練習が必要だなと思いました。

余談
コースを修了すると次のような賞状がもらえます。

画像2

入手したからといって何かあるわけではないですが、
テンションが上がります笑

後半(コンペティション)

16日目〜コンペティションが開催されました。

初日(16日目)
初日はとりあえず1回submissionしてみようということで
適当にコードを書いて提出してみました。
また、次の記事を参考にして、記録をつけ始めました。

17日目〜24日目
上述した『Titanic終了後の壁』の記事内容の通り
公開ノートブックとディスカッションの内容に目を通していました。
この期間はEDA・前処理といった事項を確認し、
自分でコードを書いて検証しました。

24日目〜30日目
引き続き公開ノートブックとディスカッションの内容に目を通していました。
この時期には特徴量の作成よりもアンサンブルやスタッキングといった事項に力を入れていたノートブックが
多く公開されていたので、次の書籍で勉強しながら自分もモデルを複数個スタッキングをしました。

結果

第288位(7573チーム中)でした。
最初の方は下から数えた方が早い数値だったので、
自分としては満足がいく結果です。

感想

体験してみた感想です。

心理的ハードルが少し下がった
初学者向け、かつテーブルデータに関するコンペティションだったので、
ここで学んだことが他のコンペティションに直結するわけではありません。
しかしながら、Kaggleに挑戦したという点で一つ自信が持てるようになりました。

自分で手を動かして様々な技法を試すことができた
前述したCross-Validationやスタッキングといった、本で目を通したけれど
実際にやる機会に恵まれなかった内容を色々実践することができたので、
この点でも非常に勉強になりました。
最終的なモデルには組み込めませんでしたが、
Pytorchを用いたニューラルネットワークも試すことができました。

上級者の解法を知ることができた
初学者のコンペティションに何故参加しているのかは分かりませんでしたが、GrandMasterの人が丁寧なノートブックを公開してくれたり、
参考になる別のコンペティションをディスカッションで紹介してくれました。

最後に

今回は基本的な内容でしたが、
初めて参加するコンペティションとして楽しめる内容でした。
次はより長期間のコンペティションに参加してメダルを狙いたいと思います!

この記事が気に入ったらサポートをしてみませんか?