LoginSignup
11
15

AI(Transformer)を用いた株価予測 アプリケーション

Last updated at Posted at 2023-11-06

初めに

この記事では以前に投稿した、AI(Transformer)を用いた株価予測を少し改良し、Streamlitというライブラリを用いて、Webアプリケーション化したものを作成したため、その紹介を行っています。

ローカル環境で動くアプリケーションとなりますのでお手元のPCで簡単に試すことができると思います。作成したアプリケーションはGitHubにアップしておりますので、ご自由にCloneしてお使いください。
https://github.com/YusukeOhnishi/Transformer_for_StockPrediction

起動の仕方

作成したアプリケーションはDockerコンテナ上で動くようにしておりますので、Dockerを使う環境をお持ちでしたらDocker fileからビルドすることも可能です。またローカル環境でも動作するようにしております。
ローカルで実行する場合はpythonのバージョンは3.11.3となりますので、動作しない場合はこちらのバージョンをお使いください。

Dockerコンテナでの起動

以下のコマンドを実行し、Dockerfileをbuild、runします。

docker build -t stock_pred .
docker run -p 8501:8501 stock_pred

Docker imageをpullしてbuildすることも可能です。
https://hub.docker.com/repository/docker/yusuke0614/stock_predict/general
その場合は以下のコマンドを実行してください。

docker pull yusuke0614/stock_predict:latest
docker run -p 8501:8501 yusuke0614/stock_predict

実行には時間がかかります(主にpythonのライブラリインストールの箇所)。実行が完了しましたら、ブラウザhttp://localhost:8501にアクセスすることで、起動すること画面に遷移することができます。

ローカルでの起動

ローカルで実行する場合にはpythonライブラリのインストールを行い、その後streamlitを起動する必要があるため、以下のコマンドを実行します。

pip install torch==2.1.0+cpu -f https://download.pytorch.org/whl/torch_stable.html
pip install -r requirement.txt
streamlit run main.py

コマンドを実行すると画面上にURLが表示されますので、そちらにアクセスすると、画面に遷移することができます。

実行デモ

画面を起動後サイドバーに、株式コードとデータの取得開始日、終了日の3つを入力します。

株式コードはyahoo financeから取得する場合は以下のような値を入力してください。

サイドバーへの入力が完了すると、入力したデータに基づき株価に関するデータが表示されます。データは表形式とグラフ形式で出力されます。

グラフの下にあるpredictボタンを押すと、入力したデータに基づいてモデルの再学習が行われます。再学習が完了すると、グラフが表示され5営業日後までの予測結果が出力されます。以下の場合だと赤点線で示された箇所が予測された値になります。
(モデルは事前学習として、東証プライム市場に上場している株式データ全件を用いてパラメータをフィッティングさせています。具体的に用いた、株式リストはGitHubに記載しておりますのでご参照下さい。)

最後に

今回はStreamlitを用いたアプリケーションを開発してみました。
改善点等ありましたらご連絡いただけると幸いです。またGitHubに掲載しているコードについても、頂いたご意見をもとに改修しようと思います。

11
15
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
11
15