kaggle——泰坦尼克数据集

本文分析了泰坦尼克号沉船事件中的乘客生存情况,通过数据集探讨了乘客的票类、性别、年龄、家庭成员数量等因素如何影响生存率。通过对数据的预处理和可视化,发现Pclass、Sex、Age、SibSp和Parch等因素与存活率有关。采用决策树、Adaboost和SVM建立模型进行预测,结果显示,单一模型表现优于模型组合。
AI助手已提取文章相关产品:

1.问题描述

RMS泰坦尼克号的沉没是历史上最臭名昭着的沉船之一。1912年4月15日,在首次航行期间,泰坦尼克号撞上冰山后沉没,2224名乘客和机组人员中有1502人遇难。这场轰动的悲剧震撼了国际社会,并导致了更好的船舶安全条例。

海难导致生命损失的原因之一是没有足够的救生艇给乘客和机组人员。虽然幸存下来的运气有一些因素,但一些人比其他人更有可能生存,比如妇女,儿童和上层阶级。

在这个挑战中,我们要求你完成对哪些人可能生存的分析。特别是,我们要求您运用机器学习的工具来预测哪些乘客幸免于难。

2.数据集描述

题目提供的训练数据集包含11个特征,分别是:

Survived:0代表死亡,1代表存活

Pclass:乘客所持票类,有三种值(1,2,3)

Name:乘客姓名

Sex:乘客性别

Age:乘客年龄(有缺失)

SibSp:乘客兄弟姐妹/配偶的个数(整数值)

Parch:乘客父母/孩子的个数(整数值)

Ticket:票号(字符串)

Fare:乘客所持票的价格(浮点数,0-500不等)

Cabin:乘客所在船舱(有缺失)

Embark:乘客登船港口:S、C、Q(有缺失)

 3.数据可视化和预处理

对于提供的数据集,首先进行可视化处理,判断哪些特征跟存活的相关性大。

Pclass:

                Pclass=1                 Pclass=2                    Pclass=3

从上图可以分析出,第3类票的乘客死亡率最高,其次是第二类票的乘客。所以,Pclass也是与存活具有相关性

Name:

从主观层次出发,名字与存活率没有联系,将其舍弃。

Sex:

                     男性                                            女性

可以看出男性的死亡率显著高于女性的死亡率,性别这一特征跟存活存在相关性。

Age:

                  有年龄特征                            无年龄特征

在数据集年龄特征中,存在不少的缺失项,需要考虑是否将缺失项作为特征值的一种还是将其用其他值进行填补。从上面两图可以看出,对于没有年龄特征记录的乘客死亡率比有年龄特征记录的乘客死亡率更高,所以可以将无年龄特征也视作为一项特征值进行处理。

对有年龄特征记录的数据,我们还可以根据数值进行进一步划分:

由于年龄数值过多,首先按照国际对年龄划分的标准,将年龄分为三类:未成年人(0-17),青年人(18-65),中年人(66-)。各年龄段生存和死亡人数如下图所示:

由上图可以看出,成年人人数最多且其死亡率超过50%,中年人虽然人数少,但其死亡率接近90%。所以,不同的年龄段存在不同的死亡率。

SibSp:

从上图可以看出,大部分乘客SibSp的个数为0(即1人乘船)。此外,能看出0的死亡率较高,1和2的死亡率都在50%附近,其余的乘客死亡率很高。为了简化数据,对于SibSp特征,将其分成3类:I类(0),II类(1,2),III(其余)。

Parch:

从上图可以看出,大部分乘客Parch的个数为0。再看死亡人数与存活人数的比较,Parch为0的乘客死亡率远高于其他,当Parch=1或2时,死亡率将近50%,当Parch>=3时,数据量太小不能直观的判断死亡率,只好把它们全归为一类进行判断。所以,将Parch特征分为3类:I类(0),II类(1,2),III(其余)。

Tciket:

光从Ticket提取不出有用信息,将此类特征舍弃。

Fare:

由于票价数据是数值型,不同值数目过多,将其全部一一显示不方便,先硬性规定将票价归为4类:0-10为第一类,10-50为第二类,50-100为第三类,100-为第四类。上图所示就是四类票对应乘客的生还人数和死亡人数。我们可以得出的结论是:票价越高,生存的几率也就越大。

在预测数据集当中有Fare数据缺失的项,由上图可知购买第二类票的人最多,所以缺失项是属于第二类票的概率最大。

Cabin:

             有船舱记录的乘客             无船舱记录的乘客

船舱数据的丢失也很严重,先将无船舱记录也作为一项特征值进行可视化,结果如上图所示。可以发现,有船舱记录的乘客死亡率明显低于无船舱记录的乘客死亡率,说明能将船舱记录为空作为一项特征值进行处理。

Embark:

                  S港                           C港                              Q港

对不同港口上船的乘客进行统计,其中在S港和Q港上船的乘客死亡率比在C港上船的乘客死亡率高,也能说明登船港口与生存具有相关性。

在预测数据集中,有的数据项缺失Embark,本文根据登船人数最多的港口进行填充:

     各港口登船人数占比

由图可知,在S港登船的人数最多,缺失项为S的概率最大。

4.建立模型及其基本原理

 采用三种预测模型(决策树、Adaboost、SVM)进行混合来求得预测结果。

先介绍三种模型的基本原理。

决策树:

决策树中采取CART算法,属于最小二乘回归树生成算法。

算法实现步骤:

1)计算现有样本D的基尼指数,之后利用样本中每一个特征A,及A的每一个可能取值a,根据A>=a与A<a将样本分为两部分,并计算Gini(D,A)值

2)找出对应基尼指数最小Gini(D,A)的最优切分特征及取值,并判断是否切分停止条件,否,则输出最优切分点

3)递归调用1)2)

4)生成CART决策树

基尼系数:

在分类问题中,假设有K类,样本点属于第k类的概率为pk,则概率分布的基尼指数定义为:

Gini(p)=∑Kk=1pk(1−pk)=(p1+p2+...+pK)−∑Kk=1p2k=1−∑Kk=1p2k

对于分类问题:设Ck为D中属于第k类的样本子集,则基尼指数为:

Gini(D)=1−∑Kk=1(|Ck||D|)2

设条件A将样本D切分为D1和D2两个数据子集,则在条件A下的样本D的基尼指数为:

Gini(D,A)=|D1|DGini(D1)+|D2|DGini(D2)

基尼指数也表示样本的不确定性,基尼指数值越大,样本集合的不确定性越大。

参考:https://blog.csdn.net/LY_ysys629/article/details/72809129

 

Adaboost:

Adaboost是将不同的分类器组合在一起将测试数据集进行分类的方法,分类的结果是基于所有分类器的加权求和结果的,所以分类器的权重并不相等,每个权重代表的是其对应分类器在上一轮迭代中的成功度。

AdaBoost的流程如下:

首先需要给训练数据中的每个样本都要赋予一个权重,这些权重构成了向量D,在算法的最开始,D向量中每个值都是相等的。再通过训练数据训练出分类器,但此时的分类器是弱分类器,不会满足我们的需求,这里可以得到每个分类器的错误率。根据第一次得到的错误率,我们可以更新每一个样本的权重,第一次分对的样本的权重会降低,分错的样本的权重会提高。Adaboost算法也给了每个分类器分配了权重alpha,alpha值的更新也是根据错误率进行计算。

错误率:

分类器权重alpha:

正确分类的样本权重:

错误分类的样本权重:

SVM:

支持向量机是一种分类方法,对已有数据集进行多个超平面的划分,将数据分为几类。

参考:https://blog.csdn.net/taichitaichi/article/details/80377900

 

以上3种模型分别对预测数据集进行预测,得到三份预测结果,之后采取比较数目的方法来确定每一项的预测结果。每一项的最终预测结果是符合三份预测结果里预测结果数目最多的预测结果。

 


下表所示的情况就是3个正确率为70%的结果来一致判别得到最终结果的最佳情况(其中1代表预测正确,0代表预测错误)

5.最终结果

上图是只用CART决策树得出来的最佳结果,将三种模型的结果一齐进行比较得出的结果反而更差,没有预想中的提升。

分析原因如下:

1.三个模型各自的正确率为:70%(决策树),60%(SVM),50%(Adaboost),在进行多数判断时,可能会比单个判断错的更多。

2.在数据预处理中,既删除了部分数据,又用标签简化了一些数据,造成数据信息量的丢失

您可能感兴趣的与本文相关内容

内容概要:本文提出了一种基于改进扩散模型的高海拔地区新能源高波动出力场景生成方法,并提供了完整的Python代码实现。该方法针对高海拔地区风能、光伏等新能源出力波动剧烈、不确定性高的特点,通过优化扩散模型的结构与训练策略,有效捕捉历史据的概率分布特征与时序相关性,从而生成高质量、多样化的出力场景。文中详细阐述了模型的学推导、网络架构设计、损失函优化及采样算法改进,并通过实验证明其在拟合精度、场景多样性与稳定性方面优于传统生成模型,为电力系统在高比例新能源接入下的规划、调度与风险评估提供了可靠的场景输入支持。; 适合人群:具备一定Python编程能力和机器学习基础,从事新能源发电预测、电力系统分析、智能优化、场景生成等方向研究的科研人员、高校研究生及工程技术人员。; 使用场景及目标:①用于高海拔地区风电、光伏出力的不确定性建模与多场景生成;②支撑含高渗透率新能源的电力系统随机优化调度、鲁棒决策与风险评估;③为相关学术研究、论文复现与算法改进提供可运行的技术方案与代码基础; 阅读建议:建议读者结合所提供的完整资源(代码、据集、说明文档)进行实践操作,重点关注扩散模型的前向加噪与反向去噪过程的设计细节,以及如何将其适配于新能源时序据的生成任务,通过参调优与对比实验深入理解模型的生成机制与性能边界。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值