By Derrick Mwiti, Data Analyst

Image

編者注:このチュートリアルは LSTM モデルで時系列の予測に着手する方法を説明するものです。 株式市場のデータは、非常に規則的で誰もが広く利用できるため、これには最適な選択です。

このチュートリアルでは、株価の将来の挙動を予測するPythonディープラーニングモデルを構築します。 読者はPythonの深層学習の概念、特にLong Short-Term Memoryに精通していることを前提としています。

実際の株価を予測するのは上り坂ですが、株価が上がるか下がるかを予測するモデルを構築することは可能です。 このチュートリアルで使用したデータとノートブックは、ここで見ることができます。 重要なのは、政治的な雰囲気や市場など、株価に影響を与える他の要因が常に存在することです。

はじめに

LSTM は過去の情報を保存することができるので、シーケンス予測問題では非常に強力です。

まず、科学的計算のための NumPy、グラフをプロットするための Matplotlib、そしてデータセットの読み込みと操作を補助するための Pandas をインポートします。

Loading the Dataset

次のステップは、トレーニング データセットをロードして、モデリングで使用する Open および High カラムを選択することです。

どのようなデータセットで作業しているかを垣間見るために、データセットの先頭をチェックします。

列は開始価格で、Close列は特定の取引日の株の最終価格です。 High列とLow列は、特定の日の最高値と最安値を表します。

Feature Scaling

深層学習モデルでの以前の経験から、最適なパフォーマンスを得るためにデータをスケールしなければならないことが分かっています。 今回のケースでは、Scikit-LearnのMinMaxScalerを使用して、データセットを0から1の間の数にスケールします。

タイムステップによるデータの作成

LSTM は、データが特定の形式、通常は3D配列であることを期待しています。 まず、60タイムステップでデータを作成し、NumPyを使って配列に変換します。 次に、データをX_trainサンプル、60タイムスタンプ、各ステップで1つの特徴を持つ3次元配列に変換します。

LSTMの構築

LSTMを構築するために、Kerasからいくつかのモジュールをインポートする必要があります。

  1. Sequential for initializing the neural network
  2. Dense for adding a densely connected neural network layer
  3. LSTM for adding the Long Short-Term Memory layer
  4. Dropout for adding dropout layers that prevent overfitting

We added the LSTM layer and later add a few Dropout layers to prevent overfitting.LTM レイアウトのためのモジュールは、以下の通りです。

  1. 出力空間の次元である50ユニット
  2. return_sequences=True 出力シーケンスの最後の出力を返すか、完全なシーケンスを返すかを決める
  3. input_shape 学習セットの形状として

Dropout層を定義するとき、0.2を指定して、層の20%が削除されることを意味している。 その後、出力を1単位とするDense層を追加します。 この後、有名なadam optimizerを使ってモデルをコンパイルし、損失をmean_squarred_errorに設定する。 これにより、二乗誤差の平均が計算される。 次に、バッチサイズ32で100エポックで実行するようにモデルを適合させます。 9050>

Predicting future stock using the Test Set

First we need to import the test set that will use to make our predictions on.これは、テストセットを使用して、将来の株価を予測するものです。

将来の株価を予測するためには、テストセットを読み込んだ後、いくつかのことを行う必要があります:

  1. 0軸で学習セットとテストセットをマージします。
  2. 時間ステップを60に設定(以前見たように)
  3. 新しいデータセットを変換するためにMinMaxScalerを使用
  4. 以前行ったようにデータセットを再編成

予測を行った後、inverse_transformを使って通常の読みやすい形式で株価を取得する。

結果のプロット

最後に、予測された株価と実際の株価の結果を可視化するためにMatplotlibを使用します。

このプロットから、我々のモデルも株価の上昇を予測しているのに実際の株価は上昇したことが見て取れます。 これは、LSTMが時系列や連続したデータの分析にいかに強力であるかを明確に示しています。

結論

移動平均、線形回帰、K-最近傍探索、ARIMAやプロフェットなど、株価予測の他のいくつかのテクニックがあります。 これらは、自分でテストして、Keras LSTMと性能を比較することができる技術です。 Keras と深層学習についてもっと学びたい場合は、それに関する私の記事をこことここで見ることができます。

Reddit と Hacker News でこの投稿について議論してください。 Derrick Mwiti は、データ アナリスト、ライター、そしてメンターです。 彼はすべてのタスクで素晴らしい結果を出すことを原動力としており、Lapid Leaders Africaのメンターでもあります。 許可を得て再掲載。

関連:

  • Introduction to Deep Learning with Keras
  • Introduction to PyTorch for Deep Learning
  • The Keras 4 Step Workflow

関連:

  • Introduction to Deep Learning with Keras
  • The Deep Learning for PyTorch

Articles

コメントを残す

メールアドレスが公開されることはありません。