![見出し画像](https://assets.st-note.com/production/uploads/images/99787062/rectangle_large_type_2_7985c2d637a04f0eb51461dfd6acb5af.png?width=1200)
Photo by
ashibane_shiika
Notionを頼りに未来予測してみる!
今回はせっかくAIが色々教えてくれるので、ドル円の未来予測をしようと思います。
Notionにコードをまず聞きます。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn import linear_model
from sklearn.model_selection import train_test_split
# 株価データの読み込み
df = pd.read_csv('stock_data.csv')
# データの加工
df = df.drop(['Date', 'Open', 'High', 'Low', 'Volume'], axis=1)
df['Close_diff'] = df['Close'].diff()
df = df.dropna()
# 説明変数と目的変数の設定
X = np.array(df.drop(['Close'], 1))
y = np.array(df['Close'])
# 訓練データとテストデータの分割
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# 予測モデルの作成
model = linear_model.LinearRegression()
model.fit(X_train, y_train)
# 結果の表示
accuracy = model.score(X_test, y_test)
print(accuracy)
# 将来の株価の予測
future_price = model.predict([[100]])
print(future_price)
と、いう答えが返ってきました。もちろんそのまま使ってもエラーが返ってくるので、これをもとに作成していきましょう。
修正したコード
# 為替データの読み込み
start = '2015-01-01'
end = datetime.datetime.now()
df = pdr.data.get_data_yahoo('USDJPY=X',start,end)
df = df.drop(['Open', 'High', 'Low', 'Volume','Adj Close'], axis=1)
df['Close_diff'] = df['Close'].diff()
df = df.dropna()
# 説明変数と目的変数の設定
X = np.array(df.drop(['Close'], 1))
y = np.array(df['Close'])
# 訓練データとテストデータの分割
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# 予測モデルの作成
model = sklearn.linear_model.LinearRegression()
model.fit(X_train, y_train)
# 結果の表示
accuracy = model.score(X_test, y_test)
print(accuracy)
# 将来の株価の予測
future_price = model.predict([[100]])
print(future_price)
結果
-0.0028648733629081935
[210.68490103]
と言うことで、このまま使っても参考にはならないことがわかってしまいました。そのため今度は有効な特徴量を探して再チャレンジをするべく作り直しが必要ですねw
Notionによるコードに対しての説明が以下の通りとなります。
このコードは、株価データを読み込み、データの加工を行い、線形回帰モデルを使用して株価を予測しています。加工済みのデータから、説明変数と目的変数を設定し、訓練用データとテスト用データに分割しています。そして、線形回帰モデルを学習させ、精度を評価しています。最後に、将来の株価を予測しています。
このコードはあくまでも例です。株価予測には多くの方法があり、データの加工や分析方法、使用するライブラリなど、様々な要素が存在します。また、株価予測はあくまでも参考として利用するようにしましょう。