返回列表

#3 solution

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

开始: 2023-04-18 结束: 2023-05-01 临床决策支持 数据算法赛

第3名解决方案

作者:Unworried1686 | 发布日期:2023-05-02 | 票数:19 | 排名:第3名

Playground Series 第3季第13集 第3名解决方案

我要向Kaggle的组织者表示感谢,感谢他们举办了Playground Series。作为一名初学者,参加这些比赛虽然充满挑战,但能学到宝贵的技能。

我还要特别感谢 @Matt OP、@Tanoi@Elric@broccoli beef 分享他们的专业知识,以下是他们的笔记链接:

他们的见解非常宝贵,对我帮助很大。

以下方法对我有效:

  • 首先,我希望建立一个可靠的验证方法。根据上一次Playground比赛的经验,我决定使用RepeatedStratifiedKFold。我根据平均验证分数、标准差和标准误差来选择k和n的值。发现10次重复的10折交叉验证似乎是评估验证分数的合适选择。
  • 对于基线方法,我使用了SVC,其验证分数为0.367 ± 0.025。
  • 我使用了Tanoi提供的特征,发现加入'kidney-failure'后,交叉验证分数达到0.370 ± 0.025。
  • 我还根据特征名称对特征进行分组,并将包含pain、loss或inflammation等词汇的特征值相加。例如,加入包含pain词汇的求和特征后,交叉验证分数提升至0.375 ± 0.026。
  • 我还引入了多项式特征,并选择使交叉验证分数最高的特征对:'back_pain'和'yellow_skin',得分为0.3937。随后,我进一步测试了加入额外的多项式特征对('itchiness'与'bullseye_rash',以及'diarrhea'与'hypoglycemia'),验证分数进一步提升至0.3989。
  • 特征选择:我预先筛选了一些在初始特征集上表现良好的算法,并检查了哪种VarianceThreshold截断率对它们最为合适。我测试了XGBClassifier、SVC、BernoulliNB、NuSVC和LGBMClassifier。所有算法在阈值为0.1时均取得了最高的交叉验证分数。这些算法最终被用于最终的集成模型(未加权)。
  • 我的最终提交在公开榜上的得分为0.37089,在私有榜上的得分为0.52302。

以下方法未奏效或可能有效:

  • 由于原始特征数量庞大,我认为聚类技术可能对此任务有益。我尝试了多种方法,包括MeanShift、Birch、BisectingKMeans和KMeans。其中MeanShift的交叉验证分数最佳,为0.357 ± 0.039,因此未能带来提升。
  • 我还尝试了降维技术,如PCA,但未投入过多时间。未来值得进一步探索。
同比赛其他方案