525. Novozymes Enzyme Stability Prediction | novozymes-enzyme-stability-prediction
大家好!我的解决方案非常简单。它只是不同方法的集成,最后加了一点平滑处理。
快速概览:

在正权重块(+ve weights block)中,我们使用了不同的方法。如果你想知道每种方法的单独解释,请告诉我,我会另写一篇帖子,但由于它们都可以在网上找到,我在这里就不赘述了。
我假设到集成这一步为止,一切都很清楚。
现在来说说平滑部分:
对我来说,将机器学习模型(我提到的那些)与正权重块结合会降低分数,我的假设是这会让数值变得极端。即使我们在公共 LB(Public LB)上过拟合,我们也可能会在私有 LB(Private LB)上丢分。
私有 LB 大约在 ~500 行到 ~1600 行之间,所以如果我们基于公共 LB 得出极端值,这部分私有 LB 的分数可能会显著下降。所以为了避免震荡,我们需要一些平滑处理。
现在我们有很多平滑的方法,我们可以简单地尝试对数变换,但问题是我们不知道预测的哪一部分需要平滑,哪一部分不需要。解决这个问题的一种方法是训练神经网络,但由于我们的训练数据属于不同的分布,这在这里对我们没有帮助。
所以我做了一些冒险的事情:我集成了所有的机器学习模型,并将它们从总集成结果中减去。
假设我们有一个集成预测值 0.9,真实值 0.5,以及一个机器学习预测值 0.6。现在从集成值 0.9 中减去机器学习预测值:0.9 - 0.6 = 0.3,这会使我们稍微接近 0.5。
我之所以称之为冒险,是因为如果你没有设定正确的权重,你在私有 LB 上会跌得很惨。假设真实值和集成值都是 0.9,而机器学习预测值为 0.6。这会在这里增加一个很大的误差差值。
为了使其工作,我们需要基于 CV 分数来设定权重,但在这次比赛中,我们没有相似的训练数据,所以我不得不基于公共 LB 来设定权重。
通过上述的不同组合,我能够提交大约 ~30 次提交,私有分数范围在 0.545 到 0.577 之间。我发现它们的私有和公共分数有点可靠且相关。
这里有一张截图:
.png?generation=1672863185750539&alt=media)
这是我第一次参加与蛋白质相关的比赛,在过去的 3 个月里,我每天尝试了很多不同的东西(其中 80% 不属于我的解决方案),我真的很高兴我获得了单人金牌。我希望很快能成为特级大师。
谢谢。