Pythonで株価予測アプリを作ろう
タイトル: Pythonを使用した株価予測アプリの実装方法
目次
- はじめに
- 使用するツールとライブラリ
- 必要なモジュールのインストール
- ローカルでのアプリの作成と実行
- モジュールのインポート
- 株価データの取得と表示
- 株価データの可視化
- データの予測と予測結果の表示
- まとめ
1. はじめに
Pythonを使用して、株価予測アプリを実装する方法について紹介します。このアプリでは、Streamlitを使用してウェブアプリを作成し、Yahoo Financeから株価データを取得し、Facebook Prophetを使用して将来の株価を予測します。まずは、最終的なアプリの動作をご紹介します。
2. 使用するツールとライブラリ
本アプリでは以下のツールとライブラリを使用します。
- Streamlit: インタラクティブなウェブアプリを作成するためのツール
- Facebook Prophet: Facebookが開発した高速な予測アルゴリズム
- Yahoo Finance: 公開されている株価データを取得するためのAPI
- Plotly: インタラクティブなグラフを表示するためのライブラリ
3. 必要なモジュールのインストール
まず、必要なモジュールをインストールしましょう。仮想環境を作成し、以下のコマンドを使用してインストールします。
pip install streamlit
pip install fbprophet
pip install yfinance
pip install plotly
4. ローカルでのアプリの作成と実行
では、実際にウェブアプリを作成していきましょう。
モジュールのインポート
最初に必要なモジュールをインポートします。
import streamlit as st
from datetime import datetime
import yfinance as yf
from fbprophet import Prophet
from fbprophet.plot import plot_plotly
import plotly.graph_objects as go
株価データの取得と表示
次に、株価データを取得し、表示してみましょう。
def load_data(ticker):
data = yf.download(ticker, start='2015-01-01', end=datetime.today().strftime('%Y-%m-%d'))
data.reset_index(inplace=True)
return data
st.title('株価予測アプリ')
selected_stock = st.selectbox('予測対象の株式を選択してください', ('AAPL', 'GOOGL', 'MSFT', 'GME'))
data_load_state = st.text('データの読み込み中...')
data = load_data(selected_stock)
data_load_state.text('データの読み込み完了')
st.write('選択した株式のデータ:')
st.write(data.tail(10))
株価データの可視化
次に、取得した株価データをグラフとして表示してみましょう。
def plot_raw_data():
fig = go.Figure()
fig.add_trace(go.Scatter(x=data['Date'], y=data['Open'], name='始値', line=dict(color='blue')))
fig.add_trace(go.Scatter(x=data['Date'], y=data['Close'], name='終値', line=dict(color='red')))
fig.update_layout(title='時系列データ', xaxis_rangeslider_visible=True)
st.plotly_chart(fig)
st.subheader('株価データの可視化')
plot_raw_data()
データの予測と予測結果の表示
最後に、Facebook Prophetを使用してデータを予測し、結果を表示してみましょう。
def make_predictions():
df_training = data[['Date', 'Close']].rename(columns={'Date': 'ds', 'Close': 'y'})
model = Prophet()
model.fit(df_training)
future = model.make_future_dataframe(periods=365)
forecast = model.predict(future)
st.subheader('予測結果')
st.write(forecast.tail(10))
st.subheader('予測データ')
fig1 = plot_plotly(model, forecast)
st.plotly_chart(fig1)
st.subheader('予測成分')
fig2 = model.plot_components(forecast)
st.write(fig2)
make_predictions()
以上でアプリの作成が完了です。
5. まとめ
このチュートリアルでは、Pythonを使用して株価予測アプリを作成する方法を紹介しました。StreamlitとFacebook Prophetを使用して、取得した株価データを可視化し、将来の株価を予測することができます。是非、自分のお気に入りの株式で試してみてください。
以上が今回のチュートリアルの内容です。