首先感谢 @divyam6969 提供的 helpful notebook。我对其进行了大量修改,以至于变得一团糟,所以就不贴出来了。
模型的主要部分来自该 notebook(经典树算法的集成等)。然后我添加了一个简单的神经网络,并使用 optuna 对其参数进行了优化。我是数据科学的新手,但我的想法是神经网络的学习方式与树算法不同,因此保留它有助于提升稳定性,即使它对交叉验证(CV)的提升不大。另外,由于数据是由深度学习模型生成的,因此加入神经网络可能是个好主意。
我做的第二项改进是通过简单的网格搜索来优化集成模型的权重(我不确定这是否是好的做法,但因为提高了我的CV分数所以采用了)。
我有很多LB分数更高的模型,但我遵循 @thomasmeiner 的建议,将LB视为CV中的一个fold,因此我提交的是CV分数高且在公开LB上不会偏离的模型。
最后也是最重要的一点是运气 :)