LoginSignup
55
53

More than 1 year has passed since last update.

生鮮野菜の価格予測 1位 解法 & 振り返り

Posted at

Nishika株式会社が主催「生鮮野菜の価格予測」コンペに参加しました。本記事で私の取り組みの共有と振り返りをしたいと思います。

コンペ概要

  • 本コンペでは、東京都中央卸売市場日報および気象庁よりNishikaにて収集・加工し作成したデータを用いて、過去実績の市場データや天気情報から将来の各野菜の日次卸売価格を予測することをテーマとします。
  • 予測対象となる各野菜の日次卸売価格は、RMSPEで評価されました。RMSPEは、予測データ数$n$、真の値$y_i$、予測値$𝑦̂_𝑖$に対して以下の計算式にて算出されます。
RMSPE = 100\left(\dfrac {1}{N}\sum ^{N}_{i=1}\left( \frac{\widehat {y_{i}}- y_{i} }{y_{i}}\right)^2\right)^{\frac{1}{2}} 

コンペ結果

  • 最終ランキングでは参加者974人中1位で入賞させていただきました。
    スクリーンショット 2022-09-01 17.28.46.png

データ

  • データは、野菜に関する市場データと天気データの2つに大別することができます。
    image.png
  • 野菜の種類kindは、きゅうりやミニトマト、レタスなど計16品目になります。

解法

モデリングにあたって

  • 価格は多少の急騰はあるかもしれませんが、基本直近の価格±αくらいで推移しそう。
  • 野菜によって価格のレンジが大きく異なるため、種類ごとにモデルを作成した方が良さそう。
  • 季節で価格が異なるため、学習期間は検証期間と同一の季節/期間で採用した方が良さそう。

モデルの構成

  • モデルは、市場データと天気データを結合し、野菜の種類ごとにLightgbmで学習・推論をするようなシンプルな構成になっています。
    image.png

前処理

  • 予測対象のmode_priceの過去実績値、天気情報の指数平滑移動平均を特徴量として採用しました。
  • 学習させるmode_priceは、最新のデータの平均値±2SDでクリッピングしています。

パラメータの決定方法

  • 野菜の種類ごとにベイズ最適化を用いて決定しました。
  • 最適化するパラメータは、Lightgbmのハイパーパラメータと学習させる期間の2種類です。
    学習させる期間は、何年分遡るか、前後何ヶ月分を参照するかの組み合わせで考えています。図は、2年分遡り、前後2ヶ月を参照する場合の各データの関係を表しています。
    image.png

おわりに

  • 運営の皆さま、参加者の皆さま、ありがとうございました。
  • 学習期間も最適化するパラメータとして扱ったことが、特に精度向上に繋がったと思います。
55
53
0

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
  3. You can use dark theme
What you can do with signing up
55
53