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による資産管理の可視化ライブラリを構築し、未来の投資先の価格を予測する方法を学びました。機械学習と時系列予測の力を利用すれば、より良い投資判断が可能になります。適切な資金管理とリスクコントロールの観点から、これらの技術を活用し、より計画的な投資を行うことが期待されます。
【お知らせ】
システム全体のインフラ構成や、より詳細な統計検証データについては、プロフィール欄に記載のリンク先(技術メディア)にて随時公開しています。