はじめに
機械学習を勉強し始めてから3ヶ月ほどが経つインターン生です。これまでKaggleで開催されているTitanicやHousePricesを勉強してきましたが、今回は初めての期限付きデータコンペティションとして2022/10/14 ~ 2022/10/23に開催された#14 Sansan x atmaCupに参加したので、その振り返りや感想を残したいと思います。
atmaCupとは
はじめにatmaCupについて簡単に説明したいと思います。atmaCupとは、atma株式会社が主催するオンサイトデータコンペティションです。オンサイトデータコンペティションとは、コンペティション参加者が実際に会場に集まり、準備されたデータをテーマに沿って分析・予測を行い、その精度を競うイベントです。特徴は、実際に会場に集まるため短い時間で分析する力が求められることや、解法についてその場で議論できる点です。atmaCupでは参加者がコンペティションを楽しんで取り組めるように以下のような設計がされています。
- 解いてためになるような課題設計
- データサイエンティストによる課題とデータ検証
- 初心者・中級者に向けたサポートの実施
- 振り返り会の実施
- 分析者にとって快適なコンペサイトの構築
さらに詳しく知りたい方はオンサイトデータコンペの魅力: 関わる全員が楽しいコンペ設計のための取り組み
を参照してください。
14 Sansan x atmaCup
今回開催された#14 Sansan x atmaCupのコンペティションでは、新型コロナウイルスの影響も鑑み、実際に会場に集まることは叶いませんでしたが、活発なディスカッションや懇親会など、コミュニケーションを多く取りながら分析できるコンペティションとなっていました。また、Sansan株式会社の実際のデータを扱って分析を行ったため、データ分析の目的や社会への応用など、実務的な面での経験にもなったと感じます。
お題
お題はネットワーク・時系列に関する問題でした。
機械学習初学者の私にとってはどういうアプローチをとればいいのか、少しハードルが高く感じるような課題でしたが、コンペティション開始早々からディスカッションが賑わい、色々な方々の解法やアプローチが共有されたことで、それらを参考にさせていただきながら楽しく取り組むことができました。
また@nyker_gotoさんによる初心者向け講座では、お題を1から実装した解法やアプローチの仕方についてわかりやすく解説していただきました。初心者向け講座が公開されるまでお題に太刀打ちできない状況でしたが、この講座をベースラインとして課題にアプローチができるようになったため、非常に学ぶことが多く、初学者でも楽しんで参加することができました。
目標
今回のコンペティションの目標は
[運営] Sansan @ 行列分解ベースラインv2のスコアを超える
という運営さんのアカウントのPrivate Scoreを超えることに設定していました。初心者講座の内容をベースにしながら、ディスカッションの内容を反映させたり自分なりの解法を付け加えたりしました。
結果
私の結果はこの通りでした。
- Public: 66位 (0.7301)
- Private: 106位 (0.6468)
[運営] Sansan @ 行列分解ベースラインv2のスコアは
- Public: 49位 (0.7541)
- Private: 69位 (0.6800)
残念ながら運営さんのスコアに届くことができませんでした...
しかし、なぜこんなにもPublicからPrivateでスコアが落ちているんだろうと気になって調べた結果、
最終submissionに出すcsvファイルを更新していなかった事に気づきました...
もしも0016_submission.csvを出していたら、Privateが54位になっていて目標に到達できたかも?
とはいえ、周りの参加者のレベルに驚愕してモチベーション向上につながった上、勉強させていただくことが非常に多く貴重な時間を過ごすことができました。
まとめ
期限付きのコンペティションとしては初めての参加ではありましたが、日本語でのコンペティションかつ上位Kagglerの猛者の方々による解法の解説など、勉強させていただくことが非常に多いコンペティションでした。最終サブミッションを変更しなかった部分は悔やまれますが、それ以上に価値のある時間を過ごせたと感じています。そして、後日に振り返り会があるようなのでそれにも参加して他の方々のアプローチから学ばせていただこうと思います。
最後に、主催してくださいました、atma株式会社の運営の皆様、Sansan株式会社の皆様、そして参加者の皆様、ありがとうございました。