历史文档

【历史文档】因子构建与标注-因子预处理

由clearyf创建,最终由small_q 被浏览 1356 用户

更新

本文内容对应旧版平台与旧版资源,其内容不再适合最新版平台,请查看新版平台的使用说明

新版量化开发IDE(AIStudio):

https://bigquant.com/wiki/doc/aistudio-aiide-NzAjgKapzW

新版模版策略:

https://bigquant.com/wiki/doc/demos-ecdRvuM1TU

新版数据平台:

https://bigquant.com/wiki/doc/dai-PLSbc1SbZX

新版表达式算子:

https://bigquant.com/wiki/doc/dai-sql-Rceb2JQBdS

新版因子平台:

https://bigquant.com/wiki/doc/bigalpha-EOVmVtJMS5

\

导语

在机器学习中,很多因子数据必须经过预处理才能参与模型训练。本文简单介绍因子预处理中常见的缺失值处理,极值处理、标准化处理和规范化处理。

用可视化模块进行预处理

通常进行因子分析前,我们需要对因子进行清洗处理,一个典型的处理流程如下:

  • 1、去除缺失值

  • 2、每日截面数据分位数去极值

  • 3、每日截面数据进行行业市值中性化处理

  • 4、每日截面数据标准化处理,处理后均值为0

  • 5、缺失值填充0值 需要注意的是上述的第2-4步骤,是对数据按日期分组后进行截面数据操作。上述典型流程的可视化建模如下:

    https://bigquant.com/experimentshare/5993ab804568415fb8597e4227269e83

    \

表达式引擎函数

(数据处理)

去极值

示例:cut_outliers(return_5)

标准化

将中性化处理后的因子暴露度序列减去其现在的均值、除以其标准差, 得到一个新的近似服从 N(0, 1)分布的序列。 示例:normalize(cut_outliers(return_5))

中性化

均值法:行业中性化处理能去去除因子在行业上的偏好,处理的逻辑是将行业因子值的均值调整为0,得到新的因子值,即因子减去所处行业因子均值。 推荐使用

示例:pe_ttm_0 - group_mean(industry_sw_level1_0, pe_ttm_0)

回归法:行业市值中性化:将填充缺失值后的因子暴露度对行业哑变量和取对数后的市值 做线性回归,取残差作为新的因子暴露度。优点:可做任何中性化处理,不只是行业和市值。不足:花费较长时间。 示例:neutralize(normalize(cut_outliers(return_5)), [dummy(industry_sw_level1_0, drop_value=[-1, 0, 110000]), normalize(cut_outliers(log(market_cap_0)))])

小结: 本文首先展示了使用sklearn进行分子预处理,然后展示了可视化模块数据处理流程,以及使用表达式引擎函数处理数据,为大家在进行分子预处理时提供参考。

\

标签

缺失值处理
{link}