1,M.filter V2,和V3 版本表达式有什么变化么?
评估数据集
m5_evaluation = M.filter.v2(data=m4.data, expr=’"%s" <= date’ % conf.split_date)
这个表达式 在V2正常运行,V3报错,V3应该怎么修改的,V3有什么改进?
2,M.filter.v2 问题描述:是想通2010-01-01至2017-01作为训练数据集,之后到2017-10-23为评估数据集,然后预测最新的 高分值股票,现在做predicton只能到2017-10-13日的;之后回溯发现在 训练步骤 m5_evaluation = M.filter.v2(data=m4.data, expr=’"%s" <= date’ % conf.split_date). 这一步的数据只能取到2017-10-13的,之后的预测值也只能到2017-10-13日,而不是最后一天。这是什么问题,如何解决呢?
关键代码部分:
start_date = ‘2010-01-01’
end_date=‘2017-10-23’
# split_date 之前的数据用于训练,之后的数据用作效果评估
split_date = ‘2017-07-01’
计算特征数据
m2 = M.general_feature_extractor.v5(
instruments=conf.instruments, start_date=conf.start_date, end_date=conf.end_date,
features=conf.features)
数据预处理:缺失数据处理,数据规范化,T.get_stock_ranker_default_transforms为StockRanker模型做数据预处理
m3 = M.transform.v2(
data=m2.data, transforms=T.get_stock_ranker_default_transforms(),
drop_null=True, astype=‘int32’, except_columns=[‘date’, ‘instrument’],
clip_lower=0, clip_upper=200000000)
合并标注和特征数据
m4 = M.join.v2(data1=m1.data, data2=m3.data, on=[‘date’, ‘instrument’], sort=True)
训练数据集
m5_training = M.filter.v2(data=m4.data, expr=‘date < “%s”’ % conf.split_date)
m5_evaluation = M.filter.v2(data=m4.data, expr=’"%s" <= date’ % conf.split_date)
策略连接
https://i.bigquant.com/user/payne/lab/share/mfilter%E9%97%AE%E9%A2%98.ipynb