BigQuant使用文档

303-关于如何使用XGboost训练模型固化并调用

由bqrch0cl创建,最终由small_q 被浏览 105 用户

简介

由于深度学习中的涉及到的随机项过多,比如Dropout 以及随机种子,这样固化模型的重要之处就能够体现出来了。 如果我们没有使用固化模型,在我们的缓存丢失或者更新之后我们的模拟交易以及回测将会触发模型的重新训练,导致原有的模型发生变化。 本文将会针对这个问题提出该如何在Bigquant 的AI Studio 策略开发平台上的XGboost训练模型上固化模型并调取。


在进入正文之前,我们先了解一下固化以及保存模型的好处:

  1. 避免重复训练

    1. 节省时间和计算资源:训练深度学习模型通常需要大量的时间和计算资源。通过保存训练好的模型,您可以在需要时直接加载模型,而不必每次都重新训练,从而大大节省时间和计算资源。
  2. 模型部署

    1. 应用于生产环境:训练好的模型可以部署在生产环境中,为实际应用提供服务。无论是预测、分类还是其他任务,保存的模型都可以被调用并实时应用于新数据。
  3. 模型共享和再现性

    1. 共享模型:保存的模型可以与其他研究人员或开发人员共享,使得协作更加容易。其他人可以加载您的模型,继续进行进一步的研究或开发。
    2. 再现性:保存模型确保实验和结果的再现性。即使是以后回顾,您也可以使用相同的数据和模型得到相同的结果。

\

训练模型

首先我们从训练模型开始,这里我们以Xgboost AI模型选股为例子。

https://bigquant.com/codesharev2/ccb4c65a-22a2-4dd0-90a4-00502511d545


有一点需要注意的是,这个模型的最后默认是BigTrager 回测模块,如果我们需要固化并保存数据模型,我们需要将这个模块删除并更改为“保存数据”模块,并且使用XGboost 模块上的“模型(通用)”链接点来跟“保存数据”模块进行链接。然后我们就得到了以下的AI 策略模型:

https://bigquant.com/codesharev2/1aa7c2ba-597c-43a6-a374-4c7668e0481d

注意在“保存数据”模块中我们需要在“数据ID(datasource id)”下方输入一个自定义的小写英文字母的id为这个数据模型命名,这样才能够成功保存(这里可以看到我将我的模型命名为model_12345678)。

然后通过运行这个策略,我们就能够保存训练出来的数据模型了。

\

模型调用

首先我们需要克隆并使用以下的模版:

https://bigquant.com/codesharev2/53445280-b389-492f-8fd7-089d44497bcf


在调用模型之前,要想查询训练结果或者模型文件是否成功保存,我们可以执行以下代码:

import dai

dai.DataSource(“your_id").read()

将your_id替换成我们保存的模型id并点击运行就可以查询了

确认查询结果能够成功运行之后,在“python函数”模块中找到“主函数”这一栏,我们能够看到以下的代码:

在data = dai.DataSource("model_12345678")这一行代码中用您之前训练出来的模型id替换掉引号内的model_12345678(这个是示例使用的模型id),其他保持默认,就可以点击运行了。

注意,训练模型以及抽取固化模型的“输入特征“模块中的数据需要保持一致,您可以对默认的数据进行更改,但请务必让两个板块的数据保持一致。


\

{link}