ニューラルネットワークを時系列予測に適用する方法


83

私は機械学習が初めてであり、ニューラルネットワークを時系列予測に適用する方法を模索しています。クエリに関連するリソースを見つけましたが、まだ少し失われているようです。あまり詳細を述べない基本的な説明が役立つと思います。

数年にわたって毎月の価格の値があり、新しい価格の値を予測したいとします。過去数か月間の価格のリストを取得し、K-Nearest-Neighborを使用して過去の同様の傾向を見つけようとしました。変化率や過去のトレンドのその他の特性を使用して、新しい価格を試して予測することができました。この同じ問題にニューラルネットワークを適用する方法は、私が見つけようとしていることです。




好奇心が強い@solarticは、このメソッドを正常に実装しましたか?
サギーマナティーと白鳥フォーク14年

回答:


102

コードの作成とアイデアのテストを開始するのに役立つ簡単なレシピを次に示します...

数年間にわたって毎月のデータが記録されているため、36個の値があるとします。また、1か月(値)を事前に予測することだけに関心があると仮定します。

  1. 探索的データ分析:従来の時系列分析方法のいくつかを適用して、データのラグ依存性を推定します(自己相関および部分自己相関プロット、変換、差分など)。ある月の値が過去3か月のデータと相関しているが、それ以上にそれほど相関していないとしましょう。
  2. データをトレーニングセットと検証セットに分割します。最初の24ポイントをトレーニング値として、残りのポイントを検証セットとして使用します。
  3. ニューラルネットワークレイアウトの作成:過去3か月の値を入力として使用し、翌月の値を予測します。したがって、3つのノードを含む入力層と1つのノードを含む出力層を備えたニューラルネットワークが必要です。おそらく、少なくとも2、3のノードを持つ隠しレイヤーが必要です。残念なことに、隠れ層の数とそれぞれのノードの数を選ぶことは、明確なガイドラインがあるものではありません。私は3:2:1のように小さく始めます。
  4. トレーニングパターンの作成:各トレーニングパターンは4つの値になります。最初の3つは入力ノードに対応し、最後の1つは出力ノードの正しい値を定義します。たとえば、トレーニングデータの値が場合、
    x1,x2,x24
    pattern1:x1,x2,x3,x4
    pattern2:x2,x3,x4,x5
    pattern21:x21,x22,x23,x24
  5. これらのパターンでニューラルネットワークをトレーニングする
  6. 検証セット(25〜36か月目)でネットワークをテストします。ここでは、入力層にニューラルネットワークが必要とする3つの値を渡し、出力ノードの設定を確認します。したがって、訓練されたニューラルネットワークが32か月目の値をどれだけうまく予測できるかを確認するには、29、30、および31か月目の値を渡します。

このレシピは明らかに高レベルであり、コンテキストをさまざまなソフトウェアライブラリ/プログラムにマップしようとすると、最初は頭を悩ますことがあります。しかし、うまくいけば、これが主なポイントをスケッチします:予測しようとしているシリーズの相関構造を合理的に含むトレーニングパターンを作成する必要があります。そして、ニューラルネットワークまたはARIMAモデルのどちらで予測を行う場合でも、その構造が何であるかを決定するための探索作業は、多くの場合、最も時間がかかり、難しい部分です。

私の経験では、ニューラルネットワークは優れた分類および予測機能を提供できますが、それらの設定には時間がかかります。上記の例では、21個のトレーニングパターンでは不十分であることがわかります。異なる入力データ変換は、より良い/より悪い予測につながります。隠れ層と隠れ層ノードの数を変えると、予測に大きく影響します。等

ニューラルネットワークの予測コンテストに関する膨大な情報が掲載されているneuro_forecasting Webサイトをご覧になることを強くお勧めします。動機のページには、特に便利です。


12
この回答に+1しますが、最新の3か月だけが回答に相関するものである場合でも、過去5年間の同じ月が有用な入力である可能性があります(例えば、12月が前の12月のように見える傾向がある場合、通常)。
ロスダビッド

1
素晴らしい答え。これは非常に役立つことがわかりました。高レベルの説明はまさに私が望んでいたものです。@rossdavidh:良い点+1。
ソラティック

2
ここでいくつかのサンプルコードを入手できたら素晴らしいと思います。
レオレオポルトヘルツ준영

1
興味深いのは、回帰変数と一緒の多変量時系列データセットです。
TommasoGuerrini

1
実際のデータへの応用と「従来の」時系列法との比較についての論文を知っている人はいますか?
マルコフマガッリ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.