Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

M5 sinchir0

529 views

Published on

M5 Forecasting - Accuracy sinchir0

Published in: Data & Analytics
  • Be the first to comment

  • Be the first to like this

M5 sinchir0

  1. 1. M5 反省会 sinchir0
  2. 2. l⾃⼰紹介 lKaggle歴 lM5 Forecasting - Accuracy • 概要 • 結果 Agenda
  3. 3. l東北⼤学⼤学院 ⼯学研究科 バイオロボティクス専攻 l2015.4 ~ SIer : システムエンジニア • インフラシステムの保守・運⽤ l2018.10 ~ 同上 : データサイエンティスト • 電⼒需要予測 • 蓄電池劣化予測 • 業務改善コンサル l2019.8 ~ IBM Japan : Data Scientist • 天候データを⽤いた⾵災被害予測 • 機械学習アプリケーション開発 @sinchir0 齋藤 慎⼀朗 ⾃⼰紹介
  4. 4. Kaggle 歴 ・ IEEE-CIS Fraud Detection 🥉 ・ Google QUEST Q&A Labeling 🥉 ・・・要精進 でも、メダルが取れなくてもKaggleは楽しい︕ 参加コンペ数 メダル
  5. 5. M5 Forecasting - Accuracy
  6. 6. M5 Forecasting - Accuracy 概要 ・受領データ ファイル名 概要 sales_train_validation.csv 商品毎の売上データ sales_train_evaluation.csv 商品毎の売上データ(6/1に公開) sell_prices.csv 商品の値段 calendar.csv ⽇付 sample_submission.csv 提出ファイルの例
  7. 7. M5 Forecasting - Accuracy 概要 ・ ⽬的変数 商品(id)ごとの売上 学習データ 先頭5⾏ ⽬的変数
  8. 8. M5 Forecasting - Accuracy 概要 ・データ期間 train 1 ~ 1913 validation 1914~ 1941 1969⽇ evaluation 1942~ 1969 PublicLB PrivateLB 2011-01-29 2016-04-25 2016-05-23
  9. 9. train 1 ~ 1913 validation 1914~ 1941 1969day evaluation 1942~ 1969 sales_train_validation.csv
  10. 10. train 1 ~ 1913 validation 1914~ 1941 1969day evaluation 1942~ 1969 sales_train_evaluation.csv
  11. 11. train 1 ~ 1913 validation 1914~ 1941 1969day evaluation 1942~ 1969 sample_submission.csv 列名に validation を含む 列名に evaluation を含む
  12. 12. sell_prices.csv sell_prices.csv
  13. 13. calendar.csv calendar.csv
  14. 14. M5 Forecasting - Accuracy 概要 ・Metric : WRMSSE Weighted Root Mean Squared Scaled Error
  15. 15. M5 Forecasting - Accuracy 概要 ・Metric : WRMSSE Weighted Root Mean Squared Scaled Error
  16. 16. M5 Forecasting - Accuracy 概要 ・Metric : WRMSSE n : 学習期間 h : 予測期間 !𝑌! : 予測値 𝑌! : 実測値 t : 時系列
  17. 17. M5 Forecasting - Accuracy 概要 ・Metric : WRMSSE
  18. 18. M5 Forecasting - Accuracy 概要 ・Metric : WRMSSE Level id Aggregation Level Number of series 1 Unit sales of all products, aggregated for all stores/states 1 2 Unit sales of all products, aggregated for each State 3 3 Unit sales of all products, aggregated for each store 10 4 Unit sales of all products, aggregated for each category 3 5 Unit sales of all products, aggregated for each department 7 6 Unit sales of all products, aggregated for each State and category 9 7 Unit sales of all products, aggregated for each State and department 21 8 Unit sales of all products, aggregated for each store and category 30 9 Unit sales of all products, aggregated for each store and department 70 10 Unit sales of product x, aggregated for all stores/states 3,049 11 Unit sales of product x, aggregated for each State 9,147 12 Unit sales of product x, aggregated for each store 30,490 Total 42,840 Weightの考え⽅
  19. 19. M5 Forecasting - Accuracy 結果 ・Top48% 😂 My Model Team Member Model Final Submission Final SubWeighted Average 🥈 😣 Not Recursive Recursive
  20. 20. M5 Forecasting - Accuracy 結果 ・CV 最後の28⽇間でHold Out、ほぼTrust PublicLB - TimeSerieSplitなど検討したが、良い⽅法⾒つからず。 - 最近のデータは傾向が異なっているように⾒えた。 最後の28⽇間 https://www.kaggle.com/robikscube/m5-forecasting-starter-data-exploration
  21. 21. M5 Forecasting - Accuracy 結果 ・Model概要 ・LGBM ・販売前のデータは削除 ・lag,rolling feature (recursive featureはなし) →valid : N/A PublicLB : -0.07 ・⽬的変数としてsales * sell_prices →valid : +0.02(悪化) PublicLB : -0.03 ・custom loss (WRMSSE lv1,lv12のみ計算) → valid : +0.06(悪化) PublicLB : -0.005 ・Final Solo Model Valid : 0.60191 PublicLB : 0.55194 PrivateLB : 0.59675(🥈)
  22. 22. M5 Forecasting - Accuracy Result ・Lag https://www.kaggle.com/kyakovlev/m5-simple-fe
  23. 23. M5 Forecasting - Accuracy Result ・Rolling https://www.kaggle.com/kyakovlev/m5-lags-features mean std
  24. 24. M5 Forecasting - Accuracy Result ・⽬的変数としてsales * sell_prices https://www.kaggle.com/c/m5-forecasting-accuracy/discussion/153963 Salesが1個でも、1$のペンと100000$の⾞では、意味合いが違う。 単位を揃える。 ⽬的変数とする
  25. 25. M5 Forecasting - Accuracy 結果 ・Custom Loss WRMSSEのLv1とLv12のみをlossとして計算
  26. 26. 𝑹𝑴𝑺𝑺𝑬 = ! " ∑!"#$% #$& $!% &$! ' % #(% ∑!"' # $!%$!(% ' = % & ∑!"#$% #$& $!% &$! ' % #(% ∑!"' # $!%$!(% ' 分⺟ は “当⽇の値(𝑌!)と前⽇の値(𝑌!"#)の差 ” 分⼦ は “実測(𝑌!)と予測(!𝑌!)の差 ” 前⽇の値による予測よりも、どの程度ちゃんと当てられているのかを表す指標 M5 Forecasting - Accuracy 結果 ・Metric : WRMSSE
  27. 27. M5 Forecasting - Accuracy 結果 ・Metric : WRMSSE 気になる点 ・学習期間でブレが⼤きい商品が、予測期間でブレが⼩さくなって外すと 分⺟が⼤きいためRMSSEへの影響は⼩さい ・学習期間でブレが⼩さい商品が、予測期間でブレが⼤きくなって外すと、 分⺟が⼩さいためRMSSEへの影響は⼤きい こっちの対応は必要 予測期間のみブレが⼤きくなりそうな商品をうまく予測する⽅法を考えていたが、 結局良い⽅法思い付かず・・・ 𝑹𝑴𝑺𝑺𝑬 = ! " ∑!"#$% #$& $!% &$! ' % #(% ∑!"' # $!%$!(% ' = % & ∑!"#$% #$& $!% &$! ' % #(% ∑!"' # $!%$!(% '
  28. 28. M5 Forecasting - Accuracy 結果 ・Recursive Feature 各⽇付の予測値を、次の⽇の特徴量として使⽤ In the case of predicting the temperature for the next two days, we would develop a one-step forecasting model. This model would then be used to predict day 1, then this prediction would be used as an observation input in order to predict day 2. https://machinelearningmastery.com/multi-step-time-series-forecasting/
  29. 29. M5 Forecasting - Accuracy 結果 ・Recursive Feature Recursive Modelはvarianceが⾼い https://www.kaggle.com/c/m5-forecasting-accuracy/discussion/153963
  30. 30. M5 Forecasting - Accuracy 結果 ・Recursive Feature 予測が全然当たっていないため、使⽤しなかった
  31. 31. M5 Forecasting - Accuracy 結果 ・Tweedie 0を重視した損失関数 y_true=0だとloss=b、つまり、lossの最⼤値をとりうる。 →0を外しずらいモデルができる。 https://www.kaggle.com/c/m5-forecasting-accuracy/discussion/150614
  32. 32. M5 Forecasting - Accuracy 結果 ・Tweedie 0を重視した損失関数 https://www.kaggle.com/c/m5-forecasting-accuracy/discussion/150614 Tweedie分布 15商品のdemandのヒストグラム(validation)
  33. 33. M5 Forecasting - Accuracy 結果 ・Tweedie 今回のデータは突発的な0が多いから有効︖ 0
  34. 34. M5 Forecasting - Accuracy 結果 ・Magic Parameter 「Publicのベストスコアを取る際のMagic Parameter 」 d1830-1857 ︓1.00 d1858-1885 ︓0.98 d1886-1913 ︓0.97 d1914-1941 ︓1.03 →ばらばら →Privateを上げるための Magic Parameterが不明 →使⽤しない
  35. 35. M5 Forecasting - Accuracy 結果 ・他に試したこと - データ使⽤期間 →データ使⽤期間は2年間で固定。 - 0を当てるモデル構築し、⾼確率で0の商品を0に置換したが精度悪化 →0かどうかはほぼ予測できない︖ - 1週間以上0が続く商品は在庫切れと仮定し、学習データから外す →valid,Public共にかなり悪化(+0.7 ) →Publicにも1週間以上0が続く商品はありそう データ使⽤期間 PublicLB 直近0.5年間 0.79217 直近1年間 0.64464 直近2年間 0.64666
  36. 36. M5 Forecasting - Accuracy 結果 ・他に試したこと - 1週間以上0が続く商品のデータを削除しても0が⾮常に多い分布 →データ全体として、突発的に0が発⽣するデータ︖ 元々のdemandのヒストグラム 1週間以上0が続く商品のデータを削除した demandのヒストグラム 1週間以上0が続く 商品データ削除
  37. 37. M5 Forecasting - Accuracy 結果 ・他に試したこと - LGBMのweightとして、それぞれの商品毎のWRMSSEの Wの部分を総和した値を与える。 →valid : -0.01 PublicLB : +0.06(悪化) →最終的にはcustom lossを使っていたため使⽤せず。 - WRMSSEを全lvをlossとして計算 →計算終わらないため断念・・・ - NN →計算終わらないため断念・・・ - Stacking →計算終わらないため断念・・・
  38. 38. M5 Forecasting - Accuracy 結果 ・良かった点 -よくわからない理由でスコアが上がる⼿法は避けた →精度改善時は、なぜ改善したかを納得するまで考えた。 精度悪化時は、なぜ悪化したかを納得するまで考えた。 ・反省点 - final submissionを作る際のデータミスを防ぐため、 予測値の相関を確認すべきだった。 - CVの⽅法を確⽴させたかった。安易にPublicLBを信⽤してしまった。 - むやみやたらにコンペに参加しない →Tweet, Youtubeコンペ、atma#5も期間中に参加し、全部中途半端に‥ →集中して⼀つのコンペに取り組むのが(僕は)最も楽しい
  39. 39. M5 Forecasting - Accuracy 結果 ・よく分からなかった点 - 在庫切れデータの扱い⽅ →0のデータには、 「素直に売れなかったとき」 「在庫切れのとき」 などがあると考えられ、その良い対処法が分からなかった。 - PoissonよりTweedieの⽅が有効な理由。 → TweedieはPoissonとgammaの混合分布。 Tweedieの⽅が有効な理由がよく分からない。 (そもそも本当に有効か︖)
  40. 40. ありがとうございました︕

×