【線形回帰・ランダムフォレスト・ニューラルネットワークの解説】 1か月後の株価予想サンプルコード
3種類の機械学習モデルを学ぶことができます。
まずはこのコードを実行してAppleの1か月後の株価を予測してみてください。
簡単なサンプルコードです。
ライブラリがまだの方は入れてくださいね。
pip install yfinance numpy scikit-learn pandas
import yfinance as yf
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
import pandas as pd
# 株価データの取得
data = yf.download('AAPL', start='2000-01-01', end='2023-12-02')
# 特徴量とターゲットの生成(一か月後の株価)
data['Target'] = data['Close'].shift(-20) # 一か月後(約20取引日後)の株価
data = data.dropna()
# 特徴量(過去の株価)の選択
features = ['Open', 'High', 'Low', 'Close', 'Volume']
X = data[features]
y = data['Target']
# データの分割(トレーニングセットとテストセット)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
# モデルのトレーニング
model = LinearRegression()
model.fit(X_train, y_train)
# 最新のデータを用いた予測(一か月後の株価)
latest_data = data[features].iloc[-1].values.reshape(1, -1)
predicted_price = model.predict(latest_data)
print(f"Predicted price for 1 month later: ${predicted_price[0]:.2f}")
結果は次のようになりました。
[*********************100%***********************] 1 of 1 completed Predicted price for 1 month later: $180.10
注意
ここで紹介しているコードはサンプルコードになります。
細かいパラメータの調整や設定、バックテストなども行なっていません。
実際の取引にこのような予測を適用する際には、リスク管理と資金管理を十分に行うことが重要です。
この結果、実は線形回帰モデルという概念を使用しています。
この記事では、線形回帰、ランダムフォレスト、ニューラルネットワークについておおまかに特徴を把握できます。
また、モデルの選択方法を理解することもでき、実際にモデルを使った未来予測のサンプルコードを入手することができます。
(マネーに関するプログラミングに興味があれば、是非マガジンの購入も検討してくださいね!)
この記事が気に入ったらサポートをしてみませんか?