feature image

2022年10月11日 | ブログ記事

アルゴリズム班にKaggle部を設立し、初心者向けデータ分析体験会を開催しました!

この記事の内容

traPアルゴリズム班の紹介

こんにちは!

22Bのabap34です。traPではアルゴリズム班に所属しています。

traPのアルゴリズム班では、多くの人が「競技プログラミング」に熱心に取り組んでいます。「競技プログラミング」というのは時間内に十分高速に動作するプログラムを構成する競技で、ICPC(国際大学対抗プログラミングコンテスト)のような国際的な大会も開かれています。(多くのtraP部員がこのような大会で活躍しています!)

もちろん大学からコンピュータの勉強を始めた、という班員も多くいますし、かつそんな人へのサポートもとても充実しているので、競技プログラミングに興味のある方はぜひtraPへ入部することをお勧めします!いつでも入部可能ですが、今は後期入部期間で多くの人が入部する時期なので、これを機会にぜひ!(入部の手引きはこちら↓)

2022年度 traP入部の手引き
2022年度後期から東京工業大学デジタル創作同好会traPへ入部する方法を説明します。 この記事で説明する手順はすべて、2022年度後期から新規で入部する方のみを対象としています。過去にtraPに所属していて再度入部を希望する場合はアカウント復旧手続きを行いますので、ここでの手順に従わずにaccounts[at]trap.jp([at]→@)までお問い合わせください。 入部条件 東京工業大学、大学院に在籍していること。 ※科目履修生、特別聴講生、四大学連合の学生も、東京工業大学に在学していることの証明(東工大メールアドレス(mアドレス)の所持証明、学生証の提示、在学証明書の提示のいずれか…

さて、ここまで競技プログラミングについて触れてきましたが、実は今回の記事の主題は競技プログラミングではありません。

traPのアルゴリズム班には「部」という下部組織が存在します。


アルゴリズム班
    |
    |----- 作問部(旧CPCTF部)
    |
    |----- ヒューリスティック部
    |
    |----- Kaggle部 :New:

作問部は毎年新歓の時期に開催されるコンテストの問題作成などを行なっており、ヒューリスティック部では最適解を求めるのが難しい問題にチャレンジしています。

そんな色々やっているアルゴリズム班ですが、2022年度からKaggle部が新設されました!🙌🎉

この記事では、「そもそもデータ分析コンペ/Kaggleって何?」というところから、Kaggle部で開催された初心者むけデータ分析コンペの開催記録、今後の活動etc...という構成のKaggle部の勧誘記事です。

この記事を読んで少しでも

あたりのワードに興味を持たれた方は、アルゴリズム班Kaggle部への所属をめちゃくちゃにお待ちしています!(現在、人が全然いません)

データ分析コンペ/Kaggleとは

データ分析コンペは、一言で乱暴に言うと「未知の情報を予測するAIの精度を競い合う大会」です。

これだけだとピンとこないと思うので、実際にこれまでに開かれてきた大会を紹介したいと思います。(大会のことはコンペティションと呼ぶことが多いです。この記事でもここからは「コンペ」と書きます)


Mercari Price Suggestion Challenge

Mercari Price Suggestion Challenge | Kaggle
Can you automatically suggest product prices to online sellers?

Mercari Price Suggestion Challange では、商品名、商品のブランド名、といった情報や、送料は購入者負担か出品者負担か、などという情報などを用いて未知の情報である「商品の売れた価格」を予測する精度が競われました。

RSNA Intracranial Hemorrhage Detection

RSNA Intracranial Hemorrhage Detection | Kaggle
Identify acute intracranial hemorrhage and its subtypes

RSNA Intracranial Hemorrhage Detectionでは、CT画像から頭蓋骨出血の有無を判定する精度が競われました。

与えられた画像の例。ここから出血を探す

ここでは簡単に二つの例を挙げましたが、他にも多くのコンペが開催されています。

例えば鳥の鳴き声から鳥を特定したり、動画がDeepFakeかどうか判定したり、電車の遅延を予測してみたり、与えられるデータから予測する内容まで多種多様です。他にもサッカーゲームをするAIエージェントの強さを競うようなコンペもあります。

そして、これらのコンペが数多く開催されているプラットフォームがKaggleです。

Kaggle: Your Machine Learning and Data Science Community
Kaggle is the world’s largest data science community with powerful tools and resources to help you achieve your data science goals.

もちろんKaggle以外のプラットフォームも存在して、日本だとsignateprobspaceNishika あたりが有名です。他にも常時多くのコンペが開催されているわけではないですが、atmaCupは問題の質・参加者のレベル共に非常に高いことで知られています。

そんな中、やはり著名で規模が大きいのはKaggleです。

Kaggleは2010年に設立され、現在はGoogle傘下で運営されており、これまで500以上のコンペを開催してきました。多くのユーザーを抱えていることもあり、ユーザー間の議論や情報の共有なども非常に活発です。

また、賞金も多く出ます💰💰 (詳しくは画像右を参照してください。円安の今がチャンスです!)

Kaggleにはコンペだけでなくデータセットの配布やコードの共有など、さまざまな機能があります。周辺の環境の整備具合からもやはりKaggleは最大級のプラットフォームと言えると思います。

さて、この節の最初ではこんなことを書きました。

データ分析コンペは、非常に乱暴な言い方をすると「未知の情報を予測するAIの精度を競い合う大会」です

こうしてみると「AI」の部分を頑張る、というと変な言い方かもしれませんが、最新のモデルをバシバシ適用していくイメージがあるかもしれません。ですが、多くのコンペでは与えられたデータに対する丁寧な分析による深い理解、仮説を立てて正確に検証する能力、などが問われることが多いです。個人的にはこのあたりにはある種の推理ゲームのような楽しさがあって、その過程を楽しめる人にはとてもおすすめできます。

また、ついでに(?)将来役立つであろう色々なデータ分析のスキルも身に付きます。転職や就職のために始めた、というような話も耳にしますし、実益を兼ねた趣味としてこれを機会にデータ分析の世界に足を踏み入れてみるのはいかかでしょうか。


ちなみに、コンペの例で取り上げたメルカリの価格予測のように、Kaggleでは基本的に実在するデータを企業などが提供してコンペが開かれます。実際のデータを分析できる機会はあまりないので、そのような面から魅力を感じる人も多いです。他にも、開発したモデルが社会的に役立つことにもやりがいを感じる、という意見もあります。例えばコンペの例として取り上げた「鳥の鳴き声から鳥を特定する」というコンペで得られたモデルは、ハワイの絶滅危惧種の鳥を保護するための研究に用いられているそうです。


データ分析体験会開催記

さて、ここまでデータ分析とは?という話からその魅力について書いてきました。この節ではtraP内で開催したデータ分析体験会について書いていきます。

魅力を大いに語ったはいいものの、やはりデータ分析コンペの敷居は若干高いです。まず第一に最低限プログラミングができる必要がある上に、当然ですがKaggleのコンテンツは基本的に全て英語です。

そこでKaggle部では、

🤔 <「ちょっと興味はあるけどハードルが高そうで手が出せない...」

という人向けにデータ分析体験会を開催することにしました。

コンペ概要

KaggleにはCommunity Competetionと呼ばれる機能が備わっています。この機能を使うと、一般ユーザーでもデータさえ用意すれば簡単にコンペを開催することができます。

traP データ分析コンペ体験会 | Kaggle
アルゴリズム班 Kaggle部のデータ分析コンペ体験会です!
実際に開催したコンペのリンク

肝心のデータですが、今回のコンペでは

を意識して、

Project SEAPHE: Databases

を加工したものを用いました。このデータセットは、学生の学部時代の成績や模試の点数などと実際に司法試験に合格したかどうか、というのが紐づいているデータセットで、扱いやすいテーブルデータでかつ我々学生にとって馴染み深いデータということで選定しました。

より身近に感じてもらうべくストーリーも考えました。当然ですが捏造です

幸い、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さん

となりました!おめでとうございます!🎉

traQでの順位発表の様子

上位三名の方からのコメント:

1位. idatenさん 

kaggle班の方,コンペの開催ありがとうございます.参加することができてとても楽しかったです.
時間をあまりとることができずpublic scoreは伸びませんでしたが,運良く1位を取ることができました.

2位. reyuさん

コンペの開催ありがとうございました。2位を取ることができて嬉しいです。
ほぼ初心者でしたがStarter Notebookなどのおかげで楽しむことができました。

3位. mazreanさん

Kaggleには初めて触ったのですが、導入が丁寧で楽しく競技を出来ました。
最後に負けてしまい悔しかったので、また勉強してKaggleに挑んでみたいです。

運営感想

今回のコンペは9/16からの開催が9/7に決まり、Starter Notebookに至っては開催まで残り10時間を切った深夜2:30から書き始めるという強行スケジュールだったのですが、コンペ進行自体が不可能になるような大きなミスはなく終われてひとまず安心しました。多くの方に参加していただけてとても嬉しかったです。

外出先でiPadでコードを書き、開催告知をしていました。強行軍すぎる

強いていうなら少し問題が簡単すぎたかな...?という感じはしています。今後は初心者のハードルの低さと工夫の余地をうまく両立するようなコンペ設計ができるように頑張ります。

今後

Kaggle部ではtraP内でデータ分析の面白さを広めていくために、今後も初心者向けのイベントから、実際のKaggleコンペへの参加など、さまざまな企画を実施していきます!

繰り返しになりますが、少しでも興味を持っている方はKaggle部への入部をお待ちしています!

abap34 icon
この記事を書いた人
abap34

機械に勉強を教えています

この記事をシェア

このエントリーをはてなブックマークに追加
共有

関連する記事

2017年11月14日
IBIS2017参加報告
Keijan icon Keijan
2021年4月18日
ベズー係数とN項の拡張ユークリッドの互除法
0214sh7 icon 0214sh7
2022年8月30日
【競プロer向け】母関数を習得しよう!
tatyam icon tatyam
2018年12月16日
ICPCアジア地区横浜大会参加記【アドベントカレンダー2018 52日目】
eiya icon eiya
2017年12月26日
RustでMCMC(Metropolis-Hasting)
David icon David
2017年11月4日
文章をよしなに分散表現しよう
David icon David
記事一覧 タグ一覧 Google アナリティクスについて