策略组研究专用

TabNet模型使用文档

由sgwang创建,最终由sgwang 被浏览 6 用户

简介

2020年Google发布了适用于表格类型数据的深度学习模型TabNet,通过构造Decision Block使其同时具有了树模型可解释性强和神经网络模型拟合能力强的优势,并在多个公开数据集中取得了超越LightGBM和DNN的性能。

TabNet模型在量化选股中的应用的主要步骤有:

(1)因子抽取

(2)TabNet模型训练

(3)TabNet模型预测

(4)回测

一、因子抽取

因子抽取部分请查看BigQuant的因子模块文档(https://bigquant.com/wiki/doc/yinzi-r3xiuc9wj3)。

本文中,我们选择2010年1月到2021年9月A股市场的所有股票,抽取了98个量价因子预测未来5日股票的收益率,并进行了缺失值处理、标准化处理等预处理工作。

其中,2010年1月到2017年12月31日的数据为模型训练数据,2018年1月到2021年9月的数据为回测数据。

二、TabNet模型训练

TabNet模型在BigQuant平台的应用比较简单,只需要在可视化模板中找到(深度学习→模型库→TabNet训练)并拖入可视化面板中即可。

TabNet模型库{w:100}{w:100}TabNet训练模块的输入包含训练数据和验证数据,输出为模型的参数和权重。

点击TabNet训练模块就可以查看TabNet的详细参数:

TabNet参数{w:100}{w:100}这里介绍TabNet训练中需要设置的参数:

  • input_dim: 输入的特征数,这里是TabNet模型的输入维度,本文设置为98
  • n_steps: 决策模块的步数,通常为{3 ~ 10},值越大表示模型越复杂,能够拟合更加复杂的数据,本文设置为3
  • n_d: 预测阶段的特征数,通常为{4 ~ 8},且n_d=n_a,本文设置为8
  • n_a: Attentive的特征数,通常为{4 ~ 8} ,本文设置为8
  • gamma: 注意力更新的比例,通常为{1.0 ~ 2.0},本文设置为1.3
  • momentum: BatchNorm层的动量,通常为{0 ~ 1},本文设置为0.02
  • virtual_batch_size: GBN归一化模块的虚拟batch_size,通常为{128 ~2048},本文设置为128,
  • batch_size: 一个batch训练的样本数,通常为{256 ~ 20480} ,本文设置为1024
  • epochs: 最大训练次数,文本设置为20

三、TabNet模型预测

TabNet模型预测模块是用训练好的TabNet模型,预测未来股票的收益率。找到(深度学习→模型库→TabNet预测)并拖入可视化面板中即可。

TabNet预测{w:100}{w:100}TabNet预测模块的输入为训练好的模型权重及参数、预测数据,输出为预测的结果。

四、回测

回测时,我们将模型的预测结果作为量化选股的依据,选择TabNet模型预测收益率最高的20只股票买入,持仓5天,回测结果如下。

基准模型回测结果{w:100}

https://bigquant.com/experimentshare/dd38b1b337944185b8b211b417e2dc09

Reference

  1. TabNet: Attentive Interpretable Tabular Learning

\

{link}