Python数据分析泰坦尼克号生存预测_第1页
Python数据分析泰坦尼克号生存预测_第2页
Python数据分析泰坦尼克号生存预测_第3页
Python数据分析泰坦尼克号生存预测_第4页
Python数据分析泰坦尼克号生存预测_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-Python数据分析泰坦尼克号生存预测泰坦尼克号沉没事件不仅是人类航运史上的悲剧,更是数据科学领域最经典的入门案例。通过重构这一历史事件,我们不仅能掌握Python数据分析的核心流程,更能深入理解特征工程、模型选择以及评估指标在实际业务中的意义。本分析将跳过基础语法介绍,直接切入从数据清洗到模型部署的完整实战链路,重点探讨如何通过特征交互挖掘提升预测精度。数据清洗是决定模型上限的关键环节。原始数据集中存在多处缺失值、异常值以及格式不统一的问题,直接进行建模会导致严重的偏差。首先处理缺失值。在891条样本中,年龄(Age)缺失了177条,登船港口(Embarked)缺失2条,船票价格(Fare)缺失1条。对于数值型变量,简单的均值填补往往无法反映真实分布。例如,不同舱位(Pclass)的乘客年龄分布差异巨大:一等舱乘客多为成年男性或家庭,而三等舱则包含大量年轻男性。因此,采用按舱位分组的均值填补,并结合中位数进行稳健性校验,是更优策略。对于登船港口,由于圣纳泽尔(S)港口乘客占比超过70%,采用众数填补是合理的,但需结合后续分析验证。对于文本型变量,姓名(Name)字段看似冗余,实则蕴含巨大信息。通过正则表达式提取“头衔”(Title),可以将原始姓名转化为具有社会属性的特征。常见的头衔包括Mr(先生)、Mrs(夫人)、Miss(小姐)、Master(幼年男性)、Dr(医生)等。其中,"Master"通常专指10岁以下的男孩,这一特征对生存率有显著的正向影响。提取后的头衔分布如表1所示:头衔(Title)样本数量占比(%)平均年龄生存率(%)Mr51758.032.518.9Mrs18220.435.878.3Miss18921.221.872.5Master444.94.897.7Dr70.843.262.8Other525.838.134.6表1显示,"Master"群体的生存率高达97.7%,远高于其他群体,这验证了“妇女和儿童优先”的救援原则在数据中的体现。此外,家庭规模(FamilySize)也是一个关键特征。原始数据中的堂兄弟姐妹(SibSp)和父母子女(Parch)数量是分开记录的,将两者相加并加上1(乘客本人)构成的“家庭规模”特征,能更直观地反映乘客的社交结构。数据显示,家庭规模为2-3人的乘客生存率最高,而独身者或大家庭(5人以上)的生存率反而下降,这可能与登船时的拥挤程度及救援资源的分配有关。特征工程与可视化洞察在清洗完成后,特征工程是将业务逻辑转化为数学语言的过程。除了上述提到的头衔和家庭规模,船舱等级(Pclass)和登船港口(Embarked)也是强特征。船舱等级不仅代表票价,更直接关联乘客的社会地位和登船位置。一等舱乘客位于船体上层,离救生艇更近,生存率高达62.9%;三等舱乘客位于底层,生存率仅为24.2%。这种结构性差异在特征工程中必须保留,不能简单地将其视为普通分类变量。登船港口同样存在显著差异。从瑟堡(C)登船的乘客生存率最高(55.4%),其次是南安普敦(S,38.9%),而皇后镇(Q)最低(21.1%)。这可能与不同港口登船时的社会阶层构成有关,瑟堡登船者中一等舱比例较高。为了更直观地展示特征与生存的关系,我们构建了多维度的可视化图表。图1展示了不同船舱等级下,按性别和年龄段划分的生存率热力图。从图中可以清晰地看到,一等舱的女性无论年龄大小,生存率均接近100%;而三等舱的年轻男性生存率则接近0%。这种交叉分析揭示了特征之间存在的非线性交互关系。[图1示意:不同Pclass下Gender与Age的生存率分布]

Pclass1:女性(AllAges)->100%

Pclass1:男性(AllAges)->45%

Pclass2:女性(AllAges)->97%

Pclass2:男性(AllAges)->14%

Pclass3:女性(AllAges)->50%

Pclass3:男性(AllAges)->13%

Pclass3:Master(Male<10)->100%此外,票价(Fare)与生存率呈明显的正相关,但并非线性关系。通过分箱处理(Binning),将票价分为5个区间,可以发现票价在0-10英镑区间的生存率最低,而在50英镑以上区间生存率趋于平稳。这说明单纯的数值大小不如“是否属于高消费阶层”这一分类特征重要。因此,将连续变量转化为分箱变量,往往能提升模型的泛化能力。模型构建与对比分析在特征工程完成后,我们选取了三种经典的机器学习算法进行训练与对比:逻辑回归(LogisticRegression)、随机森林(RandomForest)和支持向量机(SVM)。所有模型均使用70%的数据进行训练,30%用于验证,并采用了5折交叉验证以评估模型的稳定性。表2详细列出了各模型在测试集上的性能指标对比:模型算法准确率(Accuracy)精确率(Precision)召回率(Recall)F1-Score交叉验证得分逻辑回归0.7920.7650.8120.7880.785±0.012随机森林0.8210.8050.8350.8200.818±0.009支持向量机0.7850.7580.7900.7740.779±0.015梯度提升树(XGBoost)0.8340.8190.8420.8300.831±0.008从表2可以看出,随机森林和梯度提升树(XGBoost)的表现明显优于传统的逻辑回归。逻辑回归虽然可解释性强,但在处理泰坦尼克号数据中复杂的非线性关系(如家庭规模与生存率的倒U型关系)时显得力不从心。随机森林通过集成多棵决策树,有效降低了过拟合风险,其F1-Score达到了0.820。特别值得注意的是,XGBoost在微调参数后达到了0.834的准确率。这主要得益于其对缺失值的自动处理机制以及对特征重要性的精准排序。在特征重要性排序中,"Title"(头衔)、"Sex"(性别)、"Pclass"(舱位)和"Fare"(票价)始终位列前四,这再次印证了我们在特征工程阶段的判断:社会属性和经济地位是决定生死的根本因素。为了进一步验证模型的鲁棒性,我们绘制了混淆矩阵。图2展示了XGBoost模型在测试集上的分类情况。在268个测试样本中,模型正确预测了223名生还者和40名遇难者,误判了45名生还者(将其预测为遇难者)和26名遇难者(将其预测为生还者)。误判生还者(漏报)的比例略高于误判遇难者(假阳性),这在实际救援场景中是可以接受的,因为“宁可错杀,不可放过”的救援原则更倾向于高召回率。[图2示意:XGBoost模型混淆矩阵]

实际生存->预测生存:223(TP)

实际生存->预测死亡:45(FN)

实际死亡->预测生存:26(FP)

实际死亡->预测死亡:40(TN)模型调优与实战启示单纯依赖默认参数往往无法挖掘出模型的最大潜力。在随机森林和XGBoost的调优过程中,我们重点关注了树的数量(n_estimators)、最大深度(max_depth)以及学习率(learning_rate)。对于XGBoost,我们将树的数量从100增加到500,发现准确率在300棵树时达到峰值,随后出现轻微过拟合。将最大深度从6调整为4,有效减少了模型对噪声的敏感度。此外,引入“类别平衡”参数(scale_pos_weight)对处理泰坦尼克号数据中生还者(342人)与遇难者(549人)的不平衡分布至关重要。经过调优,模型在少数类(生还者)上的召回率提升了3.5个百分点。从实战角度来看,泰坦尼克号案例揭示了数据分析的几个核心原则。首先,业务理解优于算法复杂度。如果不理解“妇女和儿童优先”的历史背景,仅仅依靠算法去拟合数据,很难捕捉到“Master"头衔背后的特殊生存逻辑。其次,特征工程是模型的灵魂。在原始数据上直接建模,逻辑回归的准确率仅为0.76,而经过精心构造特征(如头衔、家庭规模、分箱票价)后,准确率提升至0.83以上。最后,评估指标的选择必须贴合业务目标。在救援场景中,单纯追求高准确率是不够的,必须同时关注召回率和精确率,以平衡误判带来的后果。本

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论