AI量化策略开发第二步:数据标注

精选
标签: #<Tag:0x00007fe4217f29e0>

(小Q) #1

导语:在AI量化策略开发第一步中,我们已经完成了训练集和预测集数据范围的设置。接下来在第二步中,我们来学习如何使用数据标注模块来设置我们的训练目标。

数据标注是有监督学习算法的关键,标注是否能够准确描述问题的目标直接影响模型的有效性。

操作

第一步:在模块列表的数据标注下找到**自动标注(股票)**模块,并拖入画布中。

第二步:将训练集的证券代码列表模块的输出端连接至**自动标注(股票)**模块输入端。

这里提示一下,所有的模块上边界的 为数据连接点,下边界的 为数据输出连接点。

第三步:设置模块参数。点击选中该模块,在右侧属性栏可设置参数。

  • 标注表达式:单击标注表达式文本框右上角的image 图标,可打开独立的表达式编辑窗口,在编辑窗口内,可根据自己关注的指标条件组合。表达式的类型及语法学习可见站内文档-表达式引擎历史数据
    本例中计算未来五日收益率,去掉1%以下和99%以上的极值数据,并离散为20档分数,作为评估股票好坏的标准。同时对于一字板股票当日数据进行了剔除过滤。模块运行后会得到的一个DataFrame表,其中有一个标注列(默认为label列),代表的是每只股票未来五日收益率这个目标的得分,得分越高表示目标值未来五日收益率越大。
  • 开始日期和结束日期:这里两个日期节点可不填,直接继承证券代码列表模块的时间范围
  • 基准指数:指数的代码可查阅文档-指数成分instrument字段的结果,获取需要的基准指数代码。

小结:至此,确定目标的数据标注步骤就完成了。想知道如何实现更加复杂的标注的小伙伴可以移步学习自定义标注。下一步就是AI模型构建中非常关键的步骤:怎么选择因子组合,这直接关系到一个策略模型的性能质量。

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

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


AI量化策略开发第一步:设置训练集、测试集数据范围
AI量化策略开发第四步:数据连接+缺失数据处理
AI量化策略开发第五步:模型训练+股票预测
AI量化策略开发第八步:模拟实盘
AI量化策略开发第六步:回测
【新手专区】8步上手AI量化策略构建(视频+文字版)
关于数据标注的一个问题
按照文档实例配置例子策略,运行报错!
刚刚做的测试
(kingwmj) #2

自定义标注的链接还是指向本文


(iQuant) #3

您好,感谢反馈,已修复。


(ohmyskyhigh) #4

所有超链接指向页面不存在


(iQuant) #5

收到您的反馈,我们对文档进行了升级,您提到的问题我们尽快处理。


(alisa) #6

所有的超链接都不能打开页面


(达达) #7

已经修复了


(jstmj) #8

链接打开没有内容呀,这个“基准指数”字段应该怎么填呢?


(达达) #9

参考API查询教程(BigQuant新版数据API详解),新版数据的接口是统一的。直接调用DataSource(‘表名’).read()看一下


(luoluan6299) #10

这些链接出错,什么时候可以修复下呀?谢谢


(iQuant) #11

收到,因为文档有更新,我们马上进行修复。


(iQuant) #12

链接已修复


(luoluan6299) #13

还是提示“页面不存在”啊。。。


(BigHigh) #14

请问,shift(close, -5) / shift(open, -1) 的结果应该是float类型的,为什么从结果的label字段里看到的值被转成了int型(小数部分被清零了)?


(adhaha111) #15

您好,标注模块中,计算收益率后还进行了极值处理和分类映射,以便于后面stockranker算法的排序,所以您看到的才是int类型的


(BigHigh) #16

谢谢回复!然而即使将shift(close, -2) / shift(open, -1)后面的代码全部注释掉,在结果里label字段看到的值不是1就是0,也就是说小数部分被截掉了。但如果恢复后面的代码,跑出来的结果里label字段可以看到是被正确分成了20个分类的。所以我猜想label后台存值是float没错的,但显示的时候错误地转成了int。如果我只要看第一步的结果,我只能用(shift(close, -2) / shift(open, -1))*100,才能看到小数点后两位是什么。


(BigHigh) #17

我自己回复,原因很简单,“自动标注”模块的参数里有个checkbox: “将标注转换为整数”。。。