特徴量エンジニアリング

Python による金融のための Machine Learning

Nathan George

Data Science Professor

非線形の特徴量とターゲットの相関

Python による金融のための Machine Learning

線形モデルの問題点

# add non-linear interaction term for a linear model
SMAxRSI = amd_df['14-day SMA'] * amd_df['14-day RSI']

交互作用の特徴量を手動で作成する必要がないモデル:

決定木ベースのモデル

  • ランダムフォレスト
  • 勾配ブースティング

その他

  • ニューラルネットワーク
Python による金融のための Machine Learning

出来高と価格変化の関係

Python による金融のための Machine Learning

価格と出来高のデータ

Python による金融のための Machine Learning

出来高の特徴量

amd_df['Adj_Volume_1d_change'] = amd_df['Adj_Volume'].pct_change()

one_day_change = amd_df['Adj_Volume_1d_change'].values amd_df['Adj_Volume_1d_change_SMA'] = talib.SMA(one_day_change, timeperiod=10)
Python による金融のための Machine Learning

日時の特徴量エンジニアリング

日時から曜日・月・年への矢印のグラフィック

Python による金融のための Machine Learning

曜日の抽出

print(amd_df.index.dayofweek)
Int64Index([2, 3, 4, 0, 1, 2, 3, 4, 0, 1,
            ...
            1, 2, 3, 4, 0, 1, 2, 3, 4, 0],
           dtype='int64', name='Date', length=4807)
Python による金融のための Machine Learning

ダミー変数

days_of_week = pd.get_dummies(amd_df.index.dayofweek,
                                prefix='weekday',
                                drop_first=True)

print(days_of_week.head())
            weekday_1  weekday_2  weekday_3  weekday_4
Date
2018-04-10          1          0          0          0
2018-04-11          0          1          0          0
2018-04-12          0          0          1          0
2018-04-13          0          0          0          1
2018-04-16          0          0          0          0
Python による金融のための Machine Learning

新特徴量の相関プロット

Python による金融のための Machine Learning

特徴量を作成してみましょう!

Python による金融のための Machine Learning

Preparing Video For Download...