【机器学习实战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进行填充。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

护眼灯到底有用吗知乎?5大超强实力护眼台灯测评推荐!

护眼台灯无疑是每个学子必备的学习用具,那到底有没有用呢?其实真正好的护眼灯在一定程度上对保护学生的眼睛来说肯定是有用的。当然前提是要选购到优质的护眼台灯,保障各项性能都是合格的,使用起来才安全放心。 一、护眼台灯是如何…

Python web框架fastapi数据库操作ORM(一)

文章目录 Fastapi ORM操作1、创建模型2、创建数据库连接配置文件3、启动项目4、根据模型类创建数据库表1. 初始化配置,只需要使用一次2. 初始化数据库,一般情况下只用一次3. 更新模型并进行迁移4. 重新执行迁移,写入数据库5. 回到上一个版本6…

uniapp+vue基于Android的图书馆借阅系统qb4y3-nodejs-php-pyton

uni-app框架:使用Vue.js开发跨平台应用的前端框架,编写一套代码,可编译到Android、小程序等平台。 框架支持:springboot/django/php/Ssm/flask/express均支持 前端开发:vue 语言:pythonjavanode.jsphp均支持 运行软件:idea/eclip…

【Javascript编程实操01】判断最大数、奇偶数、是否成年

目录 前言 1、求两个数的最大数 代码: 实现效果: 2、判断一个整数是偶数还是奇数 代码: 实现效果: 3、判断一个人的年龄是否满18岁 代码: 实现效果: 总结 前言 从今天开始正式进入了Web前端第二…

GitLab--Merge Request 权限管理

场景 团队在日常开发工作中需要进行分支管理,通常使用feature分支进行开发,然后依次合并到dev分支、release分支,整个代码合并过程不仅仅是代码合并还需要对代码进行审核,如果在线下进行审核合并,这样操作无法保留痕迹…

反射详解-获取构造方法-动态代理

反射是Java语言中的一个关键特性,它允许程序在运行时访问类、接口、字段和方法的信息,并且可以动态地调用方法或改变字段值。 以下是关于Java反射的一些主要方面: 类加载器(Class Loader): Java反射开始于…

内网穿透 nas/树莓派+ipv4服务器 (ipv6)

nas 1.有个服务器 2.有个nas https://github.com/snail007/goproxy/blob/master/README_ZH.md https://github.com/snail007/proxy_admin_free/blob/master/README_ZH.md 2个官网一个是程序,一个是网站 手册 https://snail007.host900.com/goproxy/manual/zh/#/?i…

Tiktok矩阵系统搭建的逻辑和源代码!

很多和我一样从事外贸工具开发的朋友都清楚,TikTok矩阵系统不仅确保了平台的高效运行,还为用户提供了个性化的内容推荐,从而大大提升了用户黏性,因此很多人都乐意去开发类似的工具,下面我们就来说说Tiktok矩阵系统搭建…

Vue3 在SCSS中使用v-bind

template 先创建一个通用的页面结构 <template><div class"v-bubble-bg"></div> </template>js 在JS中先对需要用的数据进行定义&#xff1a; 可以是参数&#xff0c;也可以是data <script setup>const props defineProps({bgCol…

[万字长文] 从 Vue 3 的项目模板学习 tsconfig 配置

文章目录 一、tsconfig.json 的作用二、基本介绍三、Vue 3 的 tsconfig.json 的结构分析1. 总配置 tsconfig.json2. Web 侧 tsconfig.app.jsona. 继承基础配置b. 包含和排除的文件c. 编译器选项 3. 测试 tsconfig.vitest.jsona. 继承的基础配置b. 包含和排除的文件c. 编译器选项…

Swiper实现轮播效果

swiper官网&#xff1a;https://3.swiper.com.cn/ <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title&…

苹果的“汽车梦”宣告失败,转战AI?能hold住吗?

文 | BFT机器人 一觉睡醒&#xff0c;苹果就宣布了一件爆炸性的新闻&#xff0c;那就是坚持多年和受到很多行业大佬支持和期待的“泰坦”宣布结束了&#xff01;将原有负责汽车项目的大部分主力军转战到AI核心上&#xff0c;这消息一出&#xff0c;业内外纷纷对苹果的这个决定…

仓储自动化新解:托盘四向穿梭车驶入智能工厂 智能仓储与产线紧密结合

目前&#xff0c;由于对仓库存储量的要求越来越高&#xff0c;拣选、输送以及出入库频率等要求也越来越高&#xff0c;对此&#xff0c;在物流仓储领域&#xff0c;自动化与智能化控制技术得以快速发展&#xff0c;货架穿梭车在自动库领域的应用越来越广泛。现阶段&#xff0c;…

从 iOS 设备恢复数据的 20 个iOS 数据恢复工具

作为 iPhone、iPad 或 iPod 用户&#xff0c;您可能普遍担心自己可能会丢失存储在珍贵 iOS 设备中的所有宝贵数据。数据丢失的原因多种多样&#xff0c;这里列出了一些常见原因&#xff1a; 1. iOS 软件更新 2. 恢复出厂设置 3. 越狱 4. 误操作删除数据 5. iOS 设备崩溃 …

CMake、OpenCV 和单元测试

我写了很多关于 CMake 的文章&#xff0c;如果你感兴趣&#xff0c;可以点击以下链接阅读&#xff1a; CMake VS MakeCMake&#xff1a;在构建世界掀起风暴现代 CMake 使用技巧CMake 交叉编译CMake 生成器已开启 我们将继续对 CMake 的探索&#xff0c;这篇文章技术性高&…

如何解决 C/C++ 编译器优化导致的编译BUG(程序崩溃)支援VC++/CLANG/GCC

本文仅适用于&#xff0c;有愿意、爱捣鼓的童靴。 因编译器优化导致编译BUG&#xff0c;即DEBUG下面无故障稳定工作&#xff0c;但RELESE下程序会在特定函数位置上崩溃。 这要求 C/C 开发人员拥有最基本的素质&#xff0c;需要能够承受&#xff0c;逐行审视编译器输出的目标平…

获取当前数据 上下移动

点击按钮 上下移动 当前数据 代码 // 出国境管理 登记备案人员列表 <template><a-row><a-col span"24"><a-card :class"style[a-table-wrapper]"><!-- 出国境 登记备案人员列表 --><a-table:rowKey"records >…

【Java】查看class文件的jdk编译版本的两种方式

一、使用文本编辑工具EditPlus 使用EditPlus打开该class文件&#xff0c;字符集选择16进制&#xff08;Hex viewer&#xff09;。 仅看第一行数据&#xff0c;前面8个字节CA FE BA BE是固定的。 之后4个字节00 00 是次版本。 次版本后面的4个字节00 34 就是jdk版本。 jdk版本…

Java代码块

Java代码块 普通代码块 普通代码块在对象创建时执行&#xff0c;创建一个对象就会执行一次&#xff0c;可把构造函数中的冗余代码放到普通代码块中 public class Test {public void method() {// 普通代码块{int x 10;System.out.println(x);}public method(){}} }普通代码块…

使用mininet快速入门ONOS路由交换技术与原理-路由篇

上篇文章 《使用mininet快速入门ONOS路由交换技术与原理-交换篇》 使用mininet搭建了一个简单的网络拓扑&#xff0c;并实现了同一交换机下同网段多主机的通信&#xff0c;其中涉及到的通信知识主要以二层mac地址通信为主。 但在芸芸网络的世界中&#xff0c;主机间的通信除了…