1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【技術解説】LSTMによる資産管理の可視化!Pythonで未来の投資を予測する方法

1
Posted at

LSTMによる資産管理の可視化と投資予測

この記事では、Pythonを使用したLSTM(Long Short-Term Memory)を活用した時系列予測の手法について解説します。LSTMは特に金融データ予測において効果的であり、資産管理におけるデータの可視化をサポートします。使用するライブラリは、yfinance(Yahoo Finance API)、keras(深層学習ライブラリ)、pandas、numpy、matplotlibです。

LSTMとは

LSTMはリカレントニューラルネットワーク(RNN)の一種で、特に長期的な依存関係を考慮できるため、時系列データの予測に適しています。金融データのように季節性やトレンドが存在する場合でも、効果的に学習を行うことができます。

必要なライブラリのインストール

プロジェクトに必要なライブラリをインストールします。以下のコマンドを実行してください。

pip install yfinance keras pandas numpy matplotlib

データ取得と前処理

yfinanceを使用して過去の株価データを取得し、LSTMモデルに適した形式に変換します。

import yfinance as yf
import numpy as np
import pandas as pd
from sklearn.preprocessing import MinMaxScaler

# データの取得
ticker = "AAPL"  # Appleの株価を使用
data = yf.download(ticker, start="2010-01-01", end="2023-01-01")

# Close価格だけを使用
data = data[['Close']]

# データの正規化
scaler = MinMaxScaler(feature_range=(0, 1))
scaled_data = scaler.fit_transform(data)

# データセットの作成
def create_dataset(data, time_step=1):
    X, y = [], []
    for i in range(len(data) - time_step - 1):
        a = data[i:(i + time_step), 0]
        X.append(a)
        y.append(data[i + time_step, 0])
    return np.array(X), np.array(y)

time_step = 60
X, y = create_dataset(scaled_data, time_step)

# 入力データの整形
X = X.reshape(X.shape[0], X.shape[1], 1)

ここでは、Appleの株価データを使用し、過去60日間の価格を基に次の日の価格を予測するためのデータセットを作成しています。

LSTMモデルの構築

次に、Kerasを用いてLSTMモデルを構築し、トレーニングを行います。

from keras.models import Sequential
from keras.layers import LSTM, Dense, Dropout

# LSTMモデルの構築
model = Sequential()
model.add(LSTM(units=50, return_sequences=True, input_shape=(X.shape[1], 1)))
model.add(Dropout(0.2))
model.add(LSTM(units=50, return_sequences=False))
model.add(Dropout(0.2))
model.add(Dense(units=1))  # 出力層

# モデルのコンパイル
model.compile(optimizer='adam', loss='mean_squared_error')

# モデルのトレーニング
model.fit(X, y, epochs=100, batch_size=32)

このモデルは、2つのLSTMレイヤーを持ち、価格の予測を行うためのシンプルな設計です。

予測と結果の可視化

トレーニングが完了したら、モデルを使用して予測を行い、その結果を可視化します。

# トレーニングデータに基づいた予測
train_predict = model.predict(X)

# 予測を逆正規化
train_predict = scaler.inverse_transform(train_predict)

# 元のデータのスライスを作成
original_data = scaler.inverse_transform(scaled_data)

# 結果をプロット
import matplotlib.pyplot as plt

plt.figure(figsize=(14,5))
plt.plot(original_data, label='Original Data', color='blue')
plt.plot(train_predict, label='Predicted Data', color='red')
plt.title(f"{ticker} Price Prediction using LSTM")
plt.xlabel('Days')
plt.ylabel('Price')
plt.legend()
plt.show()

このコードにより、トレーニング済みのLSTMモデルを用いて過去のデータに基づいた予測を行い、元の価格データと比較して可視化します。

まとめ

本記事を通じて、Pythonを使用してLSTMによる資産管理の可視化ライブラリを構築し、未来の投資先の価格を予測する方法を学びました。機械学習と時系列予測の力を利用すれば、より良い投資判断が可能になります。適切な資金管理とリスクコントロールの観点から、これらの技術を活用し、より計画的な投資を行うことが期待されます。


【お知らせ】
システム全体のインフラ構成や、より詳細な統計検証データについては、プロフィール欄に記載のリンク先(技術メディア)にて随時公開しています。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?