返回列表

Surprisingly #1, Public LB: 0.37196 | Private LB: 0.53179

547. Playground Series - Season 3, Episode 13 | playground-series-s3e13

开始: 2023-04-18 结束: 2023-05-01 临床决策支持 数据算法赛
Umar 的解决方案:意外地获得第1名(公开榜 0.37196,私有榜 0.53179)

意外地获得第1名:公开榜 0.37196 | 私有榜 0.53179

作者:Umar (mufathurrohman)

发布日期:2023年5月2日

投票数:31

比赛排名:第1名

首先,我要感谢 Kaggle 组织了 Playground Series 系列比赛。对于像我这样的新参赛者来说,这是一次非常棒的体验。

说实话,我参加本次比赛的主要目的是学习如何在集成模型中使用自编码器。实际上,这一想法极大地受到了这篇传奇帖子的启发。第二个目标则是为了获得比赛周边商品 :D。

因此,我明白自己在数据预处理方面并没有投入太多精力,可以说我在本次比赛中非常幸运。

我加入比赛的时间较晚,因此只构建了四种类型的模型。没有进行特征工程,所有特征均使用标准化缩放器进行了缩放。

模型名称 公开榜 私有榜 备注
LightGBM 0.31677 0.41337 没有特别之处,只是一个使用默认参数的简单 LightGBM 模型。
神经网络 0.33995 0.44078 简单的神经网络,结构为 64-64relu-32relu-11softmax。其中第一层的 64 对应输入层,数值等于数据集中的特征数量。
自编码器 0.37196 0.46052 该自编码器采用瓶颈结构设计:64-64relu-32relu-16relu-32relu-64linear。取编码器部分(直至 16relu),将其冻结,并在顶部添加 16relu-11softmax 层。
集成模型 0.35871 0.53179 这是对前三个模型进行简单加权平均得到的集成模型。具体解释如下。

每个模型都会输出每个类别的概率。我曾思考,或许可以通过对每个模型的各类别概率取平均值(例如,计算 LightGBM、神经网络和自编码器对“疟疾”类别的预测概率的平均值),从而做出一个有根据的推测。

我假设,如果某个结果在大多数模型中都表现出很高的置信度(例如,神经网络和自编码器都确信预测结果为疟疾),但另一个模型却不太确定(可能 LightGBM 认为是登革热),那么我仍然会选择多数模型所支持的结果。

因此,我的做法是将所有模型的概率取平均值,然后选择平均概率最高的前三个类别。

我的代码笔记本非常混乱,且明显缺乏必要的说明,因此很抱歉我无法将其公开发布。

我曾考虑过使用模型堆叠(stacking)的方法,但一直未能使代码正常运行,因此我最终放弃了这一尝试。

我非常欢迎与大家进行讨论,并期待听到各位的想法。祝大家接下来的一周一切顺利!

此外,我要感谢 @belati 和 @mpwolke。你们在比赛中表现出的积极参与精神,不断激励着我继续努力尝试!

同比赛其他方案