486. G-Research Crypto Forecasting | g-research-crypto-forecasting
最终更新 - 祝贺所有的获胜者!虽然这次比赛像坐过山车一样跌宕起伏,但我非常高兴能获得我竞赛生涯中的第一枚金牌。在榜单前列待了那么久之后,最终遗憾地错过了前10名,但这在这类挑战中总是有可能发生的。
以下是原贴内容。
首先,感谢 G-Research 和 Cambridge Spark 主办这次比赛,也感谢 Kaggle 工作人员让一切相对顺利地进行。在我短暂的 Kaggle 生涯中,我发现这次比赛非常有趣,比其他我参加过的比赛更加开放。
不用说,虽然我现在排名第一,但不能保证在接下来的6周内保持这个位置,但我有信心我会保持在那个位置附近。无论最终结果如何,希望这个解决方案对你有用。
房间里的大象(显而易见的问题)- 大家对最终排行榜结果的有效性有很多担忧,并要求在比赛结束后发布最终测试数据,以便参赛者验证他们的最终分数。我认为这是个好主意,可以消除任何顾虑。如果可能且对 Kaggle 来说不算太麻烦,请考虑这个请求。然而,就我而言,根据我在测试中取得的所有分数,我目前的分数似乎是合理的。在没有相反证据之前,我没有理由认为任何排行榜分数是不正确的。
我鼓励那些觉得分数出乎意料的人分享他们的解决方案,因为 Kaggle 社区或许能够调试任何问题或误解。
显然很难准确预测加密货币价格,但找到一些信号是可能的 - 希望这个 notebook 能揭示我是如何获得我的信号的。
免责声明
测试得分(无前视偏差):
我从多个交易所 API(Binance, FTX, Coinbase, Kucoin 等)下载了免费的公开数据,看看这些额外数据是否能改进我的模型。我的一些最终模型是在额外数据上训练的。具体来说,使用一些未包含在比赛中的货币(例如 XRP, ZEC...)来自 Binance 的数据似乎在多个时间段内提供了一致的小幅改进。
我为所有模型确定了一组17个特征。其中有8个滞后特征 - EMA(指数移动平均)、历史回报率和各种回溯期的历史波动率的简单混合 - 这些特征在时间戳上取平均值以产生另外8个特征。还包括 Asset_ID。很难找到一组在不同时间段表现最佳的特征,从这个集合中添加或删除特征似乎会降低性能。我确信这不是最优的特征集,但这组特征似乎工作得足够好。
对特征进行某种分箱处理也很重要,特别是对于训练 LGBM 模型。常用的 reduce_mem_usage 函数和一些舍入函数似乎提供了合适数量的分箱。我发现对于任何给定的连续特征,分箱到500-1000个唯一值效果很好。
我认为这次比赛的一个关键部分是处理目标。感谢 @alexfir 和其他 Kaggle 参与者的工作,我们发现了目标是如何计算的。
我认为将目标分为两个部分是有用的:
正如 @gengdaiziwang 在
同比赛其他方案