偽預言者:回帰モデルとMeta’s Prophetの比較
偽預言者:回帰モデルとメタの予言者の比較
フランケンシュタインのような時間系列回帰モデルは、本物と競争できるのか?
おそらくMetaの素晴らしい予測パッケージProphetを基に構築したものとしての最後のエピソードで、自作版のモデルとオリジナルのモデルを比較してみます。
これはサクッと進めます:まずデータを確認し、それから2つのアプローチがどのようにアウトオブタイムのデータに対して予測するかを可視化します。その後、いくつかのメトリクスを使用してより形式的に、どちらがより優れた予測モデルなのかを判断し、適切な比較が行われたのかどうかについて議論します。
さあ、始めましょう。
補足:他のエピソードについても言及しています。具体的には、2つの別の記事に触れています。最初の記事ではProphetに基づいた時系列の特徴エンジニアリングについて取り上げられており、こちらで見つけることができます:
- 退屈なプレゼンテーションを素晴らしいものに変える:プレゼンテーションを改善する7つのハック
- 「NVIDIAがAIおよびHPCワークロードに特化したH200 Tensor Core GPUを発表」
- エラスティックサーチでシノニムを便利に更新するためにSynonyms APIを使用してください
False Prophet: 自作の時系列回帰用の特徴エンジニアリング
MetaのProphetパッケージのアイデアを基に、時系列の機械学習モデルに強力な特徴を作成する
towardsdatascience.com
その続編では、これらの新しい特徴を使用したモデルの構築に取り組んでいます。こちらでご覧いただけます:
False Prophet: 自作の時系列回帰モデル
MetaのProphetからアイデアを借りて、強力な時系列回帰モデルを構築する
towardsdatascience.com
今日ここで取り上げるトピックの多くは、リンクされた記事で詳しく説明されています。詳細な内容に興味がある場合は、ぜひお読みください。
データ
イギリスの道路交通事故のデータ¹を使用して、月ごとの件数でまとめました。
この時系列にはいくつかの特徴があります:
- シリーズ全体での強い下降トレンド
- 2012年から2014年の間に減少率の変化
- シリーズの初期におけるかなり強い季節性
- 特にシリーズの終わりにおいて、季節効果が変化する可能性がある。
目的
私たちは2つのモデルを持っています。自作のフランケンシュタインモデルをLASSOモデルとし、MetaのProphetを単にProphetと呼びます。
各モデルについて、アウトオブタイムの予測を行います。つまり、月次件数データの一部に適合させ、将来の12ヶ月間を予測します。
各予測は実際の観測データと比較され、平均的により近い予測を行ったモデルが勝者となります。
補足:これは基本的にはクロスバリデーションテストです。標準的なクロスバリデーション手法には精通しているけれども、時系列分析では使ったことがない場合は、以下の(2)が役に立つかもしれません。
イメージで見る
モデルごとにアウトオブタイムの予測を可視化することができます。LASSOモデルは赤、Prophetは青です。そしてそれらを実際の観測値と比較できます。
予測は、予測期間の前のすべてのデータを使用して構築されました。例えば、2010年の予測は2009年までのデータを使用して構築されています。
それはかなり明確な絵だ。ただし、2013年を除いて、Prophetは少し外れているようです。
興味深いのは、両アプローチによって作成された予測パターンの類似性です:
- 両モデルは予測を低く出しています – つまり、全体的に下がる傾向を反映しています。
- 両モデルには年内の増加と中間の急上昇があります – つまり、予測は似たような季節性パターンを示しています。
これらの2つのモデルは現実からどれだけ遠いのでしょうか?パフォーマンスメトリックスを調べる必要があります。
数字で見ると
通常のやり方でパフォーマンスを測定します – 平均絶対誤差(MAE)、平均絶対パーセント誤差(MAPE)、二乗平均平方根誤差(RMSE)など、新参者(私には)のMASEを含めて。
平均絶対スケール誤差
平均絶対スケール誤差(MASE)は、他の測定で見られる問題がなく、「一連の予測精度を比較できるだけでなく、シリーズ間で予測精度を比較できる、一般的に適用可能な測定値」とされます。
数学的には、MASEは時外予測誤差をインサンプル予測誤差で除算したものであり、単なる予測が行われる前年の同じ時点の値を基準にします。非常にシンプルです。
予測手法を比較する場合、最も低いMASEを持つ手法が好ましいです。
重要な点として、MASE>1は、予測手法が素朴な予測に比べて性能が悪いことを意味します。
注:リンクされた記事で説明されている実装を使用しました – つまり、「誤差」は平均絶対誤差です。スケール誤差の計算において、誤差の測定方法が一貫して使用される限り、MAEの代わりに他の性能指標(例:MAPE)を使用できると考えています。
結果
まとめて、オープンフォールドと全体の平均モデルのパフォーマンスを以下の指標で示しましょう:
それはLASSOモデルの比較的包括的な勝利であり、Prophetは一部小さなポイントで上回っています。
ナイフと銃撃戦?
見ての通り、Prophetのファンにとっては読みにくい結果です。Metaのツールは完全な完全敗北を避けるために(指標に依存して)いくつかのフォールドを奪うことができるようです。公正なコメントであれば、戦術を再評価するためにクラブハウスに戻ることを提案するでしょう。
Prophetにとって結果は良くありませんが、このようなパフォーマンスが期待できる理由がいくつかあります。
特徴
LASSOモデルは、この特定の時系列に特化した特徴を使用しています。それに使用できる入力特徴量のセットは、Prophetで使用できるものを含めて、少し多めです。
さらに、いくつかの特徴はLASSOモデルでは微妙に異なります。例えば、潜在的な変化点を説明する特徴はProphetモデルよりも制約が少ないです。
それは、相手よりも少ないかわずかに異なる情報を持って、相手を予測しようとすることと同じです。簡単ではありません。
モデリング
アウトオブフォールドデータは私が言いたいほど「未知のもの」ではありません。
以前の記事では、LASSOモデルのパラメータ化についてカバーしました:アウトオブフォールドデータを使用して正則化の強度を選択し、モデルの予測能力を最適化しました。その意味では、LASSOモデルはデータの切れ目ごとに優れた予測を行うように調整されており、Prophetモデルは直接開封して深いところに投げ込まれています。
「通常の」ハイパーパラメーター最適化の演習では、パフォーマンスが1%〜2%向上することが通常予想されますが、時系列のコンテキストでは、パフォーマンスの向上は「アウトオブフォールド」が「アウトオブタイム」であるため、はるかに大きいです。
それではProphetとお別れの時でしょうか?
そう急いではいけません…このシリーズの記事はいくつかのことを明らかにしました-いくつかお話しましょう。
Prophetは、そのままでも非常に優れた機能を持っています。確かに打ち負かすことは可能ですが、Prophetが起動し予測するために必要な10行のコードよりもずっと多くの作業が必要です。
LASSOモデルの読み取り性は、Prophetで利用できるものよりも優れています。はい、Prophetは予測の不確実性の推定結果を提供してくれますが、予測に寄与している要素はわかりません。ProphetをSHAPにかけることもできるのかさえわかりません。
私自身もProphetは調整があまり簡単ではないと感じました。おそらく、パッケージの高度なユーザーではないためか、またはパラメータを調整するための迂回した方法があるためかもしれません。これはLASSOモデルではまったくの別物です。
LASSOアプローチは、性能と可読性の向上を示していると言えるかもしれませんが、本当に必要なのは両方のアプローチを使うことかもしれません。たとえば、単純なProphetモデルが適切な予測を出す場合、性能を最大化するためにLASSOアプローチ(「誤った預言者」)を複製することも妥当な選択肢かもしれません。
<pそれが私からの全てです。このシリーズの記事を読んで楽しんでいただけたら幸いです。
いつものように、お知らせください-私はProphetや時系列のモデリングに関するご意見やご経験について興味津々です。
次回までお元気で。
参考文献と便利なリソース
- https://roadtraffic.dft.gov.uk/downloads オープンガバメントライセンス(nationalarchives.gov.uk)による使用
- Let’s Do: Time Series Cross-Validation | Python in Plain English
- Mean absolute scaled error — Wikipedia
</pそれが私からの全てです。このシリーズの記事を読んで楽しんでいただけたら幸いです。
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles