【新卒DSの挑戦】第6回SMBCグループ データ分析コンペ 参加・受賞報告(後編)

はじめに

三井住友カード データ開発本部に所属している、新卒データサイエンティストの初田です。

本記事では、SMBCグループのプライベートデータ分析コンペである「第6回D-1グランプリ」参加報告の後編として、中上級者向けの「テクニカルチャレンジ」についてご紹介します。
コンペ参加当初はスコアがなかなか上がらず、順位が落ちてしまう期間もありましたが、モデル開発方針を変えつつ工夫を凝らすことでスコアを上げ、最終的に180人中7位に入賞することができました!

D-1グランプリ概要と、初中級者向けの「ビズデータチャレンジ」については、前編をご覧ください!

tech.smbc-card.com

中上級者向け「テクニカルチャレンジ」

テクニカルチャレンジ概要

テクニカルチャレンジは、「シェアサイクルステーションで利用可能な自転車台数の時系列予測」という課題でした。

都市部でシェアサイクルサービスを展開している設定の架空企業A社では、各ステーションの自転車台数に過不足が生じないように、夜間に自転車の再配備を行っています。
しかし、どのステーションで自転車が不足するか、どのステーションで何台くらい自転車が余っているかはオペレータの経験に基づき判断を行っているため、予想した自転車台数と実際の状況には乖離が生じます。
そこで今回のタスクでは、オペレーション効率改善に向けて、より正確に自転車台数を予測する機械学習モデルの構築に挑みました。

出典: D-1 グランプリ テクニカルチャレンジ

提供データ

提供データ内容

提供されたデータは以下の4種類です。

(1) 自転車台数状況データ

各サイクルステーションで1時間ごとに記録された利用可能な自転車台数(目的変数)の履歴データ
※予測対象日時、および予測対象外の日時双方の記録が含まれる ※predict=1の日時が予測対象、predict=0の日時は予測対象外
※データ期間 : 2013/09/01~2015/08/31

(2) 利用者の移動履歴データ

利用者がシェアサイクルで移動した時間、起点駅、終点駅を記録した移動履歴データ
※データ期間 : 2013/09/01~2014/08/31

(3) サイクルステーションデータ

サイクルステーションの緯度・経度、ドック数(最大で停められる自転車台数)、設置日のデータ

(4) 気象データ

ステーションが設置されている5都市分の1日ごとの気象予報データ(0時時点の予報データ)
※データ期間 : 2013/09/01~2015/08/31

時系列データ取り扱いルール

本コンペは時系列データということもあり、ある予測対象日時の予測を行う際は、それ以前の情報のみを使用して予測を行う必要がありました。
具体的には、コンペ終了後、入賞候補になった場合、運営によるコードチェックがあり、もしルールに違反した場合、入賞対象から外れるというペナルティが存在していました。
そのため、常にリークに注意しながらモデルを構築する必要があり、金融データによくある時系列データを実践的に学べる問題設定でした。

解法紹介

特徴量作成

(1) 日付系

曜日や1日の時間、月をそのままの数値的特徴量として扱うとモデルが連続性を考慮できない懸念が生じます。そのため、これら特徴量に連続性を持たせるためsin、cos変換を施しています。
また、特殊なイベントは人々の移動行動に変化をもたらすのではないかと考え、アメリカの国民的行事のスーパーボウルや今回のコンペの対象地域を本拠地とする野球チームの優勝パレードなどを特徴量として組み込んでいます。

  • 平日
  • 週末
  • 祝日
  • 週のsin、cos変換
  • 時間のsin、cos変換
  • 月のsin、cos変換
  • イベント(スーパーボウル、サンフランシスコ・ジャイアンツの優勝パレード、クリスマスなど)
(2) 天候系
  • 平均気温、平均風速、降水量、雲が占める面積のラグ特徴量(前日と3日前)
  • 不快指数
(3) 自転車台数
  • 午前0時、1時間前からの増減数
(4) 外部データ

本コンペでは外部データの使用が一部許可されていたので、ステーション所在地の標高や、企業・大学・駅など人が集まりそうな場所からの距離を取得しました。
標高は提供された緯度経度データをもとに無料のAPIから標高を取得しました。取得した標高を使い、同じ街の他のステーションとの標高差などを特徴量として組み込んでいます。
また、ランドマークとの距離では巨大テック企業やスタンフォード大学、鉄道駅を対象とし、それぞれの緯度経度データからハバーサイン公式を用いて2点間の距離を算出しています。

  • Open Topo Data API [1]から各ステーションの標高情報を取得し、同じ街に存在するステーションの平均標高からの差を算出
  • 巨大テック企業や大学、鉄道駅からの距離
(5) 組み合わせ系

既存の特徴量を10個程度選び、四則演算を行うことで、単独の特徴量では捉えきれないデータの背後にある意味や関係性をモデルに与えることを目的に実施しました。
この方法で作成した特徴量の中で、重要度上位に来ているものもいくつかありました。

以上の取り組みにより合計200個以上の特徴量を作成しました。
すべての特徴量を使用し、モデルを構築したところ、gainに基づく特徴量重要度が0もしくは0に近い値を取っている特徴量が存在していたため、gain値の合計に対する累積寄与が下位0.5%に該当する特徴量をすべて除外し、再度学習と予測を行いました。

モデル構築

モデルは勾配ブースティング木のLightGBM、Catboostを使用しました。

構築したモデル(画像:著者作成)

1日の中で利用可能台数に応じて3つの状態に区分けし、それぞれモデル作成・Optunaの適用をしました。
1日のサイクルの中でも時間帯によって朝夕に通勤ラッシュらしき傾向が見られたり、深夜帯はほぼ台数に変化がなく自転車が利用されていない傾向があったりと、人々の生活に合わせて利用可能台数が変化するため、傾向にあったハイパラ調整が必要と考えました。

最終的に、それぞれのモデルの出力の加重平均を算出し、予測値としました。
つまり、各モデル内でStable、Mid、Rush3つの時間帯それぞれに適したハイパーパラメータをOptunaで調整し、予測値を算出。その後3モデル間で予測対象全期間の予測値を加重平均し提出用予測値としました。

後処理

予測した利用可能台数が、各ステーションで設けられている上限収容可能台数を超過してしまうことがあります。
そのため、物理的な制限を考慮してモデルの予測値を調整する必要があり、予測値が上限収容可能台数を超過した際は、予測値を上限数に合わせる後処理を行いました。

後述のように、今回のコンペは上位陣の中でRMSE 0.001のスケールでの争いだったため、このように実態に即した数値に調整する作業が、上位入賞のためにに重要になったと考えています。

結果

上記の努力が功を奏して、最終的なPrivateデータでの評価結果として、180人中7位(RMSEスコア:2.3336)に入賞することができました! (Publicでは8位で、RMSEスコアは2.2959でした)

未検証のアイデア

  • Transformer、GRU、Prophet、SARIMAXあたりの時系列モデルを使用する
  • 数か月ごとに期間を区切ってOptuna適用
  • スタッキング

上位者の解法で参考になったこと

  • 外れ値補正:±3σ以上の値を平均値等に補正
  • Hugging Faceで公開されている事前学習済みモデルを取得し利用する。(Chronos-2 [2] を使用していた)

スコア遷移など

以下は私のPublicスコアの遷移です。
12/20→12/21でRMSEを-0.48改善した際は、予測対象を「利用可能台数そのもの」から「1時間前との差分」とすることで、上手く台数変化の傾向を捉えられたのだと考えています。

テクニカルチャレンジでの時系列のPublicスコアと順位(画像:著者作成)

また、以下は上位者のPublicスコアで、RMSE 0.001のスケールで競う、激しい争いになっていたことが分かります。

テクニカルチャレンジの最終Publicスコア(画像提供:D-1 グランプリ)

おわりに

私は、たまたまコンペ開催の案内を見て「なんか面白そうだなあ」と思い、ひょんなことから参加したわけですが、気がつくとコンペという順位がリアルタイムに反映される環境に熱中し、私用の軽量ノートPCはモデルの学習・予測で常にフル稼働でした
コンペの課題やデータも実務に非常に近いものを感じ、本コンペで吸収した学びを実務に還元できればと思っています。
また、普段の業務では関わることのない、SMBCグループ企業のデータサイエンティストの方々と交流する機会を得ることができ、同年代にレベルの高い方々がいることを知り、大変刺激になりました

D-1グランプリはコンペ終了後に表彰式と懇親会があり、上位入賞者による参加者同士の交流の場が設けられていました。
懇親会では、テクニカルチャレンジ総合1位の方による解法紹介もあり、美味しいお食事を囲みながら様々なお話をする伺うことが出来ました。 テクニカルチャレンジ総合1位の方(なんと学部卒の新卒1年目の方でした…!)の解法紹介では。モデルの選定や特徴量生成の面で大変勉強になり、今後のデータ分析に取り入れたい貴重なアイデアを知ることができまでした。

表彰式(画像提供: D-1 グランプリ)

懇親会の様子(画像提供: D-1 グランプリ)

2か年で入賞すると「殿堂入り」という扱いになるとのことなので、次回のD1グランプリでは殿堂入りを目指すことをモチベーションに参加予定です。
SMBCグループの皆さんは、ぜひ次回のD-1グランプリに参加してデータの海に溺れましょう!

また、この記事を読んで三井住友カードの膨大な決済データを利活用したデータサイエンス業務やD-1グランプリにご興味を持たれた方は、ぜひ一緒にキャッシュレス業界とD-1グランプリを盛り上げましょう!
最後までお付き合いいただきありがとうございました!

参考文献