返回列表

5th Place Solution

633. Child Mind Institute — Problematic Internet Use | child-mind-institute-problematic-internet-use

开始: 2024-09-19 结束: 2024-12-19 健康管理与公共卫生 数据算法赛
第五名解决方案

第五名解决方案

作者: peyman armaghan
发布日期: 2024-12-20
竞赛排名: 第 5 名

这是我参加这次比赛的方法:

方法流程图

1- 关于时间序列:

为了从时间序列中制作一些有用的特征,我使用了聚类。我选择了 6 个 parquet 文件(每个类别中变化最大的 2 个文件),将它们组合在一起,并使用 KMeans 算法拟合了 15 个聚类。然后我使用这个拟合好的模型从其他 parquet 文件中提取聚类。

我假设每个聚类可以代表 parquet 数据中的特定运动。然后,我将每个聚类的值在时间 duration 上取平均,并将该平均值作为每个用户的特征。所以,最终我每个用户有 15 个特征,代表了用户佩戴手表期间某种活动的平均值。

我参加比赛比较晚,没有足够的时间清理数据或从时间序列中提取更多有用的特征。我相信在这方面还有很大空间可以提取更好的特征。

2- 选择合适的目标:

经过一些初步提交后,我发现使用阈值优化会导致过拟合和结果不一致。所以,我忽略了优化,使用 PCIAT-PCIAT_Total 作为目标标签,并应用了固定阈值 [31, 50, 80]。由于这些阈值之间的确切值对于最终预测而言,不如它们相对于阈值的位置重要,我将 PCIAT-PCIAT_Total 分成了 10 个区间,并相应地调整了阈值。

3 - 关于未标记数据:

我使用了伪标签。我训练了三个 GBDT 模型(CatBoost, LGBM, XGB)、一个 Lasso 回归模型和一个神经网络(256-128-64 架构)。然后我将这些模型集成起来预测未标记数据的标签。这些新标签随后被用于训练我的最终模型。

4- 关于最终预测:

对于最终预测,我使用了伪标签中相同的四个模型,在原始标签和伪标签的组合上进行训练。我在整个数据集上训练模型,仅在原始标签上进行验证。这种方法给我的获胜提交带来了以下结果(我没有为此预测使用时间序列):

结果表格

然后,我在整个数据集上训练了 GBDT 模型(表格数据 + 时间序列特征)。并将所有这些模型用于最终集成。

组合这些模型给了我 4.6 的 CV 和 4.81 的私有 LB,这让我排在第二位。然而,由于 QWK 是一个有噪声的指标,我尝试添加一些其他模型(逻辑回归和决策树回归),它们的 CV 分数较低。这略微提高了我的最终 CV 和公共 LB,但将我的私有分数从 4.81 降到了 4.77。我对此无可抱怨,因为最终 CV 和 LB 以及两者之间的一致性才是选择最终提交的唯一指标。

特别感谢组织者、Kaggle 以及所有分享知识的参与者。祝下一场比赛好运,新年快乐!

同比赛其他方案