泰坦尼克号数据集(数据探索实验报告)
泰坦尼克号数据集(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()): 。
| PassengerId | Survived | Pclass | Name | Sex | Age | SibSp | Parch | Ticket | Fare | Cabin | Embarked |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 0 | 3 | Braund, Mr. Owen Harris | male | 22.0 | 1 | 0 | A/5 21171 | 7.25 | NaN | S |
| 2 | 1 | 1 | Cumings, Mrs. John Bradley (Florence Briggs Th… | female | 38.0 | 1 | 0 | PC 17599 | 71.28 | C85 | C |
| 3 | 1 | 3 | Heikkinen, Miss. Laina | female | 26.0 | 0 | 0 | STON/O2. 3101282 | 7.92 | NaN | S |
-
数据类型和缺失值信息(
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)
总结发现:
-
数据清洗是必要的第一步,
Age,Cabin,Embarked都有不同程度的缺失值。 -
核心影响因素:
- 性别(Sex)是影响幸存率最重要的单一因素。
- 舱位等级(Pclass)紧随其后,一等舱乘客幸存率远高于三等舱。
- 年龄(Age)的影响体现在儿童的幸存率更高。
-
新特征的价值:
- 通过组合
SibSp和Parch得到的FamilySize特征能够更好地捕捉家庭规模对幸存的影响。 - 从
Name提取的Title特征,可以作为年龄、性别、社会地位的综合指标,是强大的预测变量。
- 通过组合
核心图表展示:
- 性别与幸存率的堆叠条形图: 清晰展示女性幸存者比例远高于男性。
- 舱位等级与幸存率的条形图: 显著展示一等舱幸存率的优势。
- 幸存者和遇难者年龄分布的密度图: 凸显儿童在幸存者中的高比例。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)