Stockranker算法调参比较
由hxgre创建,最终由hxgre 被浏览 159 用户
StockRanker算法的核心是排序学习和梯度提升树,本文以0.1和0.2作为“学习率”参数的输入值进行测试。
首先,我们以StockRanker的默认参数0.1作为“学习率”的输入值进行模型训练,得到以下的训练结果:
1.特征重要性:又称为特征权重,是StockRanker模型基于各个特征对模型贡献度的一个数量型评估指标,值越大表示越重要。从下图可以看出,在“学习率=0.1”的情况下,rank_return_0最为重要,其值为133.266;其次为rank_return_5(110.354);最差的为avg_amount_0/avg_amount_5,其值为1.608。
2.回测/模拟收益统计:该模板策略年化收益率高达61.06%,夏普比率为1.87。
接着,我们查看“学习率=0.2”的模型训练结果:
1.特征重要性:增加学习率后,StockRanker训练的特征重要性的值和排序也发生了变化,比如:虽然贡献度最高的仍为rank_return_0,但其值从133.266明显增大为170.442;原贡献度第四名的rank_return_10指标反超pe_ttm_0成为贡献度第三的指标。
2.回测/模拟收益统计:调整学习率为0.2后,收益表现有所下降,年化收益率下降至48.64%,夏普比率下降至1.79,但胜率由0.51提升至0.53,收益波动率下降至21.85%。
最后,我们也可以发现,学习率越高,模型训练误差越小,精度越准,则时间开销越大。具体来说,“学习率=0.1”的模型训练时间为0.09s,而“学习率=0.2”的模型训练时间为612.45s。另外,两种模型的决策树路径也存在差异。