超初心者Kagglerが
GoDaddy - Microbusiness Density Forecasting
に参加してみたので感想を書いてみました。
成績は= 3,318 teams 参加で、2991位です。。。
コンペの内容は?
コンペティションの目標
このコンペティションの目的は、ある地域の月別マイクロビジネス密度を予測することです。あなたは、米国の郡レベルのデータで訓練された正確なモデルを開発することになります。
あなたの仕事は、政策立案者がマイクロビジネス(非常に小規模な事業体の増加傾向)を可視化するのに役立つでしょう。追加された情報は、これらの小規模ビジネスの成功と影響を改善するための新しい政策やプログラムを可能にします。
ということで、予測系のコンペでしたが、
8か月先までの Microbusiness Density を予測するということで、
自分にはかなり難しかったですね。
予測に使用したもの
LightGBM と XGBoost の回帰分析を使用しました。
しかし経験不足もあってうまくいきませんでした。
ラグ特徴量やローリング特徴量を作成しても、実際に予測モデルを作成すると
1つ期間をずらしたラグ特徴量ばかりが使われてしまい、
その結果、予測値がすべて同じになってしまいました。
おそらくですが、自分の製作したモデルは期間の特徴を把握しておらず、
月ごとのMicrobusiness Density のゆらぎというか誤差を全く分析できない
モデルになってしまったのかな?と考えていますが、よくわかりません。
上級者KagglerはLightGBMでも予測できているようだ。
コンペのCodeを公開している人が結構いるのでCodeの中身を見せてもらったのですが、
やり方次第でLightGBMなどでも十分予測ができるようだ。
自分としてはARIMAXやSARIMAX,Prophetあたりを使わないと予測できないんじゃないか?
と考えていたので、実に興味深かったです。
初心者が書いたコード。
人に見せる用には制作していません。
https://www.kaggle.com/code/yuujapan/ver2-godaddy-microbusiness-density-forecasting
Microbusiness Density が40以上だとあまり回帰しない。
Microbusiness Density の平均は3.8くらいだったので、離れすぎると予測ができない。
ということで、無理やりMicrobusiness Densityを3.0を上限にして、
残りを後から足すという方法をとってみました。
最初は単純に、Microbusiness Density 40 以上のデータを切り捨ててモデル制作をしていましたが、
最終的に切り捨てない手法を採用しました。
ランキング上位者はスタッキングを駆使しているもよう
LightGBM
XGBoost
CatBoost
のスタッキングが多いようですね。