特征工程

Python 金融机器学习

Nathan George

Data Science Professor

非线性特征与目标的相关性

Python 金融机器学习

线性模型的一个问题

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

无需手动构造交互特征的模型:

基于决策树的模型

  • 随机森林
  • 梯度提升

其他

  • 神经网络
Python 金融机器学习

成交量 vs 价格变动

Python 金融机器学习

价格与成交量

Python 金融机器学习

成交量特征

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 金融机器学习

日期时间特征工程

日期时间示意图,箭头指向星期、月份、年份

Python 金融机器学习

提取星期几

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 金融机器学习

哑变量

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 金融机器学习

新特征的相关性图

Python 金融机器学习

来工程一些特征!

Python 金融机器学习

Preparing Video For Download...