本实验进行泰坦尼克乘客生存分析,下面四小问分别怎么作答?
1912年,当时世界上体积最庞大、内部设施最豪华的客运轮船,有“永不沉没”美誉的泰坦尼克号,在首次航行中撞冰山沉入大西洋底3700米深处。事故造成2224名乘客和机组人员中1502人死亡,大面积伤亡的原因之一是船上没有足够的救生艇供乘客和船员使用。尽管在沉船事故中幸存下来的人有一些运气成分,但有些人会比其他人具有更高的存活几率。
著名的数据分析竞赛网站Kaggle上,举行了很多数据分析比赛,其中比较著名的就有泰坦尼克号乘客生还预测 。Kaggle提供的数据集中,共有1309名乘客数据,其中891是已知存活情况,剩下418则是需要进行分析预测的。本实验仅使用包含存活状态属性的训练数据进行数据分析。
数据主要字段说明如下:
PassengerId: 乘客编号
Survived: Survived (1) or died (0)是否存活
Pclass: 船舱
Name: 姓名
Sex: 性别
Age: 年龄
SibSp: 兄弟/姐妹/配偶的数量
Parch: 父母/子女的数量
Ticket: 票号
Fare: 票价
Cabin: 座号
Embarked: 登船港口
本周实验分析探索原始数据,查看数据空值等情况,并使用可视化图表展示性别、船舱等级等与存活率的关系。
1. 数据导入
(1)引入数据分析所需的包。
(2)读入实验数据。
(3)查看实验数据,了解数据情况。
- 缺失值处理
(1)处理年龄(Age)的缺失值,用平均值补全。
(2)删除船舱号(Cabin)、登船港口(Embarked)两列数据。
3. 数据编码
对于不同类型的数据编码方法不同,对于数值类型的数据可以直接使用,对于日期数据需要转换为单独的年、月、日,对于分类数据使用one-hot编码方法用数字代替类别。
(1)乘客性别Sex:男性male,女性female。将性别的值映射为数值, 男(male)对应数值为1,女(female)对应值为0。
(2)使用get_dummies对船舱等级(Pclass)进行one-hot编码,列名前缀为‘Pcls’,添加one-hot编码产生的虚拟列,删除原来的船舱等级(Pclass)列。
4. 数据可视化
(1)柱状图用长方形长度来比较两个或以上的值。绘制按性别分类的存活人数柱状图。
(2)计算各船舱等级的存活率,用柱状图进行数据可视化。
(3)饼图以图形方式显示各个组成部分所占比例。请根据各船舱等级的乘客人数,用饼图进行数据可视化。