LoginSignup
2

【SIGNATE】渋滞予測チャレンジコンテストに挑戦しました

Last updated at Posted at 2023-04-08

はじめに

Data Science League エンジニアのエザワです。
2023年1月25日~3月31日に開催されていたNEXCO東日本・東京大学大学院情報学環が主催する≪渋滞予測チャレンジコンテスト≫に参加しました。
DSLからは3チーム+個人3人の合計15名が挑戦しました。

コンペの内容

このコンペは、データを使用して渋滞予測を行うモデリング部門と、データ活用した新規サービスを考えるアイデア部門があり、DSLはモデリング部門に参加しました。

モデリング部門は、トラフィックカウンターによって計測される速度や交通量のデータや、高速道路ルート検索データを利用して、高速道路が渋滞しているかどうかを1時間毎に予測するというもので、精度評価はF1scoreが使用されていました。

F1scoreとは?

二値分類の予測において、適合率と再現率の調和平均を取った値。

予測\正解
TP(True Positive)
真陽性
FP(False Positive)
偽陽性
FN(False Negative)
偽陰性
TN(True Negative)
真陰性

TP : 正と予測し、その予測が正しい
FP : 正と予測し、その予測が誤り
FN : 負と予測し、その予測が誤り
TN : 負と予測し、その予測が正しい

適合率(precision)
正と予測した中で正解が正だった割合

   \frac{TP}{TP+FP}

再現率(recall)
正解が正の中で正と予測した割合

\frac{TP}{TP+FN}

F1score

\frac{2*recall*precision}{recall+precision}

データについて

トラフィックカウンターによって計測されたデータ、道路構造データ、「ドラぷら」ルート検索データが用意されていました。
トラフィックカウンターデータは平均速度や通過台数、「ドラぷら」ルート検索データは検索時刻、出発ICと到着ICなどのデータがありました。
私は免許を持ってないため、高速道路に関する知識や仕組みが全然分からず、チームメンバーに沢山助けてもらいました、、、

提出までの流れ

今回のコンペでは、学習済みモデルと予測プログラムを一つのフォルダにまとめたものを提出するという形式でした。

特徴量生成は、チームで仮説を立てながら色々作ってみました。
・連休初日は渋滞しやすそう
・都心に近づくほど渋滞しやすそう
・深夜は渋滞しにくい
などなど、、

モデルには、前回(金融データ活用チャレンジ)でもお世話になった最強LightGBMを使用しました。

今回は時系列データだったので、バリデーションの際にはscikit-learnに入っているTimeSeriesSplitを使用して分割をしてみました。
時系列データは、時間的に近いデータが似た傾向を取ることが多く、単純にランダムに分割してしまうと、バリデーションデータと同じ期間のデータで学習できてしまいます。そうすると、予測が簡単になり、モデルの性能を過大評価してしまう可能性が高くなってしまいます。
TimeSeriesSplitも時間情報を使って分割するわけではなく、データの並び順だけで分割するので、時系列データに良い分割方法とは言えませんが、ランダム分割よりは精度が上がりました。
TimeSeriesSplitに関する詳しい内容と改良についてはこちらの記事がとても分かりやすいです。

金融データ活用チャレンジに参加したときの記事↓↓↓

感想

今回もチームメンバーのおかげで最後まで走り切ることができたなあと思っています。最終日はzoomで話しながら23時59分まで粘ったのも楽しかったです。(スコアは上がりませんでしたが)
チームの枠を超えて、エラー解消などみんなでワイワイ話しながらできて楽しかったです。
もう全部楽しかったです。
反省点は、コンペに割く時間が少なかったことです。最終日にもっと色々やっておけばよかったと大後悔しました。次はチームでも個人でももっと作業時間を増やして挑戦します。

最後に

今回は初の試みとして初心者向けのフォローアップ会を開催しました。
これのおかげか、コンペに参加したことがない、Pythonを使ったことがないメンバーも参加してくれてとても嬉しかったです。
次回以降もコンペに参加する際はフォローアップ会開催しようと思うので、初心者の方でもコンペに参加したい!という方は是非DSLに入っていただきたいです。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
2