M.derived_feature_extractor

定义

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)'])