kaggle新赛:ICR疾病预测 EDA&Baseline

文章介绍了Kaggle上的ICREDA竞赛,目标是预测个体是否患有特定年龄相关疾病。作者进行了数据读取、缺失值处理、特征编码,然后通过EDA分析了特征与Class的分布、特征间相关性和层次聚类。接着,建立了基于LightGBM的基线模型,使用了自定义的平衡log损失评价函数,并通过StratifiedKFold进行数据划分和训练。最后,文章展示了模型的预测结果和提交流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 项目简介

ICR - Identifying Age-Related Conditions是Kaggle中的一个Featured竞赛,2023.8.10截止。

在这里插入图片描述

  • 赛题链接:https://www.kaggle.com/competitions/icr-identify-age-related-conditions/overview
  • 背景:通过对个人病史的综合评估、体检和特定测试,评估其整体健康状况并确定任何与年龄相关的疾病,从而尽早发现潜在问题,以便及时干预和管理与年龄相关的健康问题。以往已经使用XGBoost和随机森林,想要探索更多可能。
  • 目的:预测一个人是否患有三种疾病中的任何一种或多种(1),或不患有三种疾病中的任何一种(0)。——二分类问题
  • 提交:0/1类的概率
  • 评价指标:balanced logarithmic loss
    在这里插入图片描述
  • Score:0.14
  • 本文内容:EDA & Baseline

2. 读取数据

  • train.csv:训练集
    • 617×58,有少量缺失值
    • AB~GL:56个匿名健康特征;除了EJ为类别外,其余均为浮点数
    • Class:0/1
  • greeks.csv:补充元数据,仅适用于训练集。
    • Alpha:A-0,B、D、G-1
    • Beta, Gamma, Delta:三个实验特征
    • Epsilon:数据收集日期,有Unknown
  • test.csv:测试集。目标是预测该集合中的受试者属于两个类别中的每个类别的概率。5条
train = pd.read_csv('/kaggle/input/icr-identify-age-related-conditions/train.csv')
greeks = pd.read_csv('/kaggle/input/icr-identify-age-related-conditions/greeks.csv')
test = pd.read_csv('/kaggle/input/icr-identify-age-related-conditions/test.csv')

train的缺失值:

missing_count_by_column = (train.isnull().sum())
print(missing_count_by_column[missing_count_by_column > 0])

在这里插入图片描述

将EJ转换为onehot:

# EJ onehot
train['EJ'] = train['EJ'].replace({
   
   'A': 0, 'B': 1})
test['EJ']  = test['EJ'].replace({
   
   'A': 0, 'B': 1})

合并train和greeks:

# 合并train和greeks
train_all = pd.merge(train, greeks, on='Id', how='left')
train_all.set_index('Id', inplace=True)

3. EDA

  1. 各种特征与Class的分布密度图(KDE):
fig, axes = plt.subplots(nrows=14, ncols=4, figsize=(16, 50))
for i, col_name in enumerate(train.columns.tolist()[1:-1]):
    ax = axes[i//4, i%4]
    sns.kdeplot(data=train, x=col_name, hue='Class', shade=True, ax=ax, alpha=0.5, linewidth=2)
    ax.set_xlabel(col_name, fontsize=14)
    ax.set_ylabel('Class', fontsize=14)
    ax.legend(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值