大量データを扱う高難度の争い! 「Peakers Hitachi Cup 道路交通量予測ハッカソン」開催レポート

2019年9月25日、東京駅近くのダイアゴナルラン東京にて「Peakers Hitachi Cup – 道路交通量予測ハッカソン」が開催されました。日立製作所とPeakersの共同で開催されたPeakers Hitachi Cupは9月に全4回実施され、今回で最終回を迎えました。日立製作所より3名のメンター(データサイエンティスト)を迎え、20名の個人対抗で高スコアをめざして競い合った今回のハッカソン。ボリュームのあるデータの扱いに苦戦する方もいらっしゃった中、ハイレベルなスコア争いが繰り広げられた1日の様子をお届けします。

課題発表

今回のテーマは「モビリティ」。課題は「アメリカの道路交通量オープンデータを用いて、交通量の予測を行なう」という内容でした。交通量の観測地点は多数あり、日付と観測地点の組み合わせで1レコードになっています。例えば「A地点における2015年2月1日の交通量」というような形です。カラムには観測地点の情報のほかに1時間ごとの交通量があり、今回はそのうち23時〜24時の交通量を目的変数として設定しました。

また、可能な限り実際の予測に近い形になるよう、レギュレーションとして「予測する値より未来のデータは使用しないこと」を設定しました。2015年2月1日の23時〜24時を予測する場合、同日の23時までのデータは使用してよいが、2015年2月2日の0時以降は使用不可となります。

スコアのランキングはPeakersが作成したシステム上でリアルタイムに確認することができます。また、開発環境はローカルのPCもしくはGoogle Colaboratoryでした。

ハッカソン開始

課題発表とデータ配布後、皆さんすぐに作業に取り掛かります。今回はデータのボリュームが大きく、序盤から取り扱いに苦戦している学生さんも何名かいらっしゃいました。

配布されたデータに不正な値や欠損など学習・分析の妨げとなるノイズがある場合は、まずデータを綺麗に整える必要があります。今回使用したオープンデータの場合、特にノイズが多かったため、この作業が必要不可欠でした。データクリーニングのあとは、散布図やヒストグラムで可視化して傾向を見たり、特徴量同士の関係性を調べたりしてデータの詳細を把握していきます。特徴量を組み合わせたり形式を工夫したりして、新たな特徴量を作成することもあります。

機械学習を行う際は、学習や分析よりもこうした前処理の部分にもっとも時間がかかります。メンターの方曰く、「それはハッカソンだけでなく、実務でも同様」で、多い時には前処理が作業時間全体の9割以上を占める場合もあるとのことです。

また、過去の経験やスキル、データに関する「ひらめき力」など個々人で違いが現れやすいフェーズでもあります。この作業をいかに丁寧に行うかによって分析結果が大きく異なるため、時間に制限がある中、自分が持っている技術を最大限に活かして課題に取り組んでいきます。

メンターにアドバイスを受ける西川さん(左)

Peaker Hitachi Cup第1回にも参加していただいた西川さん。その時点では機械学習の経験がほとんどなく、メンターにつきっきりで教えてもらっていました。当時から不明点や疑問点は理解できるまで質問するという、粘り強い姿勢で課題に取り組んでいましたが、その後も自主学習を続けた結果、たった数週間で大きくスキルアップし、今回見事3位という結果を残しました。

結果を見て「まさかと思った」と優秀者インタビューでもお話ししてくれましたが、西川さんを含め多くの方が機械学習について「文理やプログラミング経験、専門分野を問わず興味がある人は誰でも挑戦することができて、勉強すればするほどスキルが身につくのが楽しい」とおっしゃいます。

未経験の方にとってはハードルが高いイメージがあるかもしれませんが、色々なバックグラウンドの方がイベントで活躍する姿を見ていると、誰でもチャレンジできる門戸の広い分野だと感じます。Peakersではハッカソンの事前サポートや初心者向けの勉強会(ハンズオン)も実施していますので、ぜひチャレンジしていただきたいです。

通常、昼食の時間が近づいてくると午前中のラストスパートで緊迫した空気になります。ですが今回は多くの方がデータの処理に手間取っていたせいか、休憩が近づくにつれて作業の手を緩め、早めに昼食に入る方が多かったようです。開始早々頭をフル回転させたため、すでに少し疲れた表情の方も。

ランチ

11:30ごろ、作業が一段落した方からランチの時間です。

つかの間の休憩時間にも関わらず、皆さん昼食を食べ終えすぐに作業を再開されていました。午前中はほとんどの方が前処理に時間を費やしていましたが、お昼頃になると徐々に手法の選択や実際の分析に進む方が現れていました。ここからは様々なパターンで学習と分析を繰り返し、スコアを確認していきます。

午後のワーク開始

ランチ中も継続して作業される方が多くいらっしゃいましたが、午後のワークが始まりました。午前中は前処理作業ばかりだったのが「考える」フェーズに入り、学生さん同士の意見交換も発生し始めます。個人戦のコンペティション形式であっても、学生さんたちはうまくいったことやいかなかったことについて活発にやりとりされています。

順位が決まるイベントであるにも関わらず、そのオープンマインドな姿勢には私たちもいつも感銘を受けています。メンターさんからも「学生さん同士が合間にアドバイスし合い、コミュケーションを取っているのがよかった。実際の業務でも、一人では挑戦できないことが、意見を出し合うことでチャレンジできたりするのでその姿勢を大事にして欲しい」という声がありました。

Peakersでは、専攻や経験を問わず意欲のある方にご参加いただき、実力を発揮していただけるようなイベントづくりをめざしています。参加者の一人にお話を伺うと、「馴染めなかったらどうしよう、怖い雰囲気だったらどうしようと思っていたけれど、思った以上に楽しかった」とおっしゃっていただきました。イベントではバックグラウンドやステータスに関わらず、同じ課題に取り組む仲間として活発に交流されているように感じます。個人戦のコンペティションにひとりで飛び込むのは尻込みしてしまう方もいらっしゃると思いますが、一緒にスキルアップをめざす同志を探す気持ちでご参加いただけると嬉しいです。

ワーク終了、結果発表・口頭発表

長かったワークもようやく終了。早速上位優秀者の発表が行われました!

1位 工藤 航  さん

2位 渥美 和大 さん 

3位 西川 貴章 さん

4位 森  研人 さん

5位   渡辺 大智 さん

その後、ランキング上位7名の方からどのような方法で課題にアプローチしたか、口頭での発表を行ってもらいました。今回は皆さんがどんなコードを使って分析したのかが分かりやすいよう、PC画面を映しながら発表していただきました。これまでの発表と違って、コードの書き方や、実際の手順が明確にわかるので、解説を聞いている皆さんから「非常に参考になった」との感想が寄せられました。

発表では前処理や特徴量エンジニアリングの内容・選択した手法・その他パラメータチューニングなどモデルの概要についてはもちろん、「なぜそうしたのか」という理由についても細かく説明していただきました。上位入賞の方の発表を聞いていて思うのは、限られた時間の中で注力することとしないことの取捨選択がされており、しっかりと方針を決めて取り組まれているということです。

今回優勝された工藤さんはアンサンブル学習、準優勝の渥美さんは特徴量エンジニアリングに力を入れていらっしゃいました。序盤にデータをしっかりと観察し、今回はどのような方針が有効かを考える。そのプロセスには参加者の皆さんが普段から蓄積してきた経験が大きく反映されているのだろうと思います。準優勝の渥美さんも、インタビューで「早めに方向性を決めた人が勝つイメージだった。一度手法を決めると途中で変えるのは難しいので、どれだけ正しく方向性を決められるかが重要だと感じた」とおっしゃっていました。

表彰式

口頭発表後は、表彰式と写真撮影を行いました。上位入賞された皆様、おめでとうございます!

渡辺さん(右)
西川さん(右)
左から森さん、工藤さん、渥美さん

閉会式

最後にメンターの皆さんから本日の総評をいただきました。

「今回は非常にデータ量多かったので、皆さん前処理に苦戦されたのではないでしょうか。実際の業務でも、データが多く、ノイズ除去に時間がかかることはよくあります。データがたくさんある場合は、今日も何名か採用していた、サンプリングという手法が効果的です。結果を見ると、時系列に分けて分析している方のスコアが高かったと思いますが、ディープラーニングでアプローチしている方もいて非常に面白いと思いました。上位の方は、基礎的なことがきちんとできているなと思いました。使うカラムと、使わない方カラムを適切に判断していて、そこに経験の差が表れたと思います。今回思うようなスコアが出せなかった人も、経験を重ねてスキルを磨いていってください」

「初心者、経験者いろんな方がいらっしゃいましたが、皆さんそれぞれ自分で考えながら課題に取り組んでいて、他の人と違うことをやろうという発想がすごくいいと思いました。機械学習はやればやるほどスキルを身につけることができるので、これまであまりやったことがない手法にもどんどんチャレンジしてほしいです。新しいものに挑戦する、人とは違うことをやろうとするチャレンジ精神を持っている人の方が、今後どんどん成長できると思います。」

懇親会

表彰終了後は、懇親会です。今回は前半から作業量が多く、ワーク中はあまりコミュケーションをとる時間がなかったためか、懇親会では学生さんが席を移動しながら、いろんな人とじっくりお話しする姿が多く見られました。

懇親会中も課題についてお話しされている様子でした。今回はデータ量が多かったこともあり、「時間を有効に使うことができなかった。本当はもっとやりたいこと、試したいことが沢山あったけど、時間がなくなってしまった、時間がないとわかっていながらどうすることもできなかった」という感想もあったようです。悔しかったことや楽しかったことを共有しつつ、お互いにスキルアップをめざしていただければと思います。

日立製作所のメンターの方々には、今回も丁寧にサポートしていただきました。参加する学生のレベルがそれぞれ異なる中、一人ひとりに合わせた解説をしていただいたことで参加者も最後までモチベーションを保つことができました。実際にデータサイエンティストとして働いている方と一緒に課題に取り組んだことで、個人での学習とは違った側面からの知識が得られるとともに、今後のキャリアについても考えることができたのではないでしょうか。

今回のハッカソンで満足いく結果が出せた方もそうでない方も、今日の経験を活かし、さらなるスキル習得に向けて学んでいただければと思います。

皆さん1日 ワークお疲れ様でした!

まとめ

Peakers Hitachi Cup全4回の最終回となる「Peakers Hitachi Cup – 道路交通量予測ハッカソン」は以上で無事終了となりました。データ量が多かったため序盤から皆さんが作業に集中し、通常よりも静かな雰囲気でのハッカソンとなりました。しかし雰囲気とは裏腹に、スコア争いは激しく、最終的には参加者の半数がMAE20〜30に集中するハイレベルな戦いとなりました。また、これまで機械学習の経験がなかった学生さんが、このハッカソンを通して自主学習を始め、今回、見事優秀賞をとるまでに成長した姿を見届けることもできました。諦めずに粘り強く課題に取り組んだ姿勢が評価され、私たちも嬉しい限りです。

第1回から多くの学生さんに参加いただき、運営側にとっても、非常に学びの多いハッカソンとなりました。夏休みや授業の合間をぬって参加していただいた学生の皆さん、本当にありがとうございました。機械学習やAIというと、馴染みのない方にとってはとてもハードルの高いものに思えるかもしれません。ですが今後私たちの生活を大きく変えていく可能性のある、身近な分野の一つです。興味はあるものの、勉強を始めるきっかけがない方、個人で勉強するだけでなく、周りと協力しながら分析してみたい方、自分が現時点でどのくらいの実力を持っているのか確かめたい方など、今後も機械学習に興味のある多くの方にとって、有意義な学びの場を提供していけるよう、運営側も尽力していきます。

高スコアを記録した上位3名の方にインタビューを行いました。

こちらからご覧いただけます。

1位 工藤 航 さん

2位 渥美 和大 さん

3位 西川 貴章 さん

それぞれの取り組みについての詳細や開発にあたって気をつけたことなど、この記事では取り上げていない内容についてコメントをいただいています。

Peakersでは、今後も様々なハッカソン・MeetUp・インターンシップを開催予定です。ここでしか体験できない学びを手に入れたい学生の皆さん、ご参加をお待ちしております!

[contact-form-7 404 "Not Found"]