衍生特征抽取

# 衍生特征抽取

定义

M.derived_feature_extractor.v2(self, input_data, features, date_col='date', instrument_col='instrument', user_functions={})

衍生特征(因子)抽取:对于衍生特征(通过表达式定义的,e.g. close_1/close_0),通过表达式引擎,计算表其值

参数:

  • input_data (DataSource) – 特征数据,包含用于构建衍生因子的基础因子数据,一般来自基础特征抽取或者衍生特征抽取模块。
  • features (列表|DataSource) – 特征列表,需要抽取的衍生特征,由表达式构建。可用数据字段来自输入的data,可用操作符和函数见表达式引擎 。
  • date_col (str) – 日期列名,如果在表达式中用到切面相关函数时,比如 rank,会用到此列名;默认值是date。
  • instrument_col (str) – 证券代码列名,如果在表达式中用到时间序列相关函数时,比如 shift,会用到此列名;默认值是instrument。
  • user_functions (字典) – 自定义表达式函数,字典格式,例:{‘user_rank’:user_rank},字典的key是方法名称,字符串类型,字典的value是方法的引用,参考表达式引擎 ;默认值是{}。

返回:

  • .data: 特征数据

返回类型:

  • Outputs

示例代码:

features = [
    'return_5',  # 5日收益
    'return_10',  # 10日收益
    'return_20',  # 20日收益
    'avg_amount_0/avg_amount_5',  #当日/5日平均交易额
    'avg_amount_5/avg_amount_20',  #5日/20日平均交易额
]
instruments = ['601318.SHA']
start_date = '2017-03-01'
end_date = '2017-04-01'
#抽取基础特征,比如 return_5, return_10, ..
m2 = M.general_feature_extractor.v6(
    instruments=instruments,
    start_date=start_date, end_date=end_date,
    features=features)
#计算衍生特征,比如 avg_amount_0/avg_amount_5 ..
m2_1 = M.derived_feature_extractor.v2(input_data=m2.data, features=features)
#再计算一个衍生特征,比如 rank(return_10 / return_20)
m2_2 = M.derived_feature_extractor.v2(
    input_data=m2.data,
    features=['rank(return_10 / return_20)'])

运行结果:

[2018-09-11 20:40:18.840927] INFO: bigquant: general_feature_extractor.v6 开始运行..
[2018-09-11 20:40:20.139692] INFO: 基础特征抽取: 年份 2017, 特征行数=23
[2018-09-11 20:40:20.160935] INFO: 基础特征抽取: 总行数: 23
[2018-09-11 20:40:20.163521] INFO: bigquant: general_feature_extractor.v6 运行完成[1.322594s].
[2018-09-11 20:40:20.170399] INFO: bigquant: derived_feature_extractor.v2 开始运行..
[2018-09-11 20:40:20.192960] INFO: derived_feature_extractor: 提取完成 avg_amount_0/avg_amount_5, 0.001s
[2018-09-11 20:40:20.195275] INFO: derived_feature_extractor: 提取完成 avg_amount_5/avg_amount_20, 0.001s
[2018-09-11 20:40:20.216068] INFO: derived_feature_extractor: /y_2017, 23
[2018-09-11 20:40:20.242057] INFO: bigquant: derived_feature_extractor.v2 运行完成[0.071626s].
[2018-09-11 20:40:20.244502] INFO: bigquant: derived_feature_extractor.v2 开始运行..
[2018-09-11 20:40:20.274635] INFO: derived_feature_extractor: 提取完成 rank(return_10 / return_20), 0.011s
[2018-09-11 20:40:20.295964] INFO: derived_feature_extractor: /y_2017, 23
[2018-09-11 20:40:20.317971] INFO: bigquant: derived_feature_extractor.v2 运行完成[0.073457s].