泰坦尼克号幸存者数据分析

news2024/12/22 19:55:52

泰坦尼克号幸存者数据分析

      • 1、泰坦尼克号数据集
      • 2、数据集加载与概览
      • 3、泰坦尼克号幸存者数据分析
      • 4、哪些人可能成为幸存者?



1、泰坦尼克号数据集


泰坦尼克号的沉没是世界上最严重的海难事故之一,造成了大量的人员伤亡。这是一艘号称当时世界上最大的邮轮,船上的人年龄各异,背景不同,有贵族豪门,也有平民旅人,邮轮撞击冰山后,船上的人马上采取措施安排救生艇转移人员,从本次海难中存活下来的,也就是幸存者

泰坦尼克号数据集为1912年泰坦尼克号沉船事件中相关人员的个人信息以及存活状况。包含了2224名乘客和船员的姓名、性别、年龄、船票等级、船票价格、船舱号、登船港口、生存情况等信息。这些历史数据已经被分为训练集和测试集,我们可以根据训练集训练出合适的模型并预测测试集中的存活状况

数据集来源:https://www.kaggle.com/c/titanic

数据集下载:传送门

数据集各文件介绍:

  • gender_submission.csv:乘客编号与是否幸存记录
  • train.csv:训练集
  • test.csv:测试集

数据集(训练集和测试集)的属性信息(11特征+1标签)如下:

特征/标签说明
PassengerId乘客编号
Survived是否幸存,1是0否
Pclass船舱等级,1(一等)、2(二等)、3(三等)
Name乘客姓名
Sex乘客性别
Age乘客年龄
SibSp与乘客同行的兄弟姐妹及配偶人数
Parch与乘客同行的父母及子女人数
Ticket船票编号
Fare船票价格
Cabin乘客座位号
Embarked乘客登船码头,C(Cherbourg)、Q(Queenstown)、S(Southampton)

2、数据集加载与概览


1)加载数据集

import pandas as pd
import numpy as np

path = r"C:\Users\cc\Desktop\titanic_dataset\train.csv"
# 加载数据集
data = pd.read_csv(path, encoding='utf-8')
# 数据集前5行
print(data.head().to_string())
'''
   PassengerId  Survived  Pclass                                                 Name     Sex   Age  SibSp  Parch            Ticket     Fare Cabin Embarked
0            1         0       3                              Braund, Mr. Owen Harris    male  22.0      1      0         A/5 21171   7.2500   NaN        S
1            2         1       1  Cumings, Mrs. John Bradley (Florence Briggs Thayer)  female  38.0      1      0          PC 17599  71.2833   C85        C
2            3         1       3                               Heikkinen, Miss. Laina  female  26.0      0      0  STON/O2. 3101282   7.9250   NaN        S
3            4         1       1         Futrelle, Mrs. Jacques Heath (Lily May Peel)  female  35.0      1      0            113803  53.1000  C123        S
4            5         0       3                             Allen, Mr. William Henry    male  35.0      0      0            373450   8.0500   NaN        S
'''

2)数据集大小

# 数据集的大小
print(data.shape)    # (891, 12)

泰坦尼克号数据集(训练集)有891个样本,12个特征和标签

3)特征和标签

# 数据集的特征和标签
data.info()

结果如图所示:

在这里插入图片描述
泰坦尼克号数据集的特征和标签及对应数据类型如上图所示

4)数据缺失情况

# 数据集的缺失情况
print(data.isnull().sum())

结果如图所示:

在这里插入图片描述
从结果可见,泰坦尼克号数据集中的乘客年龄和乘客座位号有大量缺失

3、泰坦尼克号幸存者数据分析


问题提出: 哪些人可能成为幸存者?

在回答这个问题之前,我们先来看一下泰坦尼克号全员整体的获救比例

1)获救比例

# 获救人数占比
survive_ratio = data['Survived'].value_counts(normalize=True).reset_index()
print(survive_ratio)
# 幸存者占比:38.4%;遇难者占比:61.6%

结果如图所示:

在这里插入图片描述
结论1:泰坦尼克号幸存者仅占全员人数的38.4%

2)性别特征对获救率的影响

a、 男性乘客与女性乘客占比

# 男性乘客与女性乘客占比
mf_count = data['Sex'].value_counts().reset_index()
print(mf_count)
# 男性乘客:577人,女性乘客:314人

结果如图所示:

在这里插入图片描述
b、 男性乘客与女性乘客的获救率

# 男性乘客与女性乘客的获救率
mf_ratio = data['Survived'].groupby(data['Sex']).value_counts().reset_index()
# 合并
mf_data = pd.merge(mf_ratio, mf_count, how='left', on='Sex')
mf_data['rescue_ratio'] = mf_data['count_x'] / mf_data['count_y']
print(mf_data)
# 男性乘客获救比例:18.9%,女性乘客获救比例:74.2%

结果如图所示:

在这里插入图片描述
结论2:女性乘客总人数比男性少,但是获救人数却比男性乘客要多。性别特征对获救概率影响较大

3)船舱等级特征对获救率的影响

a、 各船舱等级乘客占比

# 各船舱等级乘客占比
pc_count = data['Pclass'].value_counts().reset_index()
print(pc_count)
# 一等:216人,二等:184人,三等:491人

结果如图所示:

在这里插入图片描述
b、 各船舱等级乘客的获救率

# 各船舱等级乘客的获救率
pc_ratio = data['Survived'].groupby(data['Pclass']).value_counts().reset_index()
# 合并
pc_data = pd.merge(pc_ratio, pc_count, how='left', on='Pclass')
pc_data['rescue_ratio'] = pc_data['count_x'] / pc_data['count_y']
print(pc_data)
# 一等获救比例:62.9%,二等获救比例:47.3%,三等获救比例:24.2%

结果如图所示:

在这里插入图片描述
结论3:一等船舱获救比例最高,三等船舱获救比例最低。船舱等级对于乘客的获救率存在较大的影响

4)各船舱等级中的性别特征对获救率的影响

a、 不同船舱等级的男女乘客人数

# 不同船舱等级的男女乘客人数
ps_count = data['Sex'].groupby(data['Pclass']).value_counts().reset_index()
print(ps_count)
# 一等:男122人,女94人,二等:男108人,女76人,三等:男347人,女144人

结果如图所示:

在这里插入图片描述
b、 不同等级船舱的男性乘客与女性乘客的获救率

# 不同等级船舱的男性乘客与女性乘客的获救率
ps_ratio = data['Survived'].groupby([data['Pclass'], data['Sex']]).value_counts().reset_index()
# 合并
ps_data = pd.merge(ps_ratio, ps_count, how='left', on=['Pclass', 'Sex'])
ps_data['rescue_ratio'] = ps_data['count_x'] / ps_data['count_y']
print(ps_data)
# 一等获救比例:男39.9%,女96.8%,二等获救比例:男 15.7%,女92.1%,三等获救比例:男13.5%,女50.0%

结果如图所示:

在这里插入图片描述
结论4:各等级船舱中男性乘客多于女性乘客,但是女性乘客的获救比例都高于男性乘客。不同等级船舱的女性乘客的获救率高于男性,这可能是女士优先的原因

4、哪些人可能成为幸存者?


根据上述分析结果,我们可以得到以下两个关于乘客获救率的结论:

  • 在泰坦尼克号上,女性的获救率高于男性
  • 高等级船舱的乘客获救率高于低等级船舱

另外,我们也可以从年龄等其他角度进行分析,有兴趣的小伙伴可以自行尝试



参考文章:https://zhuanlan.zhihu.com/p/129247887


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1571473.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深入浅出 -- 系统架构之分布式CAP理论和BASE理论

科技进步离不开理论支撑,而当下大行其道的分布式架构,透过繁荣昌盛表象,底层同样离不开诸多分布式理论撑持。当然,相信诸位在学习分布式相关技术时,必然学到过两个分布式领域中的基础理论,即:CA…

Java零基础入门-递归

一、概述 上一期,我们是具体学习了File类的一些概念基础知识点,以及对于该类的常用方法进行了一个全量举例演示,这也是考虑到有的小伙伴在阅读的同时,没有时间去实际测试,所以我也就顺带的给大家去做了实例演示&#x…

自动驾驶涉及相关的技术

当科幻走进现实,当影视照进生活,无数次憧憬的自动驾驶,正在慢慢的梦想成真。小时候天马星空的想象,现在正悄无声息的改变着我们的生活。随着汽车电动化进程的加快,自动驾驶技术映入眼帘,很多人可能感觉遥不…

软考 系统架构设计师系列知识点之数据库基本概念(1)

所属章节: 第6章. 数据库设计基础知识 第1节 数据库基本概念 数据(Data)是描述事务的符号记录,它具有多种表现形式,可以是文字、图形、图像、声音和语言等。信息(Information)是现实世界事物的…

使用SVD将图像压缩四分之一(MATLAB)

SVD压缩前后数据量减少的原因在于,通过奇异值分解(SVD),我们将原始数据(如图像)转换成了一种更加紧凑的表示形式。这种转换依赖于数据内部的结构和相关性,以及数据中信息的不均匀分布。 让我们…

10-用PySpark建立第一个Spark RDD

目录 RDD概念RDD特点建立RDD的方式不同工具建立RDD的方式使用PySpark Shell(交互环境)建立RDD使用VSCode编程建立RDD使用Jupyter Notebook建立RDD 总结 PySpark实战笔记系列第一篇 RDD概念 Apache Spark的核心组件的基础是RDD。所谓的RDD,即弹性分布式数据集&#…

FL Studio 21.2.2官方中文破解版2024年最新图文安装激活教程 FL Studio 21免费激活

FL Studio 21.2.2官方中文破解版,中文别名水果编曲软件,是一款全能的音乐制作软件,包括编曲、录音、剪辑和混音等诸多功能,让你的电脑编程一个全能的录音室,它为您提供了一个集成的开发环境,使用起来非常简…

【stm32】I2C通信外设

【stm32】I2C通信外设 概念部分 如果简单应用,选择软件I2C。如果对性能指标要求比较高 选择硬件I2C 有硬件电路自动反转引脚电平,软件只需要写入控制寄存器CR和数据寄存器DR 为了实时监控时序的状态,还要读取状态寄存器SR 写入控制寄存器CR…

06-kafka及异步通知文章上下架

kafka及异步通知文章上下架 1)自媒体文章上下架 需求分析 2)kafka概述 消息中间件对比 特性ActiveMQRabbitMQRocketMQKafka开发语言javaerlangjavascala单机吞吐量万级万级10万级100万级时效性msusmsms级以内可用性高(主从)高(主从&#…

【数据库】MySQL InnoDB存储引擎详解 - 读书笔记

MySQL InnoDB存储引擎详解 - 读书笔记 InnoDB 存储引擎概述InnoDB 存储引擎的版本InnoDB 体系架构内存缓冲池LRU List、Free List 和 Flush List重做日志缓冲(redo log buffer)额外的内存池 存储结构表空间系统表空间独立表空间通用表空间undo表空间临时…

力扣---反转链表 II ***

给你单链表的头指针 head 和两个整数 left 和 right &#xff0c;其中 left < right 。请你反转从位置 left 到位置 right 的链表节点&#xff0c;返回 反转后的链表 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], left 2, right 4 输出&#xff1a;[1,4,3,…

【QT入门】 Qt代码创建布局综合运用:仿写腾讯会议登陆界面

往期回顾&#xff1a; 【QT入门】 Qt代码创建布局之水平布局、竖直布局详解-CSDN博客 【QT入门】 Qt代码创建布局之栅格布局详解-CSDN博客 【QT入门】 Qt代码创建布局之分裂器布局详解-CSDN博客 【QT入门】 Qt代码创建布局综合运用&#xff1a;仿写腾讯会议登陆界面 一、界面分…

rust 面向对象编程特性、模式与模式匹配、高级特征

面向对象编程OOP 学习了结构体、枚举&#xff0c;它们可以包含自定义数据字段&#xff0c;也可以定义内部方法&#xff0c;它们提供了与对象相同的功能。 面向对象的四大特征&#xff1a;封装、继承、多态 通过pub标记为公有的结构体&#xff0c;在其他模块中可以访问使用这…

redis主从复制与哨兵模式

redis主从复制 Redis主从复制&#xff08;Redis replication&#xff09;是Redis提供的一种数据备份和故障转移机制。通过主从复制&#xff0c;可以将一个Redis服务器&#xff08;主节点&#xff09;的数据复制到一个或多个Redis服务器&#xff08;从节点&#xff09;。这样做…

算法设计与分析实验报告java实现(排序算法、三壶谜题、交替放置的碟子、带锁的门)

一、 实验目的 1&#xff0e;加深学生对算法设计方法的基本思想、基本步骤、基本方法的理解与掌握&#xff1b; 2&#xff0e;提高学生利用课堂所学知识解决实际问题的能力&#xff1b; 3&#xff0e;提高学生综合应用所学知识解决实际问题的能力。 二、实验任务 1、排序算法…

ctf_show笔记篇(web入门---jwt)

目录 jwt简介 web345&#xff1a; web346&#xff1a; web347&#xff1a; web348: web349&#xff1a; web350&#xff1a; jwt简介 JSON Web Token&#xff08;JWT&#xff09;通常由三部分组成 Header&#xff08;头部&#xff09;&#xff1a;包含了两部分信息&…

使用 Clickhouse 集成的表引擎同步数据方式详解

Clickhouse作为一个列式存储分析型数据库&#xff0c;提供了很多集成其他组件的表引擎数据同步方案。 官网介绍 一 Kafka 表引擎 使用Clickhouse集成的Kafka表引擎消费Kafka写入Clickhouse表中。 1.1 流程图 1.2 建表 根据上面的流程图需要建立三张表&#xff0c;分别Click…

Jenkins 安装部署

1、安装下载 官网地址&#xff1a;Jenkins 下载 war 包 1、前置环境 JDK 环境&#xff08;根据 Jenkins 版本不同&#xff0c;需要的 JDK 版本不同&#xff0c;目前需要 JDK11 的版本来支持&#xff09;Maven maven 官网下载压缩包 &#xff0c;并将其传输到服务器&#xf…

一、OpenCV(C#版本)环境搭建

一、Visual Studio 创建新项目 二、选择Windows窗体应用&#xff08;.NET Framework&#xff09; 直接搜索模板&#xff1a;Windows窗体应用(.NET Framework) 记得是C#哈&#xff0c;别整成VB(Visual Basic)了 PS&#xff1a;若搜索搜不到&#xff0c;直接点击安装多个工具和…

【Linux】线程概念及线程互斥

目录 线程概念 线程优点 线程缺点 线程异常 线程系统编程接口 线程创建及终止 线程等待 使用线程系统接口封装一个小型的C线程库并实现一个抢票逻辑 线程互斥 互斥量的接口 线程互斥实现原理 使用系统加锁接口封装LockGuard 实现自动化加锁 线程安全和可重入函数 …