6th Place Solution(概要)
はじめに
コンペの開催ありがとうございます。
私は普段、R言語のTydymodelsを用いてコンペに参加しています。
今回もローカルのRで解析をやり始めました、
メモリ上限を超えてしまいクラッシュを繰り返したため、グーグルコラボでやってみよう!と環境をかえてみたのですが、Pythonの方がやりやすそうだったため、初めてPythonを使いました。
そのような状況でしたので、Pythonのコーディングスキル不足のため、他の方の投稿を参考に前処理を追加、複数モデルを構築してアンサンブルをしました。
(大変勉強になりました。ありがとうございます。
参考にした投稿
magichanさんの「LightGBM Baseline (LB: 22.54002)」
追加した前処理、モデル
●前処理の工夫
・夜の時間帯、早朝の特定の時間帯について、利用客数を可視化すると顕著に差異があったため、
特定の時間帯を表現するダミー変数を追加
・季節でタクシーの使い方も変わるだろうという考えで、予測期間のうち冬の期間についてダミーを作成
・AmPmのダミーを追加
・月の第何週かを識別する変数を追加
・カテゴリ変数11種に対して、ターゲットエンコーディング(平均値・中央値・最大値・最小値・標準偏差)を実施
●モデル作成など
・LIGHTGBM:publicを見ながらハイパラを調整
・カテゴリ変数がそれなりにあったため、CATBOOSTでも推定
・ハイパラや説明変数を数種類の組み合わせで実行し、スコアの良かった両者のモデルの推定結果をアンサンブル
効果がなかったこと
・モデル:ARIMAで時系列モデル化→→→初期に検討したが、スコア悪く断念
・説明変数
①階差⇒何水準か追加したが、グーグルコラボでもメモリクラッシュが起きるので、途中で断念
②地理データ⇒緯度経度をプロットして可視化してみると、街中だったり飲食店の密集地だったり、学校や空港だったりと、タクシーの利用シーンが異なると考え、場所を表す説明変数を加えたが、効果がなかった。
③天候⇒急に雨が降ればタクシーを使うだろうと考え、「その瞬間雨が振っている」、「直前に雨が振っていた」などの変数を追加したが、改善しなかった。
個人的な困り事
Pythonでそれなりのスコアがでたので、R言語でもりもりやっていこうとPythonコードをRのTidymodelsに書き換えてLightGBM(bonsaiパッケージ)で実行したところ、同じデータ・同じハイパラやシードでも、推定結果がかなりズレる(Rだとかなりスコアが悪い)アウトプットとなり、現在原因を究明中です。
実はこの検証に時間を要したため、最後の2週間はほぼ何もできずに終わってしまいました。
ズレの要因に関して知見のある方いらっしゃれば、教えていただけますと幸いです。