泰坦尼克号数据集(Titanic Dataset)

泰坦尼克号数据集涵盖了真实世界数据中常见的大多数挑战(如缺失值、混合数据类型、不平衡分类等)


一、数据集变量详解

在泰坦尼克号数据集中,每一个样本(行)代表一位乘客,而列则代表该乘客的各项特征。

变量名称描述数据类型探索要点
Survived核心目标变量。 是否幸存。分类 (0/1)幸存率的统计(整体和分组)。
Pclass舱位等级。序数/分类 (1/2/3)舱位等级与幸存率的关系(富人效应)。
Sex性别。分类 (male/female)性别对幸存率的影响("女士优先"原则)。
Age年龄。数值 (连续)缺失值处理。 年龄分布、年龄与幸存率的关系(儿童优先)。
SibSp船上兄弟姐妹/配偶的数量。数值 (离散)家庭大小对幸存的影响。
Parch船上父母/子女的数量。数值 (离散)家庭大小对幸存的影响。
Fare票价。数值 (连续)票价分布、票价与幸存率的关系(与 Pclass 也有相关性)。
Cabin船舱号码。字符串 (分类)大量缺失值。 尝试提取船舱首字母(船舱区)与幸存率的关系。
Embarked登船港口。分类 (C/Q/S)登船港口分布、登船港口与幸存率的关系。

二、数据探索(EDA)简易实验步骤

步骤 1: 概览与数据清洗(Cleaning & Inspection)

  • 加载数据: 使用 Pandas 等库加载 train.csv 文件。

  • 查看基本信息: 打印数据集的前几行(df.head())和数据类型(df.info()),快速了解变量。

  • 处理缺失值:

    • Age (年龄): 缺失值数量较多,尝试用中位数或均值填充,或用更高级的方法(如基于其他特征(如 Pclass, Sex)分组填充)。
    • Embarked (登船港口): 缺失值很少,可以用众数填充。
    • Cabin (船舱号): 缺失值过多(超过 70%),可以考虑创建新的二元特征(如“是否有船舱信息”)或者暂时忽略。

步骤 2: 单变量分析(Univariate Analysis)

目标: 了解每个变量自身的分布特征。

  • 数值变量(如 Age, Fare):

    • 计算均值、中位数、标准差等描述性统计量。
    • 绘制直方图(Histogram)和箱线图(Box Plot)来观察分布形状、集中趋势和离群点。
  • 分类变量(如 Survived, Pclass, Sex):

    • 计算每个类别的频率和百分比(df['...'].value_counts())。
    • 绘制条形图(Bar Plot)来直观展示各类别占比。
    • 特别关注 Survived 的分布,这是一个不平衡分类问题。

步骤 3: 多变量关联分析(Bivariate/Multivariate Analysis)

目标: 探索变量之间、特别是各个特征与目标变量 Survived 之间的关系。

  • 分类特征 vs. 目标变量 (Survived):

    • 示例:Sex vs. Survived (性别与幸存): 绘制堆叠条形图或分组条形图,计算不同性别组的幸存率。(预期:女性幸存率远高于男性)
    • 示例:Pclass vs. Survived (舱位等级与幸存): 绘制类似图表,观察不同等级舱位乘客幸存率的差异。(预期:一等舱幸存率最高)
  • 数值特征 vs. 目标变量 (Survived):

    • 示例:Age vs. Survived (年龄与幸存): 绘制幸存者和遇难者年龄分布的双直方图或密度图。(预期:儿童幸存率较高)
    • 示例:Fare vs. Survived (票价与幸存): 绘制票价的箱线图(按 Survived 分组)。
  • 特征之间的关联:

    • 计算相关系数矩阵(Correlation Matrix)并绘制热力图(Heatmap),了解数值变量之间的相关性(如 Fare 和 Pclass 可能会有较强的负相关)。

步骤 4: 特征工程(Feature Engineering)

目标: 通过组合或转换现有特征,创建新的、更具洞察力的特征。

  • 家庭大小: 将 SibSp 和 Parch 相加,得到一个新的特征 FamilySize。
  • 称谓(Title): 从 Name 变量中提取乘客的社会称谓(如 Mr., Miss., Master., Mrs.)。不同的称谓可能代表不同的社会地位和年龄段,与幸存率高度相关。
  • 票价分组: 将连续的 Fare 变量离散化(分箱)为低、中、高三个或更多个组。

5. 结论与可视化总结(Summary & Visualization)

  • 总结关键发现:

    • 哪些特征(如 Sex, Pclass)对幸存率的影响最大?
    • 数据集中有哪些缺失值或异常值需要处理?
    • 通过 EDA 得到哪些可以直接用于建模的新的特征(如 Title, FamilySize)?
  • 展示核心图表: 将最具说服力的图表(如 Sex/Pclass/Title 与 Survived 的关系图)展示给学生。



泰坦尼克号数据集(Titanic Dataset)数据探索模拟流程

使用 train.csv 文件作为数据集。

步骤 1: 概览与数据清洗(Cleaning & Inspection)

操作: 加载数据集并查看基本信息。

  • 数据集前几行(df.head()): 。
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
103Braund, Mr. Owen Harrismale22.010A/5 211717.25NaNS
211Cumings, Mrs. John Bradley (Florence Briggs Th…female38.010PC 1759971.28C85C
313Heikkinen, Miss. Lainafemale26.000STON/O2. 31012827.92NaNS
  • 数据类型和缺失值信息(df.info()):

    • 总行数:891 行
    • Age:891 行中只有 714 个非空值,这意味着有 177 个缺失值。
    • Cabin:891 行中只有 204 个非空值,这意味着有 687 个缺失值,缺失率高达 77%。
    • Embarked:891 行中只有 889 个非空值,这意味着有 2 个缺失值。

清洗操作:

  • Age: 缺失值数量适中。为了不丢失这部分数据,可以采用填充策略。通常会用该列的中位数或均值进行填充,或者更高级地根据乘客的 Pclass 或 Sex 分组后计算中位数进行填充。
  • Embarked: 只有2个缺失值。可以用该列的众数(出现频率最高的港口,通常是’S’)进行填充。
  • Cabin: 缺失值过多。直接填充意义不大。通常会选择创建新的特征,例如 HasCabin(1表示有船舱信息,0表示没有),或者直接忽略此列。

步骤 2: 单变量分析(Univariate Analysis)

操作: 对每个变量的分布进行探索。

  • Survived (幸存):

    • 发现: 您会发现幸存者数量远少于遇难者。具体来说,约 38.4% 的乘客幸存(342人),而 61.6% 的乘客遇难(549人)。
    • 图表: 绘制条形图,高度不对称,显示这是一个不平衡分类问题。
  • Age (年龄):

    • 发现: 年龄分布通常呈现右偏态(skewed right),大部分乘客年龄集中在20-40岁之间。箱线图可能会显示一些高年龄(如80岁)的离群点。
    • 图表: 直方图会展示年龄的集中分布;箱线图能清晰看到中位数、四分位数和离群点。
  • Sex (性别):

    • 发现: 男性乘客数量远多于女性。具体来说,约 64.8% 为男性(577人),35.2% 为女性(314人)。
    • 图表: 条形图会直观地展示男性与女性的比例。
  • Pclass (舱位等级):

    • 发现: 三等舱(Pclass=3)的乘客数量最多,约占总数的 55%。一等舱和二等舱的乘客相对较少。
    • 图表: 条形图会显示 Pclass=3 的柱子最高。

步骤 3: 多变量关联分析(Bivariate/Multivariate Analysis)

操作: 探索特征与 Survived 之间的关系。

  • Sex vs. Survived (性别与幸存):

    • 发现: 这是影响幸存率最重要的因素。您会发现女性的幸存率(约 74.2%)远高于男性的幸存率(约 18.9%)。
    • 结论: 模拟了“女士优先”原则。
  • Pclass vs. Survived (舱位等级与幸存):

    • 发现: 舱位等级与幸存率呈显著正相关(更高级的舱位幸存率更高)。一等舱的幸存率(约 63%)最高,其次是二等舱(约 47%),三等舱的幸存率(约 24%)最低。
    • 结论: 模拟了“富人效应”。
  • Age vs. Survived (年龄与幸存):

    • 发现: 绘制幸存者和遇难者年龄分布的密度图时,您会发现幸存者年龄的分布峰值在儿童(如0-10岁)处明显更高。
    • 结论: 模拟了“儿童优先”原则。
  • SibSp & Parch vs. Survived (家庭大小与幸存):

    • 发现: 单独旅行的乘客(SibSp=0, Parch=0)的幸存率通常低于与家人一同旅行的乘客(但家庭规模过大也会降低幸存率)。
  • Fare & Pclass (票价与舱位):

    • 发现: 您会发现票价和舱位等级有很强的负相关性。绘制票价的箱线图时,按 Pclass 分组,会看到一等舱的票价箱线图远高于二三等舱。
    • 结论: 票价可以作为舱位等级的一个代理特征。

步骤 4: 特征工程(Feature Engineering)

操作: 基于现有变量创建新特征。

  • 家庭大小(FamilySize):

    • 创建: FamilySize = SibSp + Parch + 1 (加1是把自己也算上)。
    • 作用: 这个新变量能够更直观地反映乘客是否是独自旅行(FamilySize=1)或与家人一起旅行,并能进一步探索家庭大小对幸存率的影响。
  • 称谓(Title):

    • 创建: 从 Name 列中提取 Mr., Mrs., Miss., Master. 等称谓。
    • 作用: 这是一个非常强大的特征。Master. 几乎都是男孩,Miss. 大部分是未婚女性,Mrs. 是已婚女性。这些称谓可以很好地反映年龄、性别和婚姻状况,并且与幸存率高度相关。

步骤 5: 结论与可视化总结(Summary & Visualization)

总结发现:

  1. 数据清洗是必要的第一步,Age, Cabin, Embarked 都有不同程度的缺失值。

  2. 核心影响因素:

    • 性别(Sex)是影响幸存率最重要的单一因素。
    • 舱位等级(Pclass)紧随其后,一等舱乘客幸存率远高于三等舱。
    • 年龄(Age)的影响体现在儿童的幸存率更高。
  3. 新特征的价值:

    • 通过组合 SibSp 和 Parch 得到的 FamilySize 特征能够更好地捕捉家庭规模对幸存的影响。
    • 从 Name 提取的 Title 特征,可以作为年龄、性别、社会地位的综合指标,是强大的预测变量。

核心图表展示:

  • 性别与幸存率的堆叠条形图: 清晰展示女性幸存者比例远高于男性。
  • 舱位等级与幸存率的条形图: 显著展示一等舱幸存率的优势。
  • 幸存者和遇难者年龄分布的密度图: 凸显儿童在幸存者中的高比例。
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐