AI量化策略开发第四步:数据连接+缺失数据处理

用户成长系列
标签: #<Tag:0x00007fc069d7b4b0>

(小Q) #1

导语:本文将详细介绍数据处理中的“数据连接”、“缺失数据处理”两大模块操作、原理。

如下图所示,完成数据标注和特征数据计算后需经过简单的数据处理,我们才能利用AI算法训练模型并预测数据。

  • 对于训练集数据而言,我们需要将标注数据和特征数据连接以形成完整的训练集数据供模型使用。此外,数据在训练前通常还需要进行缺失值数据处理以防止训练过程出错。

  • 对于预测集数据而言,我们通常只需要缺失值处理。

一、数据连接模块

完成了标注数据和计算特征数据后,需要将这两部分数据DataFrame按日期和股票为索引横向拼接才能构成完整的训练集数据传递给AI模型进行训练。因此在训练模型前,需先连接数据,步骤如下:

第一步:在模块列表的 数据处理 下找到“ 连接数据“ 模块并拖入画布。

第二步:分别将 “自动标注 ”和“衍生特征抽取” 模块的输出端连接至 连接数据 模块的两个输入端。



第三步: 选中模块,在右侧的属性栏中可以看到关联列和连接方式,我们先保留默认设置。

点击查看模块属性说明

数据连接模块将两个DataSource(数据内容格式为DataFrame表)通过关联列,将左表的行与右表的行一一对应并返回。故在关联列(可多列)中,每一行的值都是唯一的。各输入及参数说明如下:

  • 输入数据:如本例的标注数据和特征数据,格式DataFrame,一般为其他模块的输出。
  • 关联列:数据连接时使用的主键,默认使用date和instrument两列为索引,将每只股票每天的标注和特征因子值横向拼接。
  • 连接方式:分为inner, outer, left, right,默认使用inner。
    inner:左表和右表均包含关联列的值,才返回对应行。
    outer:左表或右表中有一个包含关联列的值,则返回对应行。不包含关联列的表,对应行返回NULL。
    right:右表中包含关联列的值,则返回对应行。左表不包含,则对应行返回NULL。
    left:左表中包含关联列的值,则返回对应行。右表不包含,则对应行返回NULL。
  • 对结果排序:选中则对连接后的数据按关联列进行排序。默认不选中。
  • 输出数据:连接好的数据表

第四步:右键 运行选中模块

再右键 查看结果1 ,可发现我们将之前的标注数据和因子数据合并到了一张表。

二、缺失数据处理

如下图所示,从连接数据模块的输出可看出,某些因子列的缺失值较多。为了确保训练能够正常进行可删除/填充含有缺失值的数据行,模板策略中采用删除的方式来处理缺失值。

第一步:在模块列表的数据处理下找到 缺失数据处理模块并拖入画布,由于训练集和预测集数据需要分别处理缺失值,因此我们拖入两个缺失值处理模块。

第二步:.将训练集区域的连接数据模块的输出连线至缺失数据处理模块的输入,完成训练集的缺失值处理。将测试集区域的衍生特征抽取模块的输出连线至缺失数据处理模块的输入,完成测试集的缺失值处理。

点击查看模块属性说明

缺失数据处理模块是将表中含缺失值的行删除

  1. 输入数据:数据表,如本例中的标注+特征数据。
  2. 输出数据:删除缺失值所在行的数据表

第三步:右键缺失数据处理模块后选中运行选中模块即可运行模块,再右键缺失数据处理模块后选中“查看结果1“,可发现所有列已无缺失值。

小结:至此,我们完成了训练前的基本数据准备工作,接下来进入模型训练和股票预测部分。当然,你也可进行更复杂的数据处理,如合并自己的数据,过滤停牌、过滤ST股票等。更多数据操作,请查阅专题教程:xxxxx

AI量化策略开发入门系列文章请查看:

1. AI量化策略开发第一步:确定数据(如股票池),划分训练集、测试集
2. AI量化策略开发第二步:定目标:数据标注
3. AI量化策略开发第三步:找因子
4. AI量化策略开发第四步:数据连接+缺失数据处理
5. AI量化策略开发第五步:模型训练+股票预测
6. AI量化策略开发第六步:回测
7. AI量化策略开发第七步:查看、分析结果
8. AI量化策略开发第八步:模拟实盘


AI量化策略开发第八步:模拟实盘
(chennnn) #2

这是为什么呀?我一直按着步骤过来的,就是改了证券代码列表里的交易市场改为了US-stock


(chenys101) #3

不支持美股吧?


(iQuant) #4

您好,目前美股数据支持不完全,近期未维护,之后会不断补充完善。