机器学习分类模型 · 特征工程 · 可交互可视化
数据来源: Kaggle Titanic Dataset | 样本数: 1,309 | 生存率: 38.2%
泰坦尼克号沉船事件是历史上最著名的海难之一,船上共有2224名乘客和船员,其中1502人遇难,722人存活,生存率约为38.2%。本报告使用机器学习算法分析哪些因素影响乘客的生存概率。
| 字段名 | 说明 | 数据类型 |
|---|---|---|
| survived | 是否生存 (0=遇难, 1=生存) | 目标变量 |
| pclass | 舱位等级 (1=头等舱, 2=二等舱, 3=三等舱) | 类别变量 |
| sex | 性别 | 类别变量 |
| age | 年龄 | 数值变量 |
| sibsp | 船上兄弟姐妹/配偶数量 | 数值变量 |
| parch | 船上父母/子女数量 | 数值变量 |
| fare | 票价 | 数值变量 |
| embarked | 登船港口 (S/C/Q) | 类别变量 |
我们进行了以下数据预处理操作:
首先,我们对各特征与生存率之间的关系进行可视化分析,寻找影响生存的关键因素。
热力图展示了各特征与生存率之间的相关性。相关系数范围从-1到1,正值表示正相关,负值表示负相关。
票价(fare)与生存率相关性最强(0.26),说明支付更高票价的乘客更可能生存。
性别(sex)与生存率呈强正相关(0.31),女性生存率远高于男性。
舱位(pclass)与生存率呈负相关(-0.31),等级越低(数字越大)生存率越低。
下面分析性别和舱位的交互效应对生存率的影响。"妇女儿童优先"的救援原则在数据中如何体现?
女性特权:头等舱女性生存率高达96.5%,几乎全员生还!即使是三等舱女性,也有49.1%生存。
男性困境:男性生存率整体较低,头等舱男性仅34.1%,二、三等舱男性更是只有14-15%。
结论:性别是最强的生存预测因子,"妇女儿童优先"原则得到了数据的充分验证。
分析不同年龄段乘客的生存率差异,以及年龄与舱位、票价的交互关系。
儿童优先:0-12岁儿童的生存率最高(57.4%),印证了"妇女儿童优先"的救援原则。
成年人差异不大:青少年、青年、中年、老年人的生存率都在39-41%之间,差异不显著。
除了常规分析,我们还发现了一些出乎意料的规律:
数据显示独自旅行的人生存率仅30.3%,而有家人同行的人生存率高达50.3%!
这可能是因为:家人会相互提醒和帮助、有更强的求生动力、救援时相互扶持。
小家庭(2-4人)生存率最高56.3%,但超大家庭(7人以上)生存率竟然为0%!
可能原因:大家庭成员难以同时照顾所有人逃生,需要等待全体集合反而错失机会。
虽然整体三等舱生存率很低(25.5%),但三等舱女性生存率高达49.1%!
这说明"妇女儿童优先"原则在一定程度上超越了舱位等级的限制。
我们训练了三种经典的分类算法进行对比:
| 模型 | 原理 | 准确率 | 适用场景 |
|---|---|---|---|
| Logistic Regression | 基于Sigmoid函数的线性分类器 | 78.2% | 基线模型、可解释性强 |
| Random Forest ⭐ | 集成多棵决策树,通过投票决策 | 79.0% | 通用场景、抗过拟合 |
| Gradient Boosting | Sequential训练弱分类器迭代优化 | 77.1% | 高精度任务 |
Random Forest模型提供了特征重要性评估,告诉我们哪些特征对预测最有贡献。
性别(sex):贡献度25.9%,是最重要的预测因子。"妇女儿童优先"原则在数据中非常明显。
票价(fare):贡献度27.7%,反映社会经济地位对生存的影响。
年龄(age):贡献度25.9%,儿童优先得到验证。
舱位(pclass):贡献度8.2%,与票价高度相关。
| 模型 | 准确率(Accuracy) | 精确率(Precision) | 召回率(Recall) | F1分数 |
|---|---|---|---|---|
| Logistic Regression | 78.2% | 76.5% | 68.3% | 72.1% |
| Random Forest | 79.0% | 78.1% | 69.5% | 73.5% |
| Gradient Boosting | 77.1% | 75.2% | 67.8% | 71.3% |
混淆矩阵展示了模型的预测分布,帮助我们理解哪些类型的乘客容易被误分类。
1912年的泰坦尼克号悲剧反映了当时社会的不平等:
本分析展示了机器学习在历史数据分析中的应用价值: