タクシー需要予測

未来のタクシー需要を先読みしよう!

賞金: 100,000 参加ユーザー数: 280 約1年前に終了

[振り返り]効いた・効かなかった解法について

皆様、お疲れさまでした。

恐らく上位の方が、解法やコードを共有してくれると思うのですが、効いた・効かなかった解法について、
軽く雑談させてください。効いた・効かなかった解法以外でも感想等でも、気軽に雑談できるスペースになればと思います。

私の場合ですが、
■効いたもの
・mini_forestさんや、magichanさんの公開コードを参考に特徴量を作成し、学習・予測としました
・下記のやったけどスコアに効かなかったものが、ほぼスコアアップに効かず、という具合でした
・予測結果を四捨五入により投稿データに変更する(これが最後に、少し効きました)

■やったけどスコアに効かなかったもの(実装が悪かった?)
・NY州の祝日でフラグを立てる(予測期間に祝日がなかったのであまり効かなかった?)
・taxi_zones.csvを用いて、地区の緯度・経度を追加
・nyc_weather_2017_2019を用いて、気象データを追加(全部追加や、気温や降水量だけ追加等複数パターン)
・上記の気象データのうち、降雪にかかわる?s等の文字がついているものを抜き出し、フラグを立てる
・予測の期間が12/1から12/7であったので、trainデータを主に冬のものだけに搾る
⇒(上記で、40個位特徴量が追加されたのですが、どんどんスコアが悪くなっていって、
 結局、最後はこれらを作っていない初期の方がスコアが良いという結果となりました)

■やりたかったけど出来なかったこととして、
 ・ラグ特徴量や、移動平均の追加
 ・各特徴量の組み合わせや、効果の精査

それでは皆様、効いた解法、効かなかった解法、コメント・アドバイス、是非教えて頂ければと思います。

Icon13
hamutaro

みなさまお疲れ様でした。私もmagichanさんのコードを参考にして特徴量を作成していきました。以下詳細ですが、一番効果的なのは①の特徴量でした。

使用モデル:lightgbm
効果があった特徴量①:「あるエリア・ある曜日・ある時間における需要数の平均」
      特徴量②: ラグ特徴量(なぜか48*60つまり二ヶ月前のラグ数が効果があった。
                  自己相関など見るとこの数値ではなかったですが...)
      特徴量③: 週番号の追加
      特徴量④: 祝日について、私は1/1, 11月の第一日曜日のみにフラグを立てました

Icon2
newduck

特徴量①は、おそらくmagichanさんのコードにもあった、groupbyメソッドと、aggメソッドを用いたようなものですよね。私も流用させてもらって使っていました。おそらくスコアに効いていたのかと思います。

祝日ですが、例えば

def is_independ_flag(df):
    ny_holidays = [
        "2017-07-04",
        "2018-07-04",
        "2019-07-04",
    ]

    df['is_independ'] = 0

    for holiday_date in ny_holidays:
        holiday_date = pd.to_datetime(holiday_date).date()
        df.loc[df["tpep_pickup_datetime"].dt.date == holiday_date, 'is_independ'] = 1

    return df

みたいな形でフラグたててみたりしたのですが、あんまり効きませんでした。
⇒そもそもなんですが、米国の場合は、祝日と言っても、(日本のような、いわゆる)お休みではなかったりするので、hamutaroさんのようなフラグの立て方の方がよかったのかもしれませんね。

Favicon
new user
コメントするには 新規登録 もしくは ログイン が必要です。