kaggle大赛学习记录:ICR - 疾病预测大赛

前言:

因为课程作业的缘故,接触到kaggle大赛(注:之前只是用kaggle跑过深度学习相关的代码,未接触过大赛)因此在这里,做一个基础的学习记录

参考链接:https://www.kaggle.com/code/gusthema/identifying-age-related-conditions-w-tfdf

主要参考上述链接进行相关学习

kaggle平台链接:https://www.kaggle.com/


赛题介绍:

赛题背景

1-随着年龄的增长会带来一大堆健康问题。从心脏病和痴呆到听力损失和关节炎,衰老是许多疾病和并发症的危险因素。
2-不断发展的生物信息学领域,也越来越关注与年龄相关的疾病,对其干预措施有着浓厚的研究兴趣。
3-即使数据样本数量很少,数据科学也可以开发新方法来解决各种数据问题。

赛题其他信息

在这里插入图片描述

包括赛题类型、赛题模型要求、赛题任务、比赛主办方、赛题评价指标


赛题分析:

数据集分析在这里插入图片描述

数据集介绍

1-train.csv - 训练集

Id:唯一标识符。
AB-GL:56 个匿名健康特征。
Class:1表示已被诊断出患有三种情况之一,0表示没有。

2-test.csv - 测试集

目标是预测这个集合中的每个对象属于两个类别的概率。

3-greeks.csv - 补充元数据,仅适用于训练集

Alpha :标识是否存在与年龄相关的情况
Beta Gamma Delta:三个实验特征
Epsilon :收集此受试者数据的日期。请注意,测试集中所有数据均在训练集收集之后收集。

4-sample_submission.csv - 格式正确的示例提交文件

针对train数据集进行分析

1-分别使用Pandas库函数:

dataset_df.head() :这个函数返回对象的前5行(默认情况下)。它可以帮助快速查看数据集中的样本数据,以了解数据的大致结构和内容

dataset_df.describe() :生成数据集中数值列的统计摘要信息。对于每一列,它会计算并返回计数、平均值、标准差、最小值、四分位数(25%、50%或中位数、75%)以及最大值

在这里插入图片描述
为了更加直观的观察,将特征属性数值可视化(这里只展示前两个特征)
在这里插入图片描述

2-进一步分析

因为此次比赛数据量较少,且为二元(0/1)分类比赛,因此训练数据中的class列0与1的分布需要格外进行关注,判断是否存在样本极度不均衡的问题,因此将class这一列单独可视化,进行观察:在这里插入图片描述
而从饼图中我们可以看到数据集严重不平衡,正样本(1)的比例与负样本(0)相比非常小

3-划分训练数据集

介于上述分析的数据特性,在这里选择KFold交叉验证来将train里面的数据进行划分,用于后续模型的训练和测试验证。
在这里插入图片描述

4-模型选择

基于前述分析,本次实验选择了树类模型
树模型包含很多种类
具体选择:基于TensorFlow Decision Forests (TF-DF) 的使用Keras 接口实现的 RandomForestModel、GradientBoostedTreesModel、CartModel三类模型(易于集成到 TensorFlow 生态系统中,具备较好的可解释性)
分别进行实验
在这里插入图片描述


赛题解决流程概述

注:代码实现过程均在kaggle自带的编译环境在这里插入图片描述


赛题实验情况

1-处理不平衡数据

在这里插入图片描述

2-选择/定义/训练测试模型

注:这里以RandomForestModel为例
在这里插入图片描述
对模型进行可视化(模型的解释性)
1-关于RandomForestModel-fold_1-可视化
在这里插入图片描述
2-关于GradientBoostedTreesModel-fold_1-可视化
在这里插入图片描述
3-关于CartModel-fold_1-可视化
在这里插入图片描述

3-训练完毕后-模型相关指标在这里插入图片描述

注:通过特征对模型贡献量的评估,发现这几个匿名健康特征(DU FL BQ)贡献较高,或许与某类/多类疾病关联性较强。


赛题提交结果

在这里插入图片描述


赛题思考与讨论

1-此次实验没有选择使用数据集greek;
但经过学习发现,greek由于它的特殊列,可以灵活的进行数据表的连接以及在验证时数据分割
2-实验使用的都是模型的默认参数,且都是基于参考链接,或许可以更近一步的调参,优化模型;关于树模型的选择还有很多种类型,除过树模型还有其他解法
3-处理数据不平衡类相关问题,还有很多其他方法(如:下采样等)值得实验和学习


补充:金牌方案分享

在这里插入图片描述


碎碎念:kaggle是一个很好的关于各类机器学习知识学习的地方,也有较为强大的编译环境与GPU资源,可以将别人开源分享的notebook直接上手进行学习或编辑。也希望这篇博客可以帮助大家对这个比赛有个简单的基础了解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值