SlideShare une entreprise Scribd logo
1  sur  40
Télécharger pour lire hors ligne
M5 反省会
sinchir0
l⾃⼰紹介
lKaggle歴
lM5 Forecasting - Accuracy
• 概要
• 結果
Agenda
l東北⼤学⼤学院 ⼯学研究科 バイオロボティクス専攻
l2015.4 ~ SIer : システムエンジニア
• インフラシステムの保守・運⽤
l2018.10 ~ 同上 : データサイエンティスト
• 電⼒需要予測
• 蓄電池劣化予測
• 業務改善コンサル
l2019.8 ~ IBM Japan : Data Scientist
• 天候データを⽤いた⾵災被害予測
• 機械学習アプリケーション開発
@sinchir0
齋藤 慎⼀朗
⾃⼰紹介
Kaggle 歴
・ IEEE-CIS Fraud Detection 🥉
・ Google QUEST Q&A Labeling 🥉
・・・要精進 でも、メダルが取れなくてもKaggleは楽しい︕
参加コンペ数
メダル
M5 Forecasting - Accuracy
M5 Forecasting - Accuracy
概要
・受領データ
ファイル名 概要
sales_train_validation.csv 商品毎の売上データ
sales_train_evaluation.csv 商品毎の売上データ(6/1に公開)
sell_prices.csv 商品の値段
calendar.csv ⽇付
sample_submission.csv 提出ファイルの例
M5 Forecasting - Accuracy
概要
・ ⽬的変数
商品(id)ごとの売上
学習データ 先頭5⾏ ⽬的変数
M5 Forecasting - Accuracy
概要
・データ期間
train
1 ~ 1913
validation
1914~ 1941
1969⽇
evaluation
1942~ 1969
PublicLB PrivateLB
2011-01-29 2016-04-25 2016-05-23
train
1 ~ 1913
validation
1914~ 1941
1969day
evaluation
1942~ 1969
sales_train_validation.csv
train
1 ~ 1913
validation
1914~ 1941
1969day
evaluation
1942~ 1969
sales_train_evaluation.csv
train
1 ~ 1913
validation
1914~ 1941
1969day
evaluation
1942~ 1969
sample_submission.csv
列名に
validation
を含む
列名に
evaluation
を含む
sell_prices.csv
sell_prices.csv
calendar.csv
calendar.csv
M5 Forecasting - Accuracy
概要
・Metric : WRMSSE
Weighted Root Mean Squared Scaled Error
M5 Forecasting - Accuracy
概要
・Metric : WRMSSE
Weighted Root Mean Squared Scaled Error
M5 Forecasting - Accuracy
概要
・Metric : WRMSSE
n : 学習期間
h : 予測期間
!𝑌! : 予測値
𝑌! : 実測値
t : 時系列
M5 Forecasting - Accuracy
概要
・Metric : WRMSSE
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の考え⽅
M5 Forecasting - Accuracy
結果
・Top48% 😂
My Model
Team Member
Model
Final Submission
Final SubWeighted
Average
🥈
😣
Not
Recursive
Recursive
M5 Forecasting - Accuracy
結果
・CV
最後の28⽇間でHold Out、ほぼTrust PublicLB
- TimeSerieSplitなど検討したが、良い⽅法⾒つからず。
- 最近のデータは傾向が異なっているように⾒えた。
最後の28⽇間
https://www.kaggle.com/robikscube/m5-forecasting-starter-data-exploration
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(🥈)
M5 Forecasting - Accuracy
Result
・Lag
https://www.kaggle.com/kyakovlev/m5-simple-fe
M5 Forecasting - Accuracy
Result
・Rolling
https://www.kaggle.com/kyakovlev/m5-lags-features
mean std
M5 Forecasting - Accuracy
Result
・⽬的変数としてsales * sell_prices
https://www.kaggle.com/c/m5-forecasting-accuracy/discussion/153963
Salesが1個でも、1$のペンと100000$の⾞では、意味合いが違う。
単位を揃える。
⽬的変数とする
M5 Forecasting - Accuracy
結果
・Custom Loss
WRMSSEのLv1とLv12のみをlossとして計算
𝑹𝑴𝑺𝑺𝑬 =
!
"
∑!"#$%
#$& $!% &$!
'
%
#(%
∑!"'
# $!%$!(%
'
=
%
&
∑!"#$%
#$& $!% &$!
'
%
#(%
∑!"'
# $!%$!(%
'
分⺟ は “当⽇の値(𝑌!)と前⽇の値(𝑌!"#)の差 ”
分⼦ は “実測(𝑌!)と予測(!𝑌!)の差 ”
前⽇の値による予測よりも、どの程度ちゃんと当てられているのかを表す指標
M5 Forecasting - Accuracy
結果
・Metric : WRMSSE
M5 Forecasting - Accuracy
結果
・Metric : WRMSSE
気になる点
・学習期間でブレが⼤きい商品が、予測期間でブレが⼩さくなって外すと
分⺟が⼤きいためRMSSEへの影響は⼩さい
・学習期間でブレが⼩さい商品が、予測期間でブレが⼤きくなって外すと、
分⺟が⼩さいためRMSSEへの影響は⼤きい
こっちの対応は必要
予測期間のみブレが⼤きくなりそうな商品をうまく予測する⽅法を考えていたが、
結局良い⽅法思い付かず・・・
𝑹𝑴𝑺𝑺𝑬 =
!
"
∑!"#$%
#$& $!% &$!
'
%
#(%
∑!"'
# $!%$!(%
'
=
%
&
∑!"#$%
#$& $!% &$!
'
%
#(%
∑!"'
# $!%$!(%
'
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/
M5 Forecasting - Accuracy
結果
・Recursive Feature
Recursive Modelはvarianceが⾼い
https://www.kaggle.com/c/m5-forecasting-accuracy/discussion/153963
M5 Forecasting - Accuracy
結果
・Recursive Feature
予測が全然当たっていないため、使⽤しなかった
M5 Forecasting - Accuracy
結果
・Tweedie
0を重視した損失関数
y_true=0だとloss=b、つまり、lossの最⼤値をとりうる。
→0を外しずらいモデルができる。
https://www.kaggle.com/c/m5-forecasting-accuracy/discussion/150614
M5 Forecasting - Accuracy
結果
・Tweedie
0を重視した損失関数
https://www.kaggle.com/c/m5-forecasting-accuracy/discussion/150614
Tweedie分布 15商品のdemandのヒストグラム(validation)
M5 Forecasting - Accuracy
結果
・Tweedie
今回のデータは突発的な0が多いから有効︖
0
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が不明
→使⽤しない
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
M5 Forecasting - Accuracy
結果
・他に試したこと
- 1週間以上0が続く商品のデータを削除しても0が⾮常に多い分布
→データ全体として、突発的に0が発⽣するデータ︖
元々のdemandのヒストグラム
1週間以上0が続く商品のデータを削除した
demandのヒストグラム
1週間以上0が続く
商品データ削除
M5 Forecasting - Accuracy
結果
・他に試したこと
- LGBMのweightとして、それぞれの商品毎のWRMSSEの
Wの部分を総和した値を与える。
→valid : -0.01 PublicLB : +0.06(悪化)
→最終的にはcustom lossを使っていたため使⽤せず。
- WRMSSEを全lvをlossとして計算
→計算終わらないため断念・・・
- NN
→計算終わらないため断念・・・
- Stacking
→計算終わらないため断念・・・
M5 Forecasting - Accuracy
結果
・良かった点
-よくわからない理由でスコアが上がる⼿法は避けた
→精度改善時は、なぜ改善したかを納得するまで考えた。
精度悪化時は、なぜ悪化したかを納得するまで考えた。
・反省点
- final submissionを作る際のデータミスを防ぐため、
予測値の相関を確認すべきだった。
- CVの⽅法を確⽴させたかった。安易にPublicLBを信⽤してしまった。
- むやみやたらにコンペに参加しない
→Tweet, Youtubeコンペ、atma#5も期間中に参加し、全部中途半端に‥
→集中して⼀つのコンペに取り組むのが(僕は)最も楽しい
M5 Forecasting - Accuracy
結果
・よく分からなかった点
- 在庫切れデータの扱い⽅
→0のデータには、
「素直に売れなかったとき」
「在庫切れのとき」
などがあると考えられ、その良い対処法が分からなかった。
- PoissonよりTweedieの⽅が有効な理由。
→ TweedieはPoissonとgammaの混合分布。
Tweedieの⽅が有効な理由がよく分からない。
(そもそも本当に有効か︖)
ありがとうございました︕

Contenu connexe

Similaire à M5 sinchir0

企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624Yusuke Suzuki
 
数据挖掘竞赛经验分享 严强
数据挖掘竞赛经验分享 严强数据挖掘竞赛经验分享 严强
数据挖掘竞赛经验分享 严强Felicia Wenyi Fei
 
Crystal Ball - 3.Application Examples
Crystal Ball - 3.Application ExamplesCrystal Ball - 3.Application Examples
Crystal Ball - 3.Application ExamplesKaitoKojima
 
Microsoft Open Tech Night: Azure Machine Learning - AutoML徹底解説
Microsoft Open Tech Night: Azure Machine Learning - AutoML徹底解説Microsoft Open Tech Night: Azure Machine Learning - AutoML徹底解説
Microsoft Open Tech Night: Azure Machine Learning - AutoML徹底解説Daiyu Hatakeyama
 
マルチエージェント強化学習 (MARL) と M^3RL
マルチエージェント強化学習 (MARL) と M^3RLマルチエージェント強化学習 (MARL) と M^3RL
マルチエージェント強化学習 (MARL) と M^3RLHarukaKiyohara
 
ML Pipelineで実践機械学習
ML Pipelineで実践機械学習ML Pipelineで実践機械学習
ML Pipelineで実践機械学習Kazuki Taniguchi
 
機械学習モデルの負荷がやばすぎて、100倍高速にしつつ精度も上げた話
機械学習モデルの負荷がやばすぎて、100倍高速にしつつ精度も上げた話機械学習モデルの負荷がやばすぎて、100倍高速にしつつ精度も上げた話
機械学習モデルの負荷がやばすぎて、100倍高速にしつつ精度も上げた話Yuta Nakagawa
 
Wacate2018 winter jstqb-al-ta
Wacate2018 winter jstqb-al-taWacate2018 winter jstqb-al-ta
Wacate2018 winter jstqb-al-takauji0522
 
AlloyDB のデータ分析基盤での活用におけるポテンシャルとは?
AlloyDB のデータ分析基盤での活用におけるポテンシャルとは?AlloyDB のデータ分析基盤での活用におけるポテンシャルとは?
AlloyDB のデータ分析基盤での活用におけるポテンシャルとは?Takuya Ogawa
 
JAWSUG名古屋 AWS勉強会 20180309
JAWSUG名古屋 AWS勉強会 20180309JAWSUG名古屋 AWS勉強会 20180309
JAWSUG名古屋 AWS勉強会 20180309陽平 山口
 
機械学習 - MNIST の次のステップ
機械学習 - MNIST の次のステップ機械学習 - MNIST の次のステップ
機械学習 - MNIST の次のステップDaiyu Hatakeyama
 
[db tech showcase Sapporo 2015] B16:ビッグデータには、なぜ列指向が有効なのか? by 日本ヒューレット・パッカード株式...
[db tech showcase Sapporo 2015] B16:ビッグデータには、なぜ列指向が有効なのか? by 日本ヒューレット・パッカード株式...[db tech showcase Sapporo 2015] B16:ビッグデータには、なぜ列指向が有効なのか? by 日本ヒューレット・パッカード株式...
[db tech showcase Sapporo 2015] B16:ビッグデータには、なぜ列指向が有効なのか? by 日本ヒューレット・パッカード株式...Insight Technology, Inc.
 
PMBOKで学ぶマネジメント基本のキ
PMBOKで学ぶマネジメント基本のキPMBOKで学ぶマネジメント基本のキ
PMBOKで学ぶマネジメント基本のキHiroyuki Tanaka
 
Azure Machine Learning Hands-on - AutoML編 - 2020年1月
Azure Machine Learning Hands-on - AutoML編 - 2020年1月Azure Machine Learning Hands-on - AutoML編 - 2020年1月
Azure Machine Learning Hands-on - AutoML編 - 2020年1月Daiyu Hatakeyama
 
郡山 Connect 2022 ハッカソン 基調講演 - Hackathon からサービスインになったらデータを扱いましょう
郡山 Connect 2022 ハッカソン 基調講演 - Hackathon からサービスインになったらデータを扱いましょう郡山 Connect 2022 ハッカソン 基調講演 - Hackathon からサービスインになったらデータを扱いましょう
郡山 Connect 2022 ハッカソン 基調講演 - Hackathon からサービスインになったらデータを扱いましょうDaiyu Hatakeyama
 
顧客データを基にしたHivemallによる成約率予測
顧客データを基にしたHivemallによる成約率予測顧客データを基にしたHivemallによる成約率予測
顧客データを基にしたHivemallによる成約率予測Classi.corp
 
LBJ2016オープンステージスライド
LBJ2016オープンステージスライドLBJ2016オープンステージスライド
LBJ2016オープンステージスライドKurata Takeshi
 

Similaire à M5 sinchir0 (20)

企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624
 
数据挖掘竞赛经验分享 严强
数据挖掘竞赛经验分享 严强数据挖掘竞赛经验分享 严强
数据挖掘竞赛经验分享 严强
 
Crystal Ball - 3.Application Examples
Crystal Ball - 3.Application ExamplesCrystal Ball - 3.Application Examples
Crystal Ball - 3.Application Examples
 
Microsoft Open Tech Night: Azure Machine Learning - AutoML徹底解説
Microsoft Open Tech Night: Azure Machine Learning - AutoML徹底解説Microsoft Open Tech Night: Azure Machine Learning - AutoML徹底解説
Microsoft Open Tech Night: Azure Machine Learning - AutoML徹底解説
 
マルチエージェント強化学習 (MARL) と M^3RL
マルチエージェント強化学習 (MARL) と M^3RLマルチエージェント強化学習 (MARL) と M^3RL
マルチエージェント強化学習 (MARL) と M^3RL
 
[4.20版] UE4におけるLoadingとGCのProfilingと最適化手法
[4.20版] UE4におけるLoadingとGCのProfilingと最適化手法[4.20版] UE4におけるLoadingとGCのProfilingと最適化手法
[4.20版] UE4におけるLoadingとGCのProfilingと最適化手法
 
ML Pipelineで実践機械学習
ML Pipelineで実践機械学習ML Pipelineで実践機械学習
ML Pipelineで実践機械学習
 
機械学習モデルの負荷がやばすぎて、100倍高速にしつつ精度も上げた話
機械学習モデルの負荷がやばすぎて、100倍高速にしつつ精度も上げた話機械学習モデルの負荷がやばすぎて、100倍高速にしつつ精度も上げた話
機械学習モデルの負荷がやばすぎて、100倍高速にしつつ精度も上げた話
 
IMS/GLC Caliper
IMS/GLC CaliperIMS/GLC Caliper
IMS/GLC Caliper
 
Wacate2018 winter jstqb-al-ta
Wacate2018 winter jstqb-al-taWacate2018 winter jstqb-al-ta
Wacate2018 winter jstqb-al-ta
 
AlloyDB のデータ分析基盤での活用におけるポテンシャルとは?
AlloyDB のデータ分析基盤での活用におけるポテンシャルとは?AlloyDB のデータ分析基盤での活用におけるポテンシャルとは?
AlloyDB のデータ分析基盤での活用におけるポテンシャルとは?
 
JIRAを使ったフツウのPJ実践
JIRAを使ったフツウのPJ実践JIRAを使ったフツウのPJ実践
JIRAを使ったフツウのPJ実践
 
JAWSUG名古屋 AWS勉強会 20180309
JAWSUG名古屋 AWS勉強会 20180309JAWSUG名古屋 AWS勉強会 20180309
JAWSUG名古屋 AWS勉強会 20180309
 
機械学習 - MNIST の次のステップ
機械学習 - MNIST の次のステップ機械学習 - MNIST の次のステップ
機械学習 - MNIST の次のステップ
 
[db tech showcase Sapporo 2015] B16:ビッグデータには、なぜ列指向が有効なのか? by 日本ヒューレット・パッカード株式...
[db tech showcase Sapporo 2015] B16:ビッグデータには、なぜ列指向が有効なのか? by 日本ヒューレット・パッカード株式...[db tech showcase Sapporo 2015] B16:ビッグデータには、なぜ列指向が有効なのか? by 日本ヒューレット・パッカード株式...
[db tech showcase Sapporo 2015] B16:ビッグデータには、なぜ列指向が有効なのか? by 日本ヒューレット・パッカード株式...
 
PMBOKで学ぶマネジメント基本のキ
PMBOKで学ぶマネジメント基本のキPMBOKで学ぶマネジメント基本のキ
PMBOKで学ぶマネジメント基本のキ
 
Azure Machine Learning Hands-on - AutoML編 - 2020年1月
Azure Machine Learning Hands-on - AutoML編 - 2020年1月Azure Machine Learning Hands-on - AutoML編 - 2020年1月
Azure Machine Learning Hands-on - AutoML編 - 2020年1月
 
郡山 Connect 2022 ハッカソン 基調講演 - Hackathon からサービスインになったらデータを扱いましょう
郡山 Connect 2022 ハッカソン 基調講演 - Hackathon からサービスインになったらデータを扱いましょう郡山 Connect 2022 ハッカソン 基調講演 - Hackathon からサービスインになったらデータを扱いましょう
郡山 Connect 2022 ハッカソン 基調講演 - Hackathon からサービスインになったらデータを扱いましょう
 
顧客データを基にしたHivemallによる成約率予測
顧客データを基にしたHivemallによる成約率予測顧客データを基にしたHivemallによる成約率予測
顧客データを基にしたHivemallによる成約率予測
 
LBJ2016オープンステージスライド
LBJ2016オープンステージスライドLBJ2016オープンステージスライド
LBJ2016オープンステージスライド
 

M5 sinchir0

  • 2. l⾃⼰紹介 lKaggle歴 lM5 Forecasting - Accuracy • 概要 • 結果 Agenda
  • 3. l東北⼤学⼤学院 ⼯学研究科 バイオロボティクス専攻 l2015.4 ~ SIer : システムエンジニア • インフラシステムの保守・運⽤ l2018.10 ~ 同上 : データサイエンティスト • 電⼒需要予測 • 蓄電池劣化予測 • 業務改善コンサル l2019.8 ~ IBM Japan : Data Scientist • 天候データを⽤いた⾵災被害予測 • 機械学習アプリケーション開発 @sinchir0 齋藤 慎⼀朗 ⾃⼰紹介
  • 4. Kaggle 歴 ・ IEEE-CIS Fraud Detection 🥉 ・ Google QUEST Q&A Labeling 🥉 ・・・要精進 でも、メダルが取れなくてもKaggleは楽しい︕ 参加コンペ数 メダル
  • 5. M5 Forecasting - Accuracy
  • 6. M5 Forecasting - Accuracy 概要 ・受領データ ファイル名 概要 sales_train_validation.csv 商品毎の売上データ sales_train_evaluation.csv 商品毎の売上データ(6/1に公開) sell_prices.csv 商品の値段 calendar.csv ⽇付 sample_submission.csv 提出ファイルの例
  • 7. M5 Forecasting - Accuracy 概要 ・ ⽬的変数 商品(id)ごとの売上 学習データ 先頭5⾏ ⽬的変数
  • 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. train 1 ~ 1913 validation 1914~ 1941 1969day evaluation 1942~ 1969 sales_train_validation.csv
  • 10. train 1 ~ 1913 validation 1914~ 1941 1969day evaluation 1942~ 1969 sales_train_evaluation.csv
  • 11. train 1 ~ 1913 validation 1914~ 1941 1969day evaluation 1942~ 1969 sample_submission.csv 列名に validation を含む 列名に evaluation を含む
  • 14. M5 Forecasting - Accuracy 概要 ・Metric : WRMSSE Weighted Root Mean Squared Scaled Error
  • 15. M5 Forecasting - Accuracy 概要 ・Metric : WRMSSE Weighted Root Mean Squared Scaled Error
  • 16. M5 Forecasting - Accuracy 概要 ・Metric : WRMSSE n : 学習期間 h : 予測期間 !𝑌! : 予測値 𝑌! : 実測値 t : 時系列
  • 17. M5 Forecasting - Accuracy 概要 ・Metric : WRMSSE
  • 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. M5 Forecasting - Accuracy 結果 ・Top48% 😂 My Model Team Member Model Final Submission Final SubWeighted Average 🥈 😣 Not Recursive Recursive
  • 20. M5 Forecasting - Accuracy 結果 ・CV 最後の28⽇間でHold Out、ほぼTrust PublicLB - TimeSerieSplitなど検討したが、良い⽅法⾒つからず。 - 最近のデータは傾向が異なっているように⾒えた。 最後の28⽇間 https://www.kaggle.com/robikscube/m5-forecasting-starter-data-exploration
  • 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. M5 Forecasting - Accuracy Result ・Lag https://www.kaggle.com/kyakovlev/m5-simple-fe
  • 23. M5 Forecasting - Accuracy Result ・Rolling https://www.kaggle.com/kyakovlev/m5-lags-features mean std
  • 24. M5 Forecasting - Accuracy Result ・⽬的変数としてsales * sell_prices https://www.kaggle.com/c/m5-forecasting-accuracy/discussion/153963 Salesが1個でも、1$のペンと100000$の⾞では、意味合いが違う。 単位を揃える。 ⽬的変数とする
  • 25. M5 Forecasting - Accuracy 結果 ・Custom Loss WRMSSEのLv1とLv12のみをlossとして計算
  • 26. 𝑹𝑴𝑺𝑺𝑬 = ! " ∑!"#$% #$& $!% &$! ' % #(% ∑!"' # $!%$!(% ' = % & ∑!"#$% #$& $!% &$! ' % #(% ∑!"' # $!%$!(% ' 分⺟ は “当⽇の値(𝑌!)と前⽇の値(𝑌!"#)の差 ” 分⼦ は “実測(𝑌!)と予測(!𝑌!)の差 ” 前⽇の値による予測よりも、どの程度ちゃんと当てられているのかを表す指標 M5 Forecasting - Accuracy 結果 ・Metric : WRMSSE
  • 27. M5 Forecasting - Accuracy 結果 ・Metric : WRMSSE 気になる点 ・学習期間でブレが⼤きい商品が、予測期間でブレが⼩さくなって外すと 分⺟が⼤きいためRMSSEへの影響は⼩さい ・学習期間でブレが⼩さい商品が、予測期間でブレが⼤きくなって外すと、 分⺟が⼩さいためRMSSEへの影響は⼤きい こっちの対応は必要 予測期間のみブレが⼤きくなりそうな商品をうまく予測する⽅法を考えていたが、 結局良い⽅法思い付かず・・・ 𝑹𝑴𝑺𝑺𝑬 = ! " ∑!"#$% #$& $!% &$! ' % #(% ∑!"' # $!%$!(% ' = % & ∑!"#$% #$& $!% &$! ' % #(% ∑!"' # $!%$!(% '
  • 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. M5 Forecasting - Accuracy 結果 ・Recursive Feature Recursive Modelはvarianceが⾼い https://www.kaggle.com/c/m5-forecasting-accuracy/discussion/153963
  • 30. M5 Forecasting - Accuracy 結果 ・Recursive Feature 予測が全然当たっていないため、使⽤しなかった
  • 31. M5 Forecasting - Accuracy 結果 ・Tweedie 0を重視した損失関数 y_true=0だとloss=b、つまり、lossの最⼤値をとりうる。 →0を外しずらいモデルができる。 https://www.kaggle.com/c/m5-forecasting-accuracy/discussion/150614
  • 32. M5 Forecasting - Accuracy 結果 ・Tweedie 0を重視した損失関数 https://www.kaggle.com/c/m5-forecasting-accuracy/discussion/150614 Tweedie分布 15商品のdemandのヒストグラム(validation)
  • 33. M5 Forecasting - Accuracy 結果 ・Tweedie 今回のデータは突発的な0が多いから有効︖ 0
  • 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. 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. M5 Forecasting - Accuracy 結果 ・他に試したこと - 1週間以上0が続く商品のデータを削除しても0が⾮常に多い分布 →データ全体として、突発的に0が発⽣するデータ︖ 元々のdemandのヒストグラム 1週間以上0が続く商品のデータを削除した demandのヒストグラム 1週間以上0が続く 商品データ削除
  • 37. M5 Forecasting - Accuracy 結果 ・他に試したこと - LGBMのweightとして、それぞれの商品毎のWRMSSEの Wの部分を総和した値を与える。 →valid : -0.01 PublicLB : +0.06(悪化) →最終的にはcustom lossを使っていたため使⽤せず。 - WRMSSEを全lvをlossとして計算 →計算終わらないため断念・・・ - NN →計算終わらないため断念・・・ - Stacking →計算終わらないため断念・・・
  • 38. M5 Forecasting - Accuracy 結果 ・良かった点 -よくわからない理由でスコアが上がる⼿法は避けた →精度改善時は、なぜ改善したかを納得するまで考えた。 精度悪化時は、なぜ悪化したかを納得するまで考えた。 ・反省点 - final submissionを作る際のデータミスを防ぐため、 予測値の相関を確認すべきだった。 - CVの⽅法を確⽴させたかった。安易にPublicLBを信⽤してしまった。 - むやみやたらにコンペに参加しない →Tweet, Youtubeコンペ、atma#5も期間中に参加し、全部中途半端に‥ →集中して⼀つのコンペに取り組むのが(僕は)最も楽しい
  • 39. M5 Forecasting - Accuracy 結果 ・よく分からなかった点 - 在庫切れデータの扱い⽅ →0のデータには、 「素直に売れなかったとき」 「在庫切れのとき」 などがあると考えられ、その良い対処法が分からなかった。 - PoissonよりTweedieの⽅が有効な理由。 → TweedieはPoissonとgammaの混合分布。 Tweedieの⽅が有効な理由がよく分からない。 (そもそも本当に有効か︖)