问答交流

官网可视化AI克隆的策略提交模拟报错,请工程师老师帮助解决,谢谢!

由bqokm7jy创建,最终由small_q 被浏览 17 用户

https://bigquant.com/codeshare/75925638-11f1-4d75-86a0-15adcf643c8b


以下为GPT:

错误信息涉及到 M.advanced_auto_labeler.v2 模块,这个模块用于生成标签(label)数据,它会对数据执行一系列的计算和转换。错误提示“Bin edges must be unique”通常与在这个模块中使用的分箱操作有关。

在 label_expr 参数中,有一行代码是 all_wbins(label, 20),这是进行分箱操作的地方。分箱操作要求区间边界是唯一的,但是错误信息显示边界值中存在大量的 nan。

首先,我们要检查 label_expr 中的 clip(label, all_quantile(label, 0.01), all_quantile(label, 0.99)) 语句。这个语句的目的是通过极值处理来避免标签值的极端情况,但是如果 label 中存在 nan 或者分布非常极端,使得 1% 和 99% 分位数相同,这将导致分箱边界不唯一。

解决方法可以是进一步检查数据,确保 label 的计算正确,并且在执行 clip 操作之前没有大量的 nan 值。如果 label 值中存在 nan,可以考虑使用 drop_na_label=True 参数来去除这些值。

此外,在 clip 函数中,若 all_quantile(label, 0.01) 和 all_quantile(label, 0.99) 计算出相同的值,可能会导致后续的 all_wbins(label, 20) 函数执行失败,因为这意味着所有的 label 值都被设置为了同一个值,无法进行有效的分箱操作。

你可以尝试以下步骤来调试和解决问题:

检查 label 的计算逻辑,确保没有错误。

在执行 clip 函数之前,检查 label 中是否存在大量的 nan 值,如果有,试着去除或用其他值填充。

检查 all_quantile(label, 0.01) 和 all_quantile(label, 0.99) 计算出的值是否相同,如果相同,可能需要调整分位数的值,或者直接修正数据。

确认在分箱操作之前,label 值的范围有意义且足够分散,以便可以分成 20 个不同的箱子。

如果你无法直接修改 M.advanced_auto_labeler.v2 模块的内部实现,那么可能需要联系 BigQuant 的技术支持来获取更深入的帮助。


请工程师老师帮助解决。谢谢!

\

评论
  • undefined
  • 预测集绑定实盘参数,训练集不要绑定。