使用R语言预测泰坦尼克号乘客生存率

1912年4月10日,号称 “世界工业史上的奇迹”的豪华客轮泰坦尼克号开始了自己的处女航,从英国的南安普顿出发驶往美国纽约,4月14日晚,泰坦尼克号在北大西洋撞上冰山而倾覆,1502人葬生海底,705人得救。造成了当时在和平时期最严重的一次航海事故,也是迄今为止最著名的一次海难。38岁的查尔斯·莱特勒是泰坦尼克二副,他是最后一个从冰冷的海水中被拖上救生船、职位最高的生还者。在他写的回忆录中,列举几个让人震撼的情景:

在第一艘救生艇下水后,我对甲板上一名姓斯特劳的女人说:你能随我一起到那只救生艇上去吗?没想到她摇了摇头:不,我想还是呆在船上好。她的丈夫问:你为什么不愿意上救生艇呢?这名女人竟笑着回答:不,我还是陪着你。此后,我再也没有见到过这对夫妇…

亚斯特四世(当时世界第一首富)把怀着五个月身孕的妻子玛德琳送上4号救生艇后,站在甲板上,带着他的狗,点燃一根雪茄烟,对划向远处的小艇最后呼喊:我爱你们!一副默多克曾命令亚斯特上船,被亚斯特愤怒的拒绝:我喜欢最初的说法(保护弱者)!然后,把唯一的位置让给三等舱的一个爱尔兰妇女……

斯特劳斯是世界第二巨富,美国梅西百货公司创始人。他无论用什么办法,他的太太罗莎莉始终拒绝上八号救生艇,她说:多少年来,你去哪我去哪,我会陪你去你要去的任何地方。八号艇救生员对67岁的斯特劳斯先生提议:我保证不会有人反对像您这样的老先生上小艇。斯特劳斯坚定地回答:我绝不会在别的男人之前上救生艇。然后挽著63岁罗莎莉的手臂,一对老夫妇蹒姗地走到甲板的藤椅上坐下,等待着最后的时刻…

新婚燕尔的丽德帕丝同丈夫去美国渡蜜月,她死死抱住丈夫不愿独自逃生,丈夫在万 般无奈中一拳将她打昏,丽德帕丝醒来时,她已在一条海上救生艇上了。此后,她终生未再嫁,以此怀念亡夫…

在这种生死存亡的紧要关头,我们常常认为社会等级越高、影响力越大,公众认可度越高的人物,生存的概率应该越大,其次,乘客家庭成员多,成员间的协作和对求生的渴望度越高,生存的概率越高。然而,很多时候,事情产生这样的结果的原因并非我们主观臆测的那样,我们需要通过对真实数据进行科学的分析,才能发现很多事情并非我们想象的那样简单,事情产生的本质,往往隐藏在数据之中

下面我们就使用R语言根据已知存活情况的数据建立分析模型来预测其他一部分乘客的存活情况,其中,训练数据和测试数据均来源于:https://www.kaggle.com/c/titanic
本文的代码和分析过程除部分修改外主体参考自Megan L. Risdal的文章:Exploring Survival on the Titanic

一.数据的导入和查看

#有些包需要安装,我们专门建立一个packagemanger.R文件来管理它门,在工程主入口文件中先进行编译后导入进行使用 source('D:/R/RStudioWorkspace/titanic_test/utils/packageManager.R',encoding = 'UTF-8') library('ggplot2') # 可视化 library('ggthemes') # 可视化 library('scales') # 可视化 library('dplyr') # 数据处理 library('mice') # 填充缺失数据 library('randomForest') # 分类算法 train <- read.csv('D:/R/RStudioWorkspace/Titanic dataset from Kaggle/train.csv',stringsAsFactors= FALSE) test <- read.csv('D:/R/RStudioWorkspace/Titanic dataset from Kaggle/test.csv',stringsAsFactors= FALSE) # 合并两个数据框,查看相关变量名称 total_data <- bind_rows(train,test) str(total_data)

查看的数据结果如下:

'data.frame': 1309 obs. of 12 variables: $ PassengerId: int 1 2 3 4 5 6 7 8 9 10 ... $ Survived : int 0 1 1 1 0 0 0 0 1 1 ... $ Pclass : int 3 1 3 1 3 3 1 3 3 2 ... $ Name : chr "Braund, Mr. Owen Harris" "Cumings, Mrs. John Bradley (Florence Briggs Thayer)" "Heikkinen" ... $ Sex : chr "male" "female" "female" "female" ... $ Age : num 22 38 26 35 35 NA 54 2 27 14 ... $ SibSp : int 1 1 0 1 0 0 0 3 0 1 ... $ Parch : int 0 0 0 0 0 0 0 1 2 0 ... $ Ticket : chr "A/5 21171" "PC 17599" "STON/O2. 3101282" "113803" ... $ Fare : num 7.25 71.28 7.92 53.1 8.05 ... $ Cabin : chr "" "C85" "" "C123" ... $ Embarked : chr "S" "C" "S" "S" ...

我们观察到一共有1309条数据,每一条数据有12个相关变量

$ PassengerId: 乘客编号 $ Survived :存活情况(存活:1 ; 死亡:0) $ Pclass : 客场等级 $ Name : 乘客姓名 $ Sex : 性别 $ Age : 年龄 $ SibSp : 同乘的兄弟姐妹/配偶数 $ Parch : 同乘的父母/小孩数 $ Ticket : 船票编号 $ Fare : 船票价格 $ Cabin :客舱号 $ Embarked : 登船港口

二.特征工程

用户喜欢...

Pioneer DJ产品盘点现场,详谈风靡DJ圈的DJ设备

相信不管是过去还是现在,如果你想购入一台DJ设备,选择的前3个品牌里,必有Pioneer DJ的名字。就算是入门新手咨询专业DJ,也会被专业DJ安利Pioneer DJ的设备。甚至在全球高达93%的夜场DJ设备选...


数据分析是如何推动游戏行业发展的?

2018年,电子游戏行业收入达到434亿美元,再创新高,同比增长18%。这一蓬勃发展的领域孕育了更为复杂和广泛的游戏格式,包括桌面、移动、控制台、VR等。事实上,数据分析师和BI开发人员正...


软银和博报堂、Arm成立合资公司 利用大数据支持企业转型

软银官方近日消息,软银、Arm和整合营销解决方案公司博报堂成立合资公司INCUDATA Corp. ,旨在利用大数据支持企业数字化转型。 新公司通过提供从数据使用战略规划到分析平台建设、运营以及...


Hive和Spark究竟是凭借什么优势而大获成功?

Hive和Spark凭借其在处理大规模数据方面的优势大获成功,换句话说,它们是做大数据分析的。本文重点阐述这两种产品的发展史和各种特性,通过对其能力的比较,来说明这两个产品能够解决...


大数据服务提供商富数科技获近亿元Pre-B轮融资 达泰资本领投

近日获近亿元 Pre-B 轮融资,达泰资本领投,虹云创投基金及部分老股东跟投。创始人兼 CEO 张伟奇表示,本轮融资将主要用于团队建设,以及重点投入安全多方计算平台(sMPC)的研发。 富数科技...


iTalentU 2019北森用户生态大会召开,定义HR SaaS 3.0时代

北森:新科技重塑人力资源,HR SaaS步入3.0时代 2019年8月8日,以科技成就人才为主题的iTalentU2019北森第四届用户生态大会在北京国家会议完美落幕。专业大咖、管理专家、知名企业HR高管、技术...


大数据时代的终结 HPE今天宣布将收购MapR Technologies

HPE今天宣布将收购MapR Technologies的资产,收购金额未对外公开,给这个为期两个月、让MapR这家曾经高速发展的大数据公司陷入困境的戏剧性事件画上了句号。 HPE表示,这次收购包括MapR的技术、...


UCloud重磅发布UIoT-Core物联网平台,助力海量IoT设备云端智能

物联设备爆发增长,5G网络即将商用,IPv6逐渐普及,计算成本下降,以及大数据分析和人工智能技术的快速发展,这些不断涌现的技术浪潮,正在推动我们更快地进入万物智联时代。 近日,...


数据分析的一些常见问题

文|西湖小霸王 数据分析和数据挖掘,是大数据应用的核心技术,也是大数据应用的关键所在。 数据分析重要,但是...


TensorFlow技术主管:团队如何管理开源项目

作者:Pete Warden|TensorFlow Mobile 团队的技术主管 TensorFlow 技术主管在这篇文章中和我们分享了他们团队管理开源项目的...


基于时空算法研究的商业决策分析

作者:康维珊、刘际洲、和常盎 常言道:...


大数据洞察报告的变现困境,到底要怎么走出

作者:傅一平 “虽然我也如一个囚徒,正寻找着大数据洞察报告的光明“,这是我上篇《为什么没人愿意为大数据洞...


如何让热点图支持大数据

作者:funkgiser 所谓的热点图,是图1)构建一张灰度图,图2)在每个热点的位置上绘制并叠加形成灰色的热点图,图3)根...


如何将枯燥的大数据呈现为可视化的图?

作者:哈士奇不姓哈 将数据转化成可视化图表/形,其实一个工具就能完成,碍于工具太多,按照使用场景,暂且将已...


ggplot2又添新神器——ggthemr助你制作惊艳美图

作者:杜雨 今天在浏览ggplot扩展插件目录的时候,又发现了一款神器——ggthemr。 这是继ggplot2的ggtheme包、RColorBrewe...


数据流程图和数据结构是需求分析中不可缺少的一环

作者:王小双 需求分析活动要完成4项任务,分别是: 问题识别 评价和综合 形成规格说明 评审规格说明 这4项任务中...