この記事の内容
- traPアルゴリズム班の紹介
- データ分析コンペ/Kaggleとは?
- 初心者向けデータ分析体験会開催記
- 今後について
traPアルゴリズム班の紹介
こんにちは!
22Bのabap34です。traPではアルゴリズム班に所属しています。
traPのアルゴリズム班では、多くの人が「競技プログラミング」に熱心に取り組んでいます。「競技プログラミング」というのは時間内に十分高速に動作するプログラムを構成する競技で、ICPC(国際大学対抗プログラミングコンテスト)のような国際的な大会も開かれています。(多くのtraP部員がこのような大会で活躍しています!)
もちろん大学からコンピュータの勉強を始めた、という班員も多くいますし、かつそんな人へのサポートもとても充実しているので、競技プログラミングに興味のある方はぜひtraPへ入部することをお勧めします!いつでも入部可能ですが、今は後期入部期間で多くの人が入部する時期なので、これを機会にぜひ!(入部の手引きはこちら↓)
さて、ここまで競技プログラミングについて触れてきましたが、実は今回の記事の主題は競技プログラミングではありません。
traPのアルゴリズム班には「部」という下部組織が存在します。
アルゴリズム班
|
|----- 作問部(旧CPCTF部)
|
|----- ヒューリスティック部
|
|----- Kaggle部 :New:
作問部は毎年新歓の時期に開催されるコンテストの問題作成などを行なっており、ヒューリスティック部では最適解を求めるのが難しい問題にチャレンジしています。
そんな色々やっているアルゴリズム班ですが、2022年度からKaggle部が新設されました!🙌🎉
この記事では、「そもそもデータ分析コンペ/Kaggleって何?」というところから、Kaggle部で開催された初心者むけデータ分析コンペの開催記録、今後の活動etc...という構成のKaggle部の勧誘記事です。
この記事を読んで少しでも
- データサイエンス
- 機械学習
- データ分析コンペ, Kaggle
あたりのワードに興味を持たれた方は、アルゴリズム班Kaggle部への所属をめちゃくちゃにお待ちしています!(現在、人が全然いません)
データ分析コンペ/Kaggleとは
データ分析コンペは、一言で乱暴に言うと「未知の情報を予測するAIの精度を競い合う大会」です。
これだけだとピンとこないと思うので、実際にこれまでに開かれてきた大会を紹介したいと思います。(大会のことはコンペティションと呼ぶことが多いです。この記事でもここからは「コンペ」と書きます)
Mercari Price Suggestion Challenge
Mercari Price Suggestion Challange では、商品名、商品のブランド名、といった情報や、送料は購入者負担か出品者負担か、などという情報などを用いて未知の情報である「商品の売れた価格」を予測する精度が競われました。
RSNA Intracranial Hemorrhage Detection
RSNA Intracranial Hemorrhage Detectionでは、CT画像から頭蓋骨出血の有無を判定する精度が競われました。
ここでは簡単に二つの例を挙げましたが、他にも多くのコンペが開催されています。
例えば鳥の鳴き声から鳥を特定したり、動画がDeepFakeかどうか判定したり、電車の遅延を予測してみたり、与えられるデータから予測する内容まで多種多様です。他にもサッカーゲームをするAIエージェントの強さを競うようなコンペもあります。
そして、これらのコンペが数多く開催されているプラットフォームがKaggleです。
もちろんKaggle以外のプラットフォームも存在して、日本だとsignateやprobspace、Nishika あたりが有名です。他にも常時多くのコンペが開催されているわけではないですが、atmaCupは問題の質・参加者のレベル共に非常に高いことで知られています。
そんな中、やはり著名で規模が大きいのはKaggleです。
Kaggleは2010年に設立され、現在はGoogle傘下で運営されており、これまで500以上のコンペを開催してきました。多くのユーザーを抱えていることもあり、ユーザー間の議論や情報の共有なども非常に活発です。
また、賞金も多く出ます💰💰 (詳しくは画像右を参照してください。円安の今がチャンスです!)
Kaggleにはコンペだけでなくデータセットの配布やコードの共有など、さまざまな機能があります。周辺の環境の整備具合からもやはりKaggleは最大級のプラットフォームと言えると思います。
さて、この節の最初ではこんなことを書きました。
データ分析コンペは、非常に乱暴な言い方をすると「未知の情報を予測するAIの精度を競い合う大会」です
こうしてみると「AI」の部分を頑張る、というと変な言い方かもしれませんが、最新のモデルをバシバシ適用していくイメージがあるかもしれません。ですが、多くのコンペでは与えられたデータに対する丁寧な分析による深い理解、仮説を立てて正確に検証する能力、などが問われることが多いです。個人的にはこのあたりにはある種の推理ゲームのような楽しさがあって、その過程を楽しめる人にはとてもおすすめできます。
また、ついでに(?)将来役立つであろう色々なデータ分析のスキルも身に付きます。転職や就職のために始めた、というような話も耳にしますし、実益を兼ねた趣味としてこれを機会にデータ分析の世界に足を踏み入れてみるのはいかかでしょうか。
ちなみに、コンペの例で取り上げたメルカリの価格予測のように、Kaggleでは基本的に実在するデータを企業などが提供してコンペが開かれます。実際のデータを分析できる機会はあまりないので、そのような面から魅力を感じる人も多いです。他にも、開発したモデルが社会的に役立つことにもやりがいを感じる、という意見もあります。例えばコンペの例として取り上げた「鳥の鳴き声から鳥を特定する」というコンペで得られたモデルは、ハワイの絶滅危惧種の鳥を保護するための研究に用いられているそうです。
データ分析体験会開催記
さて、ここまでデータ分析とは?という話からその魅力について書いてきました。この節ではtraP内で開催したデータ分析体験会について書いていきます。
魅力を大いに語ったはいいものの、やはりデータ分析コンペの敷居は若干高いです。まず第一に最低限プログラミングができる必要がある上に、当然ですがKaggleのコンテンツは基本的に全て英語です。
そこでKaggle部では、
🤔 <「ちょっと興味はあるけどハードルが高そうで手が出せない...」
という人向けにデータ分析体験会を開催することにしました。
コンペ概要
KaggleにはCommunity Competetionと呼ばれる機能が備わっています。この機能を使うと、一般ユーザーでもデータさえ用意すれば簡単にコンペを開催することができます。
肝心のデータですが、今回のコンペでは
- 初心者向けで扱いやすいこと
- 馴染みのあるデータであること
を意識して、
を加工したものを用いました。このデータセットは、学生の学部時代の成績や模試の点数などと実際に司法試験に合格したかどうか、というのが紐づいているデータセットで、扱いやすいテーブルデータでかつ我々学生にとって馴染み深いデータということで選定しました。
幸い、Kaggleでこのデータをcsv形式に加工したデータセットが公開されていたので(https://www.kaggle.com/datasets/danofer/law-school-admissions-bar-passage/)、これを手元で加工しました。
初心者向けと言うことを考慮して
- 他の特徴量と相関が強すぎるカラムの除去
- データの各種整形
などの処理を行い、また司法試験にほとんどの人が受かってしまっていて元データは非常にimbalanceだっため、適当に手元で学習したモデルの予測値順にsortし、下位3割ほどをnegativeにする、という処理をかけて若干補正しました。
評価指標は色々考えたのですが、とりあえず競技性よりもハードルの低さを優先する、ということでAccuracyを用いました。
また、前述のように初心者向け、ということでひとまず最初の予測・投稿まで辿り着けるようなコードを作成しました。
作成したNotebook: https://www.kaggle.com/code/yuchiyamaguchi/starter-notebook-logisticregression
開催後の反応を見ていると、このNoteBookによって参加のハードルが下がった、という声が多かったです。
経過
コンペ開始当初は上位を22B(学部一年)勢が独占するなど勢いを見せてきましたが、最終的には上級生がスコアを伸ばしていき、上位争いは大いに盛り上がりました!
コンペ中は定点観測と題して定期的に順位を告知していましたが、盛り上がりの大きな要素になってくれました。
開催結果
コンペには最終的に17チームが参加し、合計213回もの予測結果の投稿がありました!ハッカソン直前の忙しい期間にも関わらず非常に盛り上がってくれてよかったです。
なお順位は、
1位 22M(修士1年) idatenさん
2位 20B(学部3年) reyuさん
3位 19B(学部4年) mazreanさん
となりました!おめでとうございます!🎉
上位三名の方からのコメント:
1位. idatenさん
kaggle班の方,コンペの開催ありがとうございます.参加することができてとても楽しかったです.
時間をあまりとることができずpublic scoreは伸びませんでしたが,運良く1位を取ることができました.
2位. reyuさん
コンペの開催ありがとうございました。2位を取ることができて嬉しいです。
ほぼ初心者でしたがStarter Notebookなどのおかげで楽しむことができました。
3位. mazreanさん
Kaggleには初めて触ったのですが、導入が丁寧で楽しく競技を出来ました。
最後に負けてしまい悔しかったので、また勉強してKaggleに挑んでみたいです。
運営感想
今回のコンペは9/16からの開催が9/7に決まり、Starter Notebookに至っては開催まで残り10時間を切った深夜2:30から書き始めるという強行スケジュールだったのですが、コンペ進行自体が不可能になるような大きなミスはなく終われてひとまず安心しました。多くの方に参加していただけてとても嬉しかったです。
強いていうなら少し問題が簡単すぎたかな...?という感じはしています。今後は初心者のハードルの低さと工夫の余地をうまく両立するようなコンペ設計ができるように頑張ります。
今後
Kaggle部ではtraP内でデータ分析の面白さを広めていくために、今後も初心者向けのイベントから、実際のKaggleコンペへの参加など、さまざまな企画を実施していきます!
繰り返しになりますが、少しでも興味を持っている方はKaggle部への入部をお待ちしています!