web-dev-qa-db-ja.com

時系列予測(最終的にはPythonを使用)

  • 時系列予測/回帰にはどのようなアルゴリズムがありますか?
    • ニューラルネットワークの使用はどうですか? (このトピックに関する最高のドキュメント?)
    • 役立つpythonライブラリ/コードスニペットはありますか?
26
gpilotino

時系列回帰への古典的なアプローチは次のとおりです。

  • 自己回帰モデル (それらに関する文献全体があります)

  • ガウス過程

  • 信号の周期成分(つまり、データ内の隠れた振動)を抽出するためのフーリエ分解または同様のもの

私が知っている他のあまり一般的でないアプローチは

  • 低速機能分析 、時系列の駆動力を抽出するアルゴリズム、たとえば カオス信号の背後にあるパラメーター

  • ニューラルネットワーク(NN)アプローチは、リカレントNN(つまり、時報を処理するために構築された)または過去のデータの入力部分として受信して将来のポイントを予測しようとする従来のフィードフォワードNNのいずれかを使用します。後者の利点は、リカレントNNが遠い過去を考慮に入れることに問題があることが知られていることです。

財務データ分析についての私の意見では、時系列の最良の外挿だけでなく、信頼区間も取得することが重要です。これは、結果として得られる投資戦略がそれに応じて大きく異なる可能性があるためです。ガウス過程のような確率的手法は、将来の可能性のある値の確率分布を返すため、「無料」でそれを提供します。古典的な統計手法では、 ブートストラップ手法 に依存する必要があります。

統計ツールと機械学習ツールを提供するPythonライブラリはたくさんありますが、私が最もよく知っているライブラリは次のとおりです。

  • NumPy および SciPy はPythonでの科学プログラミングの必需品です
  • Python Rへのインターフェース、 RPy と呼ばれる)があります
  • statsmodel 自己回帰モデルを含む、古典的な統計モデル手法が含まれています。それは パンダ 、人気のあるデータ分析パッケージでうまく機能します
  • scikits.learn[〜#〜] mdp [〜#〜]MLPyオレンジ はのコレクションです機械学習アルゴリズム
  • PyMC A pythonマルコフ連鎖モンテカルロを含む、ベイズ統計モデルとフィッティングアルゴリズムを実装するモジュール。
  • PyBrain (とりわけ)フィードフォワードおよびリカレントニューラルネットワークの実装が含まれています
  • ガウス過程サイト 2つのPython実装を含むGPソフトウェアのリストがあります
  • mloss はオープンソースの機械学習ソフトウェアのディレクトリです
71
pberkes

pythonライブラリについてはわかりませんが、オープンソースであるRには優れた予測アルゴリズムがあります。コードと時系列予測のリファレンスについては forecast パッケージを参照してください。 。

5
Rob Hyndman

時系列の周期的なパターンを見つけるために 自己相関 を試しましたか? numpy.correlate 関数でそれを行うことができます。

3

その背後にあるアルゴリズムについてのみ言えば、私は最近、プロジェクトで 二重指数平滑化 を使用しましたが、データに傾向があるときに新しい値を予測することでうまくいきました。

実装は非常に簡単ですが、アルゴリズムが十分に精巧に作成されていない可能性があります。

3
GaretJax

2つのアプローチ

分類、回帰、クラスタリング、予測、および関連タスクの時間的構造化入力を処理する方法には、2つの方法があります。

  1. 専用時系列モデル:機械学習アルゴリズムは、このような時系列を直接組み込みます。このようなモデルはブラックボックスのようなものであり、モデルの動作を説明するのは難しい場合があります。例は自己回帰モデルです。
  2. 機能ベースのアプローチ:ここで、時系列は別の、場合によっては低次元の表現にマップされます。これは、特徴抽出アルゴリズムが時系列の平均値や最大値などの特性を計算することを意味します。次に、特徴は、特徴マトリックスとして、ニューラルネットワーク、ランダムフォレスト、サポートベクターマシンなどの「通常の」機械学習に渡されます。このアプローチには、結果の説明性が向上するという利点があります。さらに、教師あり機械学習の十分に開発された理論を使用することができます。

tsfreshは膨大な数の機能を計算します

python package tsfresh 時系列を含むpandas.DataFrameからそのような機能の膨大な数を計算します。そのドキュメントは http:/ /tsfresh.readthedocs.io

enter image description here

免責事項:私はtsfreshの作者の一人です。

3
MaxBenChrist

データ処理のグループ方式 財務データの予測に広く使用されています。

2
BrutForce

質問に直接答えることはできませんが、時系列予測とシーケンシャルデータマイニングに適したライブラリについて多くのグーグルを行った後、このワークショップページに出くわしました http://sequenceanalysis.github.io/ whichマルコフ連鎖フィッティングに関する興味深いコードがあります。私はそれが他の誰かにも役立つことを願っています:)

1
Jasmine

Pythonを使用した時系列予測を理解したい場合は、以下のリンクが非常に役立ちます。

https://github.com/ManojKumarMaruthi/Time-Series-Forecasting

0
Satya