← 返回竞赛经历AI 竞赛 / Kaggle

Kaggle Titanic:第一次完整走过表格竞赛流程

从缺失值、可视化与特征构造开始,建立一个可验证、可提交的分类 Baseline。

Titanic 是我第一次把数据分析、特征工程、建模、验证和提交串成完整流程的练习。数据集规模不大,但非常适合暴露表格任务中的基础问题。

从问题与数据开始

目标是根据乘客信息预测是否生还。最初先检查字段类型、缺失值与标签分布,再分别观察年龄、性别、舱位等级等变量和生还率的关系。

bins = [0, 12, 18, 65, 100]
train["age_group"] = pd.cut(train["Age"], bins)
train.groupby("age_group", observed=True)["Survived"].mean()

可视化并不是为了“图更好看”,而是为了形成可以继续验证的假设。例如,年龄本身可能不是线性影响,但划分年龄段后更容易观察儿童与成年乘客的差异。

特征工程

姓名看起来像自由文本,但称谓(MrMrsMiss 等)同时包含性别、年龄与社会身份信息,可以从姓名中提取:

train["Title"] = train["Name"].str.extract(r" ([A-Za-z]+)\.", expand=False)

此外还可以构造家庭人数、是否独自出行等特征。每次新增特征都应该通过固定验证方案判断是否真正有效,而不是只看训练集表现。

这次实践留下的方法

  1. 先做稳定 Baseline,再增加复杂度;
  2. 所有预处理都放进 Pipeline;
  3. 训练集与测试集必须使用完全一致的转换;
  4. 比单次分数更重要的是可复现的验证过程。

这次练习没有把排行榜名次作为主要目标,而是建立了以后参加表格竞赛可以复用的第一套流程。