基于机器学习和数据挖掘相关模型对kaggle上泰坦尼克号数据集进行分析预测 毕业论文+项目源码及数据库文件
通过尝试不同的模型和算法,如决策树、随机森林和神经网络等,可以对比它们在处理此类问题时的性能表现,为其他类似的生存分析场景提供宝贵的经验和借鉴,推动数据科学技术在实际问题中的应用和发展。本研究将在前人基础上,综合运用多种数据分析方法和模型,深入挖掘数据特征,优化模型性能,力求更准确地预测泰坦尼克号乘客的生存情况,同时也为相关领域的研究提供新的思路和方法。例如,在现代的交通运输、公共安全等领域,通过
!!! 有需要的小伙伴可以通过文章末尾名片咨询我哦!!!
💕💕作者:优创学社
💕💕个人简介:本人在读博士研究生,拥有多年程序开发经验,辅导过上万人毕业设计,支持各类专业;如果需要论文、毕设辅导,程序定制可以联系作者
💕💕各类成品java系统 。javaweb,ssh,ssm,springboot等等项目框架,源码丰富,欢迎咨询交流。学习资料、程序开发、技术解答、代码讲解、源码部署,需要请看文末联系方式。
(五)同乘的兄弟姐妹/配偶数 (SibSp)................................................................... 9
(六)同乘的父母/小孩数(Parch )........................................................................... 9
(二)神经网络模型构建与训练................................................................................ 20
摘要:本研究聚焦泰坦尼克号乘客生还预测问题,运用数据挖掘和机器学习技术深入剖析相关数据。通过对年龄、性别、船舱等级等 12 个特征的初步分析与相关性探究,发现多个因素对乘客存活率有显著影响。在数据预处理阶段,对缺失值进行填充,对分类变量进行编码,为后续建模奠定基础。随后,分别构建决策树、随机森林和神经网络模型进行预测。决策树模型可解释性强,但存在过拟合问题;随机森林模型通过集成学习有效提升了准确率和稳定性;神经网络模型凭借强大的非线性建模能力捕捉数据特征。经比较,随机森林模型表现最优,在训练集上准确率约为 0.98,在 kaggle 官网评分也较高。研究揭示了影响乘客生存的关键因素,为类似数据分析提供了参考,彰显了数据科学在历史事件分析中的应用价值,同时也为后续研究指明了方向,如进一步收集数据和优化模型等。
关键词:泰坦尼克号;生还预测;决策树;随机森林;神经网络
(一)研究背景
泰坦尼克号的沉没是一场举世瞩目的悲剧,1912 年 4 月 15 日,这艘号称 “世界工业史上的奇迹” 的豪华巨轮在其处女航中不幸撞上冰山并沉没,造成了 1502 人遇难的惨痛后果。这场灾难不仅在历史上留下了沉重的印记,也为众多领域提供了丰富的研究素材。从数据科学角度来看,泰坦尼克号乘客的相关数据包含了丰富的信息,如乘客的基本信息、社会经济状况、登船港口等,这些数据为探究哪些因素影响乘客在灾难中的生存概率提供了可能。随着数据挖掘、机器学习等技术的不断发展,利用这些数据进行深入分析,成为了理解这一历史事件以及探索生存分析方法的重要途径。
本研究具有多方面的重要意义。在历史研究层面,通过对泰坦尼克号乘客生存数据的分析,可以挖掘出隐藏在历史事件背后的复杂因素,为研究当时的社会结构、救援机制、人们的行为模式等提供量化依据,帮助我们更全面、深入地理解这一历史事件。
从数据科学和机器学习的应用角度出发,泰坦尼克号乘客生存预测是一个典型的二分类问题,对其进行研究有助于探索和验证各种数据分析方法与预测模型的有效性。通过尝试不同的模型和算法,如决策树、随机森林和神经网络等,可以对比它们在处理此类问题时的性能表现,为其他类似的生存分析场景提供宝贵的经验和借鉴,推动数据科学技术在实际问题中的应用和发展。
此外,研究结果还能为风险管理、应急救援等领域提供一定的参考。例如,在现代的交通运输、公共安全等领域,通过分析影响人员生存的关键因素,可以优化安全措施和救援策略,提高应对突发事件的能力,保障人们的生命安全。
近年来,针对泰坦尼克号乘客生存预测问题,众多学者从不同角度展开了研究。在数据挖掘方面,一些研究着重于特征工程,通过对原始数据中的特征进行提取、转换和选择,挖掘出更具代表性的特征。如Wu S[1](2024)通过对乘客姓名进行解析,提取出头衔等信息,发现这些新特征与乘客的生存概率存在一定关联;Yogesh K ,Shefali A[2](2018)结合船舱等级、票价等特征构建新的综合特征,提升了模型的预测精度。
在模型应用上,决策树模型因其直观的结构和良好的可解释性被广泛应用。袁馨[3](2020)利用决策树模型对泰坦尼克号乘客数据进行分析,清晰地展示了不同特征在决策过程中的作用,但也指出决策树存在过拟合的问题。为解决这一问题,随机森林模型作为集成学习的代表被引入。敖华剑[4](2023)的研究表明,随机森林通过构建多个决策树并综合其结果,有效降低了模型方差,提高了预测的准确性和稳定性。
随着深度学习的兴起,神经网络模型也逐渐应用于该领域。周峙泓[5](2024)构建了多层感知机(MLP)模型,利用其强大的非线性拟合能力,自动学习数据中的复杂模式,在泰坦尼克号乘客生存预测中取得了不错的效果。然而,神经网络模型也面临着训练时间长、可解释性差等挑战。
综上所述,过往研究在数据处理和模型应用上取得了一定成果,但仍存在进一步优化和改进的空间。本研究将在前人基础上,综合运用多种数据分析方法和模型,深入挖掘数据特征,优化模型性能,力求更准确地预测泰坦尼克号乘客的生存情况,同时也为相关领域的研究提供新的思路和方法。
本研究使用的数据集来源于KAGGLE数据网站的泰坦尼克号数据集,其中包含 12 个特征,具体如下:
1.PassengerId:乘客编号,是每个乘客的唯一标识,主要用于数据记录和关联,通常不直接参与生存概率的预测分析。
2.Survived:存活情况,作为目标变量,其中 “1” 代表存活,“0” 代表死亡,是我们进行预测和分析的核心关注点。
3.Pclass:客舱等级,分为一等舱、二等舱和三等舱,在一定程度上反映了乘客的经济实力和社会地位,可能对生存概率产生影响。
4.Name:乘客姓名,包含了乘客的个人身份信息,但一般不直接与生存概率相关,更多是用于数据的标识和区分。
5.Sex:性别,分为男性和女性,在灾难发生时,救援原则和社会习俗可能会使性别成为影响生存的重要因素。
6.Age:年龄,不同年龄段的乘客在应对灾难时的能力和获得救援的优先级可能不同,是一个潜在的重要影响因素。
7.SibSp:同乘的兄弟姐妹 / 配偶数,反映了乘客在船上的亲属关系网络,可能影响其生存决策和获得帮助的程度。
8.Parch:同乘的父母 / 小孩数,同样体现了乘客的家庭关系,对其生存概率或许存在一定影响。
9.Ticket:船票编号,主要用于票务管理和乘客乘船信息的记录,与生存概率的直接关联较小。
10.Fare:船票价格,与客舱等级、乘客经济状况相关,可能间接影响生存机会。
11.Cabin:客舱号,理论上与客舱位置、安全性有关,但由于缺失值过多,后续分析中暂不考虑。
12.Embarked:登船港口,不同港口的乘客构成、登船时的情况等因素,可能对生存概率产生影响。
这些特征为研究泰坦尼克号乘客的生存情况提供了多维度的信息,通过对这些数据的分析和挖掘,有助于揭示影响乘客生存的关键因素,并构建有效的预测模型。
①首先导入数据集,查看数据信息和数据缺失值
train.info() #查看数据信息

train.isnull().sum()#查看数据缺失值

运行结果显示,数据集共有 891 条记录,其中年龄(Age)、客舱号(Cabin)以及登船港口(Embarked)存在缺失值。具体而言,年龄有 714 个非空值,客舱号仅有 204 个非空值,登船港口有 889 个非空值。客舱号缺失过多,会严重影响分析结果的准确性和可靠性,因此在后续分析中舍弃该特征。此外,乘客编号(PassengerId)、乘客姓名(Name)和船票编号(Ticket)具有较强的随机性,与乘客生存与否的关联性较弱,也不再进行分析。
②删去无用特征
如上面分析可知,剔除乘客编号(PassengerId)、乘客姓名(Name)、船票编号(Ticket)和客舱号(Cabin),并展示数据前五行,代码和结果如下所示:
train = train.drop(['PassengerId', 'Name', 'Ticket','Cabin'], axis=1)
print(train.head())#查看更新后的数据集

# 生存状态分析
print(train.Survived.value_counts())
train.Survived.value_counts().plot(kind='bar')

结果表明,在 891 名乘客中,仅有 342 名乘客存活,死亡人数达到 549 人,存活人数明显少于死亡人数。这一结果初步显示出泰坦尼克号沉没事件中乘客生存的艰难,也为后续分析各特征对生存概率的影响奠定了基础。通过对生存和死亡人数的直观展示,我们可以更清晰地认识到数据背后所反映的残酷现实,进而更有针对性地探究影响生存的因素。



kaggle官网评分
将模型对测试集的预测结果保存在csv文件中,下图是csv文件中的部分数据,然后将文件提交到kaggle官网,查看评分结果。


根据上面对于决策树模型的改进策略,我选取了随机森林模型来进行一个预测,看看是否能提高预测准确率。
首先介绍一下随机森林模型。随机森林(Random Forest)是一种广泛使用的机器学习模型,它属于集成学习方法中的一种,主要用于分类和回归任务。随机森林模型是由多个决策树组成的集合,其中每个决策树都是独立训练的,最终的预测结果是通过这些决策树的集体表决或平均得出的。
以下是随机森林模型的关键特点和工作原理:
(1)特点:
①多样性:通过引入随机性和数据的多样性,随机森林能够减少各个决策树之间的相关性,从而降低模型的方差,提高整体的泛化能力。
②鲁棒性:即使部分数据或特征缺失,随机森林依然能够给出有效的预测。
③防止过拟合:通过集成多个决策树,随机森林能够抑制单个决策树可能发生的过拟合现象。
④可解释性:虽然随机森林作为一个整体可能不如单个决策树直观,但每个单独的决策树仍然是可解释的,而且可以通过特征重要性评估来理解模型。
(2)工作原理:
①自助采样(Bootstrap Sampling):从原始数据集中通过有放回的方式抽取多个样本子集,每个子集用于训练一个决策树。这意味着某些样本会被多次抽到,而有些样本可能不会出现在某个子集中。
②随机特征选择:在构建每一棵树的过程中,每次分裂节点时,不是考虑所有特征,而是从所有特征中随机选择一个子集进行最佳分裂的选择。这一步骤有助于增加树之间的差异性。
③独立训练决策树:每棵树独立地在自己的样本子集和特征子集上训练,不受其他树的影响。
④集成预测:对于分类问题,最终的预测结果是通过多数表决(众数)来确定;对于回归问题,则通常是所有树预测结果的平均值。
本研究围绕泰坦尼克号乘客生还预测展开,综合运用多种数据分析方法和机器学习模型,深入挖掘影响乘客生存的关键因素,并构建预测模型。
在数据处理阶段,对原始数据进行了全面的预处理。针对年龄、票价和登船港口的缺失值,分别采用平均值、平均值和众数进行填充;通过独热编码将性别和登船港口等类别变量转换为数值变量,为后续的模型训练提供了高质量的数据。在数据分析过程中,发现性别、船舱等级、年龄、票价和登船港口等因素与乘客存活率密切相关。女性的存活率显著高于男性;船舱等级越高,存活率越高;15岁以下乘客存活率较高,20-40岁乘客死亡率最高;票价与存活率呈正相关;C港口登船的乘客存活率最高。
研究中选用决策树、随机森林和神经网络三种模型进行预测。决策树模型结构直观,可解释性强,能有效处理非线性关系和缺失值,但易出现过拟合,稳定性较差。通过绘制超参数曲线确定最佳深度为3,其在训练集上准确率约为0.827,在kaggle官网评分达0.77990。随机森林模型基于集成学习原理,通过自助采样和随机特征选择构建多个决策树,有效降低了模型方差,提高了泛化能力,对缺失数据和噪声具有较强鲁棒性。该模型在训练集上准确率约为0.98,kaggle官网评分高于决策树模型,展现出更好的性能。神经网络模型具有强大的非线性建模能力,通过设置输入层、隐藏层和输出层,利用激活函数和反向传播算法进行训练。本研究构建的神经网络模型在测试集上准确率为81.56%,虽低于随机森林模型,但通过绘制准确率曲线和损失曲线以及混淆矩阵,可深入分析模型训练效果和预测准确性。
尽管本研究的模型在测试集上取得了一定成果,但仍存在局限性。数据集的规模和质量对模型泛化能力有一定限制,可能导致模型无法准确捕捉复杂关系。为进一步提升预测准确性,未来研究可从以下方面展开:一是收集更多维度的数据,如乘客社会经济地位、详细家庭关系等,丰富数据特征;二是优化现有模型,调整模型参数或改进算法;三是探索更复杂的深度学习模型,如深度神经网络、循环神经网络等,以更好地处理高维数据和复杂非线性关系。
本项目成功构建了泰坦尼克号乘客生存预测模型,不仅实现了对乘客生存情况的定量预测,还深化了对影响生存率因素的理解。这充分展示了数据科学在历史事件分析中的重要价值,为相关领域的研究和实践提供了有益参考,同时也警示人们重视生命安全。
(1)决策树模型的优点:
①易于理解和解释:决策树模型的结果以树状图形式展示,直观且易于理解,便于非技术背景的人解读。
②处理非线性关系:决策树可以自然地处理非线性和复杂的关系,不需要假设数据的分布。
③处理多输出问题:可以同时预测多个目标变量,适用于多输出或多标签分类问题。
④处理缺失值:能够很好地处理带有缺失值的数据集,可以通过替代策略(如平均值、众数等)来估计缺失值。
(2)决策树模型的缺点:
①过拟合:决策树容易过拟合,特别是在树很深的情况下,这会导致模型在新数据上的泛化能力较差。
②不稳定:小的变化在训练数据中可能导致完全不同的树结构,即模型的稳定性较差。
③局部最优:在构建过程中,每次只能选择当前最佳特征,这可能导致全局次优解。
④偏爱特征:如果某些特征有更多可能的值,决策树可能会偏向于这些特征,即使它们的实际信息增益并不高。
(3)改进策略:
①剪枝:后剪枝和预剪枝技术可以减少过拟合,提高模型的泛化能力。后剪枝是在完整的树构建完成后进行剪枝;预剪枝则是在构建过程中就停止某些分支的生长。
②集成学习:使用随机森林、梯度提升树等集成学习方法,通过组合多个决策树的预测结果来提高模型的准确性和稳定性。
③特征子集选择:在每个节点上只考虑一部分特征,可以避免决策树偏爱具有更多可能值的特征,有助于提高模型的多样性和泛化能力。
④参数调整:通过调整决策树的深度、最小样本分割数、最小叶节点样本数等参数,可以控制模型的复杂度,防止过拟合。

更多项目:
另有10000+份项目源码,项目有java(包含springboot,ssm,jsp等),小程序,python,php,net等语言项目。项目均包含完整前后端源码,可正常运行!
!!! 有需要的小伙伴可以点击下方链接咨询我哦!!!
更多推荐


所有评论(0)