LoginSignup
44
39

More than 1 year has passed since last update.

米国株式市場 将来株価予測 2位解法

Last updated at Posted at 2021-12-14

先日終了した米国株式市場 将来株価予測で2位になった解法を紹介します。機械学習初心者&ほぼ初コンペで試行錯誤の結果なため、内容に誤りがあるかもしれません。誤りに気付いた方はコメントで指摘頂けると嬉しいです。

コンペティション概要

  • 米国証券取引所の株価推移データを用いて、1週間後の株価を予測するアルゴリズムを開発する
  • 2011/11/13~2019/11/17週の計419週間にわたる米国株データ(終値)をもとに、2019/11/24週の終値を予測する
  • 外部データは使用不可
  • モデルの予測性能は評価関数RMSLE(Root Mean Squared Logarithmic Error)で評価

解法

予測対象

株価(終値)そのものを予測するのは難しいため、対数化した株価の前週との差を予測することにしました。最終的にはトピックのLightGBM Base line(LB=0.03781)と同じように差を標準化しました。

モデル構成

次の9つのモデルを作り、結果をアンサンブルしました。ダウとNASDAQで値動きが違うことはわかっていたので、市場毎にモデルを分けています。例えばLightGBM_NYSEは全市場のデータを元に学習しますが、予測結果のうち利用するのはNYSEのもののみです。最後の層では4つのモデルの結果の市場毎の加重平均を取っています。

StockPricePrediction.drawio.png

No. モデル 学習データセット 予測対象
1 LightGBM_ALL_1 NYSE, NASDAQ, AMEX NYSE, NASDAQ, AMEX
2 LightGBM_ALL_21 NYSE, NASDAQ, AMEX NYSE, NASDAQ, AMEX
3 LightGBM_NYSE NYSE, NASDAQ, AMEX NYSE
4 LightGBM_NASDAQ NASDAQ NASDAQ
5 LightGBM_AMEX NASDAQ AMEX
6 MLP_NYSE NYSE, NASDAQ, AMEX NYSE, NASDAQ, AMEX
7 MLP_NASDAQ&AMEX NASDAQ, AMEX -2
8 ExtraTrees_NYSE&AMEX NYSE NYSE, AMEX
9 ExtraTrees_NASDAQ NASDAQ NASDAQ

特徴量

ベースとなる特徴量はLightGBM Base line(LB=0.03781)と同じ以下のものです。このうち、セクター、業界、市場はターゲットエンコーディングしました。LightGBMではあえて欠損値はそのままとしました(MLPとExtraTreesでは欠損値補完しています)。

  • ラグ特徴量(4週分)
  • 52週単純移動平均とその標準偏差
  • 上場年
  • セクター
  • 業界
  • 市場
  • 年初から何週目か

一部モデルにはこれ以外の特徴量も追加していますが、多くのモデルでは特徴量を追加した方がPublic LBのスコアが下がったため取りやめました。

No. モデル 特徴量
1 LightGBM_ALL_1 ベース特徴量
2 LightGBM_ALL_2 ベース特徴量
3 LightGBM_NYSE ベース特徴量
4 LightGBM_NASDAQ ベース特徴量
5 LightGBM_AMEX ベース特徴量
6 MLP_NYSE ベース特徴量, Skew
7 MLP_NASDAQ&AMEX ベース特徴量, 指数移動平均乖離率, ボラティリティ, Kurt, KST Oscillator, PCA, K-Means
8 ExtraTrees_NYSE&AMEX ベース特徴量
9 ExtraTrees_NASDAQ ベース特徴量

ハイパーパラメーター

Optuneを使い調整しました。コンペ終了1-2週間前はほぼパラメーター調整に時間を費やしていましたが、これによりかなりスコア向上した気がします(Public LBで0.00043ほどスコア向上)。

ソースコード

コンペ終了後にリファクタリングしたものをGitHubで公開しています。

次回

今回のコンペでの気付き、学びを書く予定です。
初めてデータ分析コンペに参加し得たことを投稿しました。

参考にした記事


  1. LightGBM_ALL_1との違いはrandom seedとハイパーパラメーターのみ 

  2. スコアがよくなかったため、最終的にこのモデルは利用しないこととした 

44
39
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
44
39