【机器学习实战1】泰坦尼克号:灾难中的机器学习(一)数据预处理

  • 🌸博主主页:@釉色清风
  • 🌸文章专栏:机器学习实战
  • 🌸今日语录:不要一直责怪过去的自己,她曾经站在雾里也很迷茫。

🌼实战项目简介

本次项目是kaggle上的一个入门比赛 :Titanic——Machine Learning from Disaster(泰坦尼克号——灾难中的机器学习),比赛选择了泰坦尼克号作为背景,并提供了样本数据以及测试数据,要求我们使用机器学习创建一个模型,预测哪些乘客在泰坦尼克号沉船中幸存下来。

🌼数据文件说明

🌻泰坦尼克号项目页面:Titanic——Machine Learning from Disaster

🌻可下载的Data页面:


可下载包括三个文件:

  • train.csv:训练数据
  • test.csv:测试数据
  • gender_submission.csv :提交结果案例

🌻数据变量说明

下载好文件,可知,每个乘客有12个属性。

  • Passengerld :乘客唯一识别ID
  • Survived:是否存活,0为否,1为是
  • Pclass :客舱等级,分为1、2、3等级,与英国的阶级分层有关
  • Name:姓名
  • Sex:性别
  • Age:年龄
  • SibSp:泰坦尼克号上的兄弟姐妹/配偶数量(与该乘客一起旅行的)
  • Parch:泰坦尼克号上的父母/孩子数量(与该乘客一起旅行的)
  • Ticket:船票号
  • Fare:船票价格
  • Cabin:客舱编号
  • Embarked:上船的港口编号(S=Southampton,英国南安普顿[启航点];C=Cherbourg,法国瑟堡市[途径点];Q=Quenstown,爱尔兰昆市[途径点])

🌼数据预处理

数据的质量直接决定模型预测的结果。所以,在进行训练模型之前,我们必须要进行数据清洗。
接下来我们使用Jupyter Notebook来进行接下来的数据描述和预处理。

🌻读入数据

首先,我们导入pandas库,它是python中进行数据分析和处理的一个库。然后我们读入我们的训练数据集。

🌾导入数据

🌾打印数据的前几行


默认是打印前五行,如下:

🌻做简单的统计分析


统计特性如下:

统计有

  • count: 这一列的数量(只要不是缺失值就被统计)
  • mean:平均值
  • std : 方差
  • min:最小值
  • 25%:下四分位数
  • 50%:中位数
  • 75%:上四分位数
  • max: 最大值

通过大致的浏览,我们可以看到,Age列含有缺失值。

🌻对[Age]列缺失值进行填充

一般对于缺失值的填充用到均值、中位数等。在这里,我们采用均值对Age列的缺失值进行填充。在填充缺失值这里我们用到了fillna函数。

🌾fillna函数

  • fillna是一个用于填充缺失值的函数,它是pandas库中的一个方法。
  • fillna函数的基本语法如下:
  • DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None)

🌾对[Age]列的缺失值采用均值填充法填充


填充完之后,我们再次describe。

如下图:

🌻将字符型转化为数值型数据


我们知道,计算机是可以处理数字的,但是无法处理字符。为了方便统计,我们将性别[Sex]和上船港口编号[Embarked]这两列列进行处理。

🌾对[Age]列进行替换


我们在这里用到DataFrame的loc属性:

  • 在Python中,loc是一个用于数据框(DataFrame)的属性,它用于选择满足特定条件的行。loc可以通过标签或布尔数组来选择行。
  • 常见的用法有:
    1. 使用标签选择行:
      df.loc[label]
      2.使用布尔数组选择行:
      df.loc[bool_array]
      3.使用标签和列选择行和列:
      df.loc[start_label:end_label, start_column:end_column]

这里我们则采用3进行替换:

🌾对[Embarked]列进行替换


替换:

然后我们进行统计新描述,发现中的数量889,存在从缺失值。

这时,我们对三个登船地点进行统计计数。发现0是最多的,即在S处登船的人最多。

所以对于缺失值,我们将用0进行填充。

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

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

相关文章

锚索测力计数据处理与分析:MCU自动测量单元的应用

锚索测力计作为一种重要的工程监测工具,在桥梁、大坝、隧道等结构物的健康监测中发挥着日益重要的作用。如何高效、准确地处理和分析,锚索测力计所获取的数据成为了工程师们面临的重要问题。近年来,随着微控制器(MCU)技术的快速发展&#xff…

Python绘制实时空气质量地图

我们将使用 Google Colab 中的 Python 创建包含实时空气质量数据的交互式地图。 🌟简介 如果有人想查看地图上各个传感器的空气质量分布情况,以检查特定位置的空气质量数据,该怎么办?我接下来将解决这个问题。我们重点关注基于名为 PurpleAir 的密集空气质量网络来识别我们…

spring: HandlerInterceptor

文章目录 一、什么是HandlerInterceptor二、应用示例 一、什么是HandlerInterceptor HandlerInterceptor 是 Spring 框架中的一个接口,用于拦截处理程序执行。在 Spring MVC 中,你可以使用 HandlerInterceptor 来在处理程序执行前、执行后或渲染视图之前…

51-n皇后(回溯算法)

题目 按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上,并且使皇后彼此之间不能相互攻击。 给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。 每一…

前端开发项目必备神器之node工具整理

前言: 在我们开发项目中,node是我们必备的工具,在为了适应各种不同的开发需求的同时,node也有很多好用的插件提供给我们,这里整理个人的使用分享给大家! 一、node相关 1、node官方网站,可以安装…

模拟算法题练习(二)(DNA序列修正、无尽的石头)

(一、DNA序列修正) 问题描述 在生物学中,DNA序列的相似性常被用来研究物种间的亲缘关系。现在我们有两条 DNA序列,每条序列由 A、C、G、T 四种字符组成,长度相同。但是现在我们记录的 DNA序列存在错误,为了…

ubuntu基础操作(1)-个人笔记

搜狗输入法Linux官网-首页搜狗输入法for linux—支持全拼、简拼、模糊音、云输入、皮肤、中英混输https://pinyin.sogou.com/linux 1.关闭sudo密码: 终端(ctrl alt t)输入 sudo visudo 打开visudo 找到 %sudo ALL(ALL:ALL) ALL 这一行…

羊大师分享,羊奶奶有哪些对健康有益的喝法?

羊大师分享,羊奶奶有哪些对健康有益的喝法? 羊奶奶有多种对健康有益的喝法,以下是一些建议: 直接饮用:将羊奶直接煮沸后饮用,可以保留羊奶中的营养成分,为身体提供全面的滋养。羊奶的丰富蛋白质…

代码随想录算法训练营第二十八天补|93.复原IP地址 ● 78.子集 ● 90.子集II

组合问题:集合内元素的组合,不同集合内元素的组合 分割问题:本质还是组合问题,注意一下如何分割字符串 回溯模板伪代码 void backtracking(参数) {if (终止条件) {存放结果;return;}for (选择:本层集合中元素&#xf…

Softmax

Softmax函数是一种在机器学习和深度学习中广泛使用的激活函数,特别是在处理多分类问题时。它将一个含任意实数的向量转换成一个概率分布,其中每个元素的值代表了属于对应类别的概率。Softmax函数的输出是所有可能类别的概率分布,这些概率的总…

【六袆 - MySQL】MySQL 5.5及更高版本中,InnoDB是新表的默认存储引擎;

InnoDB 这是一个MySQL组件,结合了高性能和事务处理能力,以确保可靠性、健壮性和并发访问。它体现了ACID设计哲学。它作为一个存储引擎存在,处理使用ENGINEINNODB子句创建的或修改的表。请参阅第14章“InnoDB存储引擎”以获取有关架构细节和管…

【解决】虚幻导入FBX模型不是一个整体

问题: 现在有一个汽车的fbx模型,导入虚幻引擎,导入后变成了很多汽车零件模型。 解决: 把“合并网格体”勾选上,解决问题。

移动端app如何设计测试用例?

🍅 视频学习:文末有免费的配套视频可观看 🍅 关注公众号【互联网杂货铺】,回复 1 ,免费获取软件测试全套资料,资料在手,涨薪更快 1、用户界面测试 布局和元素 验证所 有UI元素(如…

C语言拼接字符串操作

代码解法不唯一,请在评论区留下你的实现方式和想法,我会将好的解法更新到文章中!! 要拼接 “字符串1” 和 “字符串2” ,可以使用字符串连接操作。在C语言中,您可以使用strcat函数来将两个字符串连接起来。…

Unity 佳能SDK 及数据获取

1. 填写信息跟官方申请SDK,大概1-2个工作日会邮件回复你 佳能(中国)- 佳定制(佳能影像产品),SDK,EDSDK,CCAPI,软件开发包下载 2. 将SDK这两个文件放到 Unity Plugins文件夹 3. 把CameraControl 下面只要是绿色的 .cs 文件都复制到Unity 中

ElasticSearch搜索引擎使用指南

一、ES数据基础类型 1、数据类型 字符串 主要包括: text和keyword两种类型,keyword代表精确值不会参与分词,text类型的字符串会参与分词处理 数值 包括: long, integer, short, byte, double, float 布尔值 boolean 时间 date 数组 数组类型不…

基于ssm学生公寓管理系统的设计与开发论文

学生公寓管理系统的设计与实现 摘要 如今,科学技术的力量越来越强大,通过结合较为成熟的计算机技术,促进了学校、医疗、商城等许多行业领域的发展。为了顺应时代的变化,各行业结合互联网、人工智能等技术,纷纷开展了…

P1160 队列安排题解

题目 一个学校里老师要将班上N个同学排成一列,同学被编号为1∼N,他采取如下的方法: 先将1号同学安排进队列,这时队列中只有他一个人; 2∼N号同学依次入列,编号为i的同学入列方式为:老师指定编…

下载huggingface数据集到本地并读取.arrow文件遇到的问题

文章目录 1. 524MB中文维基百科语料(需要下载的数据集)2. 下载 hugging face 网站上的数据集3. 读取 .arrow 文件报错代码4. 纠正后代码 1. 524MB中文维基百科语料(需要下载的数据集) 2. 下载 hugging face 网站上的数据集 要将H…

MATLAB环境下一种新颖的类脉冲信号的高分辨率时频分析方法

一般情况下,机械振动信号或地震信号是非平稳的。而传统傅立叶变换只能应用于平稳信号分析,故不适用于非平稳信号。所以,我们需要采用时频分析方法。时频分析方法能达到同时在时间域和频率域对信号进行分析的目的,得到信号在不同时…