研究目的:使用机器学习来创建一个模型,该模型可以预测哪些乘客在泰坦尼克号沉船事故中幸存下来。

研究结论:

分析过程:

本次分析使用Jupter Notebook进行分析

该notebook 服务的版本是:6.0.3

该服务运行中使用的python版本为:

Python 3.7.6 (default, Jan 8 2020, 20:23:39) [MSC v.1916 64 bit (AMD64)]

一.字段解释

原数据集中共有12个字段:PassengerId:编号,Survived:是否存活,Pclass:船舱等级;Name:姓名,Sex:性别,Age:年龄,SibSp:兄弟姐妹和配偶数量,Parch:父母与子女数量,Ticket:车票编号,Fare:票价,Cabin:座位号,Embarked:码头。

二.数据描述

首先将Titanic数据集导入,查看数据集描述

titanic_data.describe()

我们可以看到,数据集共有891条数据,在数值型变量中Age变量存在缺失情况。

接下来观察各变量及各变量间特征。

titanic_data.profile_report(title='Titanic')

1.PassengerId

编号做为数据集索引不具有研究价值。

2.Survived

数据集中幸存乘客数量为342,占总数据的38.4%;未幸存乘客数量为549,占总数据的61.6%。

3.Pclass

船舱等级为一级的乘客有216人,占总数据的24.2%,等级为二级的乘客有184人,占总数据的20.7%,等级为三级的乘客有491人,占总数据的55.1%。

4.Sex

性别为男性的乘客共577人,占总数据的64.8%,女性乘客共314人,占总数据的35.2%。

5.Age

我们可以观察一下乘客年龄的各方面数据,年龄最小的是5个月大的婴儿,年龄最大的为80岁,年龄的均值为29岁可以看出年龄在29岁以下的乘客比较多。

上图是各年龄阶段人数频率图,在20-40岁之间的乘客数量最多且较为集中。

6.SibSp

该字段是乘客的兄弟姐妹及配偶的数量,没有兄弟姐妹或只有一个兄弟姐妹的乘客数量为91.7%,占据了乘客中的绝大部分。

7.Parch

该字段为乘客的父母或子女数量,在数据中拥有0或1个父母或子女的乘客数量共796人,占总数据的89.3%。

8.Fare

上图为票价字段的数据,最小值0元,最大值512.3292元,平均32元,显然低票价的乘客较多,高票价乘客只是少数,标准差为49.6大于平均值,票价数据较为分散。

9.Embarked

乘客的上船港口有三个,S,C,G,S港上船的乘客数量最多,为644人,占72.3%,C港上船的乘客数量为168,占18.9%,G港上船乘客数量最少,仅77人,占8.6%,且数据集中有两个乘客未登记上船港口,属缺失值。

三.变量间关系

1.船舱等级与乘客是否生存(Pclass & Survived)

pd.crosstab(titanic_data.Pclass,titanic_data.Survived).plot(kind="bar")

上图蓝色为未幸存乘客,橙黄色为幸存乘客,可以看出在不同等级船舱中乘客幸存比例有较大差异,等级为1的船舱中乘客幸存比例大于未幸存比例,等级为2的船舱中乘客幸存比例与未幸存比例基本持平,但低于未幸存乘客比例,等级为3的船舱中未幸存乘客比例则远远高于幸存乘客比例。

2.性别与乘客是否生存(Sex & Survived)

pd.crosstab(titanic_data.Sex,titanic_data.Survived).plot(kind="bar")

上图左侧为女性乘客,右侧为男性乘客,可以明显看出女性乘客中幸存比例远高于未幸存比例,而男性乘客则表现出了完全相反的情况,未幸存的乘客比例远高于幸存的乘客。

3.年龄与乘客是否生存(Age & Survived)

由于年龄数据存在缺失,我们考虑用年龄的均值来填充缺失数据。

titanic_data.Age.fillna(29.7,inplace=True)

将Age变量进行离散化处理,小于10岁的为0,10-20岁为1,20-30岁为2,30-40岁为3,40-50岁为4,50-60岁为5,60-70岁为6,70-80岁为7.

ages=np.array(titanic_data.Age)

bins=[0,10,20,30,40,50,60,70,80,90]

cats1=pd.cut(ages,bins,labels=False)

接下来对离散后的Age变量与Survived数据进行绘图。

pd.crosstab(cats1,titanic_data.Survived).plot(kind="bar")

上图可以看出在所有年龄区间中,只有小于10岁的乘客幸存率大于未幸存率,其余年龄段乘客未幸存率均大于幸存率,且在20-30岁区间内的乘客未幸存比例与其余年龄段乘客有显著差异。

4.兄弟姐妹和配偶数量与乘客是否生存(SibSp & Survived)

pd.crosstab(titanic_data.SibSp,titanic_data.Survived).plot(kind="bar")

在兄弟姐妹和配偶数量变量上来看,只有拥有1个兄弟姐妹或配偶的乘客幸存率大于未幸存率,拥有2个的乘客幸存率与未幸存率基本持平,但仍低于未幸存率,拥有5个或8个兄弟姐妹或配偶的乘客幸存率基本为0。

5.父母与子女数量与乘客是否生存(Parch & Survived)

pd.crosstab(titanic_data.Parch,titanic_data.Survived).plot(kind="bar")

该字段为乘客拥有的父母或子女数量,只有拥有1个父母或子女的乘客幸存率大于未幸存率,拥有2个和3个的乘客幸存率与未幸存率基本持平,但仍低于未幸存率,拥有4个或6个父母或子女的乘客幸存率基本为0。

5.票价与乘客是否生存(Fare & Survived)

票价变量仍为连续变量,我们按四分位点对其进行离散化处理。0为票价0-7.91,1为票价7.91-14.45,2为票价14.45-31.513,3为票价31.513以上。

fares=np.array(titanic_data.Fare)

bins=[-1,7.91,14.45,31,513]

cats2=pd.cut(fares,bins,labels=False)

下面进行绘图

pd.crosstab(cats2,titanic_data.Survived).plot(kind="bar")

从上图我们可以很明显的看出规律:票价越高幸存率越高,未幸存率越低,且在票价高于31.513的区间内幸存率超过未幸存率。

6.码头与乘客是否生存(Embarked & Survived)

由于码头变量数据内存在缺失值,我们考虑使用变量内众数对缺失值进行填充,之后进行绘图。

titanic_data.Embarked.fillna('S',inplace=True)

pd.crosstab(titanic_data.Embarked,titanic_data.Survived).plot(kind="bar")

可以看出S港上船乘客最多,但未幸存率远高于幸存率,与O港乘客特征类似,但C港上船的乘客幸存率却高于未幸存率。

更新中

禁止转载

泰坦尼克号python数据分析统计服_Titanic数据分析报告(Python)相关推荐

  1. python excel 数据分析统计服_数据分析从入门到进阶(透彻讲解EXCEL.SQL.TABLEAU、PYTHON四项数据分析必会工具.免费提供1GB数据集...

    透彻讲解Excel.SQL.Tableau.Python四项数据分析必会工具,数据分析工作者的案头推荐工具书.系统介绍数据分析的策略.方法(数据分析之道):实例讲解引导.快速掌握数据分析工具(数据分析 ...

  2. python 廖雪峰数据分析统计服_廖雪峰python教程阅读量统计

    统计了下廖老师的python教程各个小节的阅读量(毫无卵用),廖老师网站反爬做的比我们教务系统可是好多了,一定时间内访问次数多会禁止,反正数据量也不多,就慢慢来,基本上也不会对网站造成什么影响. 刚学 ...

  3. python爬虫餐饮行业数据分析统计服_Python数据分析实战,简单快速制作餐饮行业商业化报告...

    前些天有个朋友向我求救,他们公司最近要针对餐饮行业做数据分析,并为某些商家做出线上营销方案.但是他一头雾水,不知道该从哪方面下手. 我提醒他,是否先从商家的线上评价作为数据分析的入口例如美团.大众点评 ...

  4. python实现气象数据分析统计服_Python数据分析实战:降雨量统计分析报告分析

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于菜J学Python ,作者小小明 最近遇到一个有点烧脑的需求,其实也不算烧脑,主要是 ...

  5. 泰坦尼克号python数据分析统计服_数据分析可视化——泰坦尼克号幸存者分析(上)...

    文章目录数据获取.结构分析如何获取seaborn提供数据源 特征列分析 缺失值与数据清洗年龄缺失值处理 填充embarked 删除不必要的列 幸存者分析分析性别对存活率的影响 分析年龄对存活率影响 分 ...

  6. python 廖雪峰数据分析统计服_廖雪峰Python总结1

    1.输入输出 输入? 2.文本编辑器中,需要把Tab键自动转换为四个空格,确保不混用Tab和空格. 3.数据类型和变量 1.整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的(包括除法) ...

  7. python时间序列数据分析统计服_python数据分析之:时间序列二

    将Timestamp转换为Period 通过使用to_period方法,可以将由时间戳索引的Series和DataFrame对象转换为以时期索引 rng=pd.date_range('1/1/2000 ...

  8. 转行学python 数据分析统计服_转行数据分析,你准备好了吗?

    前言 笔者从去年5月份下定决心离开汽车制造行业,6月份开始学习Udacity的DAND(Data Analysis Nano Degree, 数据分析纳米学位)课程至今.历经10个月挑灯苦读和1个月四 ...

  9. python软件设计数据分析统计服_Python 和 R 数据分析/挖掘工具互查

    写在前面 在此总结一些在数据分析/挖掘中可能用到的功能,方便大家索引或者从一种语言迁移到另一种.当然,这篇博客还会随时更新(不会另起一篇,为了方便大家索引),请大家如果有需要收藏到书签中. 如果大家还 ...

最新文章

  1. HDU_2065 红色病毒问题(指数型生成函数)
  2. eclipse远程连接hadoop_Hadoop之HDFS基本操作实验
  3. 系统 销售订单号_销售单,进货单自动计算,一键保存的进销存管理系统,十分好用...
  4. 状态码301 302
  5. 昆明学院计算机二级报名时间,2017年3月昆明学院计算机等级考试报名时间(云南)...
  6. Neo4j:Cypher –避免热切
  7. redis key失效的事件_《分享几道高频 Redis 高频面试题,面试不用愁》
  8. 还在低效搬砖?看 BIM 如何颠覆了土木工程?
  9. 闪烁指示灯监控方案_机房温湿度监控检测方案【斯必得智慧机房】
  10. 磁盘分区 如何分出整数
  11. SpringBoot 拦截器和过滤器区别及应用
  12. 解析大型Java项目架构演进(以淘宝网为例)
  13. 对傅里叶变换FFT性质的理解 平移 旋转 缩放
  14. 用qq账号和密码实现登录网易云音乐
  15. macosx安装之旅(8)-常见问题(转载)
  16. class与typename的异同
  17. 关于电脑设置个性化此电脑属性打不开问题
  18. Ubuntu 18.04安装搜狗输入法笔记
  19. Latex空格怎么打?
  20. 第10周:吴恩达机器学习课后编程题ex8——Python

热门文章

  1. pg插入执行成功但是没有数据_pg_lightool基于basebackup的单表恢复和块恢复
  2. python添加自定义模块_Python中添加自定义模块的方法
  3. Linux中设置tab4个空格,linux下vim中tab设置为4个空格例子
  4. linux 存储映射lun 给_linux 存储多路径聚合和映射
  5. android融云自定义消息界面大小,融云自定义消息通知栏显示
  6. Java业务面考什么_Java程序员面试技巧分享,面考官考查JAVA程序员常用的技术有哪些?...
  7. button标签设置隐藏和显示_让你更高效的功能——设置、预设的妙用【动态数学软件GeoGebra】...
  8. python面向对象三大特性6大原则_【Python学习笔记】面向对象三大特性
  9. android listview 刷新不正确,Android中设置ListView内容刷新问题
  10. String int之间转换