当前位置: 首页 > news >正文

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

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

      • 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 nppath = 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


相关文章:

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

泰坦尼克号幸存者数据分析 1、泰坦尼克号数据集2、数据集加载与概览3、泰坦尼克号幸存者数据分析4、哪些人可能成为幸存者? 1、泰坦尼克号数据集 泰坦尼克号的沉没是世界上最严重的海难事故之一,造成了大量的人员伤亡。这是一艘号称当时世界上最大的邮轮…...

Memcached 教程之 PHP 连接 Memcached 服务(十)

PHP 连接 Memcached 服务 在前面章节中我们已经介绍了如何安装 Memcached 服务,接下来我们为大家介绍 PHP 如何使用 Memcached 服务。 PHP Memcache 扩展安装 PHP Memcache 扩展包下载地址:PECL :: Package :: memcache,你可以下载最新稳定…...

【zlm】音视频流与音频流合并的设计

目录 设想一 设想二 方案三 关键技术 测试语句 测试脚本 参考文档 设想一 //开始录制_option.mp4_save_path custom_path;_option.mp4_max_second max_second;vector<Track::Ptr> mytracks getTracks();auto src MediaSource::find( DEFAULT_VHOST, "1&quo…...

typescript的工作流

先coding code.ts代码&#xff0c;由tsc编译code.ts生成code.js格式 npm install —save-dev lite-server 是用来安装轻量级的服务器&#xff0c;只是用来开发的一个服务器&#xff0c;真正到生产环境中时可能会使用类似于Apache的server或者汤姆猫一类的服务器&#xff0c;安…...

MATLAB下载与安装详细教程:从官方获取到成功启动

引言 MATLAB&#xff08;MATrix LABoratory&#xff09;作为一款全球知名的高级数值计算与数据分析平台&#xff0c;以其强大的矩阵运算能力、丰富的内置函数库以及直观易用的图形用户界面&#xff0c;深受科研人员、工程师和学生群体的青睐。无论是进行复杂的数学建模、信号处…...

【随笔】Git 高级篇 -- 分离 HEAD(十一)

&#x1f48c; 所属专栏&#xff1a;【Git】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f496; 欢迎大…...

mac、windows 电脑安装使用多个版本的node

我们为啥要安装多个不同版本的node&#xff1f; 开发旧项目时&#xff0c;使用低版本Nodejs。开发新项目时&#xff0c;需使用高版本Node.js。可使用n同时安装多个版本Node.js&#xff0c;并切换到指定版本Node.js。 mac电脑安装 一、全局安装 npm install -g n 二、mac电脑…...

vue 浅解watch cli computed props ref vue slot axios nexttick devtools说明使用

Vue.js 是一个强大的前端框架&#xff0c;它提供了很多有用的功能和工具。你提到的这些特性&#xff08;watch、cli、computed、props、ref、slot、axios、nextTick、devtools&#xff09;在 Vue 中各自扮演着不同的角色。下面我会逐一解释这些特性如何在 Vue 中使用&#xff1…...

Unity自定义框架(1)-----------单例模式

前言&#xff1a; Unity作为一款强大的游戏开发引擎&#xff0c;其基础框架的设计对于项目的结构和性能有着重要的影响。其中&#xff0c;单例模式是一种常用的设计模式&#xff0c;用于确保一个类只有一个实例&#xff0c;并提供一个全局访问点。 什么是单例模式&#xff1f…...

04-自媒体文章-自动审核

自媒体文章-自动审核 1)自媒体文章自动审核流程 1 自媒体端发布文章后&#xff0c;开始审核文章 2 审核的主要是审核文章的内容&#xff08;文本内容和图片&#xff09; 3 借助第三方提供的接口审核文本 4 借助第三方提供的接口审核图片&#xff0c;由于图片存储到minIO中&…...

LeetCode-热题100:763. 划分字母区间

题目描述 给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段&#xff0c;同一字母最多出现在一个片段中。 注意&#xff0c;划分结果需要满足&#xff1a;将所有划分结果按顺序连接&#xff0c;得到的字符串仍然是 s 。 返回一个表示每个字符串片段的长度的列表。…...

IDEA2023创建SpringMVC项目

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; 开发环境篇 ✨特色专栏&#xff1a; M…...

ubuntu-server部署hive-part2-安装hadoop

参照 https://blog.csdn.net/qq_41946216/article/details/134345137 操作系统版本&#xff1a;ubuntu-server-22.04.3 虚拟机&#xff1a;virtualbox7.0 安装hadoop ​​​​​​下载上传 下载地址 https://archive.apache.org/dist/hadoop/common/hadoop-3.3.4/ 以root用…...

Python深度学习032:conda操作虚拟环境env的全部命令

文章目录 创建和管理环境环境列表和检查环境的保存与复制更新环境清理 CondaConda 是一个开源的包管理器和环境管理器,可以用于安装、运行和升级包和环境。 使用 Conda,你可以创建、导出、列出、删除和更新环境,这些环境可以包含不同版本的 Python 以及/或软件包。 下面列出…...

使用Java拓展本地开源大模型的网络搜索问答能力

背景 开源大模型通常不具备最新语料的问答能力。因此需要外部插件的拓展&#xff0c;目前主流的langChain框架已经集成了网络搜索的能力。但是作为一个倔强的Java程序员&#xff0c;还是想要用Java去实现。 注册SerpAPI Serpapi 提供了多种搜索引擎的搜索API接口。 访问 Ser…...

Mybatis——一对多关联映射

一对多关联映射 一对多关联映射有两种方式&#xff0c;都用到了collection元素 以购物网站中用户和订单之间的一对多关系为例 collection集合的嵌套结果映射 创建两个实体类和映射接口 package org.example.demo;import lombok.Data;import java.util.List;Data public cla…...

Pytorch实用教程:TensorDataset和DataLoader的介绍及用法示例

TensorDataset TensorDataset是PyTorch中torch.utils.data模块的一部分&#xff0c;它包装张量到一个数据集中&#xff0c;并允许对这些张量进行索引&#xff0c;以便能够以批量的方式加载它们。 当你有多个数据源&#xff08;如特征和标签&#xff09;时&#xff0c;TensorD…...

uni-app如何实现高性能

这篇文章主要讲解uni-app如何实现高性能的问题&#xff1f; 什么是uni-app&#xff1f; 简单说一下什么是uni-app&#xff0c;uni-app是继承自vue.js&#xff0c;对vue做了轻度定制&#xff0c;并且实现了完整的组件化开发&#xff0c;并且支持多端发布的一种架构&#xff0c…...

docker 应用部署

参考:docker 构建nginx服务 环境 Redhat 9 步骤&#xff1a; 1、docker部署MySQL 安装yum 工具包 [rootadmin ~]# yum -y install yum-utils.noarch 正在更新 Subscription Management 软件仓库。 无法读取客户身份本系统尚未在权利服务器中注册。可使用 subscription-…...

java.awt.FontFormatException: java.nio.BufferUnderflowException

Font awardFont Font.createFont(Font.TRUETYPE_FONT, awardFontFile).deriveFont(120f).deriveFont(Font.BOLD);使用如上语句创建字体时出现问题。java.awt.FontFormatException: java.nio.BufferUnderflowException异常表明在处理字体数据时出现了缓冲区下溢&#xff08;Buf…...

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周&#xff0c;有很多同学在写期末Java web作业时&#xff0c;运行tomcat出现乱码问题&#xff0c;经过多次解决与研究&#xff0c;我做了如下整理&#xff1a; 原因&#xff1a; IDEA本身编码与tomcat的编码与Windows编码不同导致&#xff0c;Windows 系统控制台…...

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

三体问题详解

从物理学角度&#xff0c;三体问题之所以不稳定&#xff0c;是因为三个天体在万有引力作用下相互作用&#xff0c;形成一个非线性耦合系统。我们可以从牛顿经典力学出发&#xff0c;列出具体的运动方程&#xff0c;并说明为何这个系统本质上是混沌的&#xff0c;无法得到一般解…...

k8s业务程序联调工具-KtConnect

概述 原理 工具作用是建立了一个从本地到集群的单向VPN&#xff0c;根据VPN原理&#xff0c;打通两个内网必然需要借助一个公共中继节点&#xff0c;ktconnect工具巧妙的利用k8s原生的portforward能力&#xff0c;简化了建立连接的过程&#xff0c;apiserver间接起到了中继节…...

C++八股 —— 单例模式

文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全&#xff08;Thread Safety&#xff09; 线程安全是指在多线程环境下&#xff0c;某个函数、类或代码片段能够被多个线程同时调用时&#xff0c;仍能保证数据的一致性和逻辑的正确性&#xf…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)

目录 一、&#x1f44b;&#x1f3fb;前言 二、&#x1f608;sinx波动的基本原理 三、&#x1f608;波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、&#x1f30a;波动优化…...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中&#xff0c;CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时&#xff0c;通常会导致应用响应缓慢&#xff0c;甚至服务不可用&#xff0c;严重影响用户体验和业务运行。因此&#xff0c;掌握一套科学有效的CPU飙高问题排查方法&…...

HashMap中的put方法执行流程(流程图)

1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中&#xff0c;其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下&#xff1a; 初始判断与哈希计算&#xff1a; 首先&#xff0c;putVal 方法会检查当前的 table&#xff08;也就…...