机器学习中常见的数据分析,处理方式(以泰坦尼克号为例)

数据分析

  • 读取数据
  • 查看数据各个参数信息
  • 查看有无空值
  • 如何填充空值
  • 一些特殊字段如何处理
  • 读取数据
    • 查看数据中的参数信息
    • 实操
      • 具体问题具体分析
      • 年龄问题
    • 重新划分数据集
    • 如何删除含有空白值的行
    • 根据条件删除一些行
    • 查看特征和标签的相关性

读取数据

查看数据各个参数信息

查看有无空值

如何填充空值

一些特殊字段如何处理

读取数据

train=pd.read_csv('train.csv')
test=pd.read_csv('test.csv')
datas = pd.concat([train, test], ignore_index = True)
# 获取数据集

查看数据中的参数信息

我们可以使用head函数比如使用train.head()就可以查看到训练集中的数据,默认前五行
train.head()

在这里插入图片描述
我们可以使用shape函数比如使用train.shape就可以查看到训练集中行列数量

train.shape
#(891, 12)891行,12列
我们可以使用info函数比如使用train.info()就可以查看到数据中,每一行的类型和空行
train.info()

在这里插入图片描述
由以上数据可以看出Age,Fare,Cabin,Embarked,几列中数据有空值,应进行相应的填充

  • 填充情况当填充目标缺失很多时,建议直接删除
  • 当填充对象不多的时候,如果目标时数字型,如年龄,身高,价格,可以用中位数,或者众数,平均值。如果对象很重要建议使用随机森林构建模型预测填充。
  • 如果填充值是字符型缺失了一部分,不多也不少,建议将缺失的一部分单独设置为一类。

实操

通过info获知了那些列是空的,因此我们要把空列中的那些行查出,方便后续操作。

# Embarked 填充港口参数
# 查看港口那一列空值行
datas[datas['Embarked'].isnull()]

在这里插入图片描述

具体问题具体分析

根据人员信息看出,是两名女性,船票是一等票,建议填充为存活率高的港口分类。

#填充数据集中Embarked列的空白行为C
datas['Embarked'] = datas['Embarked'].fillna('C')

年龄问题

首先寻找特征,使用目标对象的年龄,性别,船票,训练一个模型,然后有那个模型

from sklearn.ensemble import RandomForestRegressor
ages = datas[['Age', 'Pclass','Sex']]
ages=pd.get_dummies(ages)
known_ages = ages[ages.Age.notnull()].values
unknown_ages = ages[ages.Age.isnull()].values
y = known_ages[:, 0]
X = known_ages[:, 1:]
rfr = RandomForestRegressor(random_state=60, n_estimators=100, n_jobs=-1)
rfr.fit(X, y)
pre_ages = rfr.predict(unknown_ages[:, 1::])
datas.loc[ (datas.Age.isnull()), 'Age' ] = pre_ages

重新划分数据集

从中取出关键列,或者认为构建的关键列
axis默认为0代表行,axis=1则使用列

#合并两个集合
datas=pd.concat([train, test])
#从集合中取出关键的列,有些是人为构建的
datas=datas[['Survived','Pclass','Sex','Age','Fare','Embarked','Title','Fam_type','Board','Ticketlabels']]
#将类别数据转换为向量
datas=pd.get_dummies(datas)
#train是有存活数据的数据集
train=datas[datas['Survived'].notnull()]
#test是没有没有存活信息的数据集,并且删除掉Survived那一列
test=datas[datas['Survived'].isnull()].drop('Survived',axis=1)
# X的值不包含第0列,从第一列开始到后面的所有列
X = train.values[:,1:]
# y仅有一列,就是Survived 第0列,用作模型的训练
y = train.values[:,0]
#fit(X,y)
#训练的数据是X,验证的结果集是y

如何删除含有空白值的行

如果数据集非常大,而这些缺失项很少,建议直接删除,该行

datas.dropna(axis=0, how='any')

根据条件删除一些行

从train数据集中删除票价大于的行

train = train.drop(index= train[train.Fare>= 700].index, axis=0)

查看特征和标签的相关性

train.corr()['Survived']

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

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

相关文章

【Linux】实现一个进度条

我们之前也学了gcc/vim/make和makefile,那么我们就用它们实现一个进度条。 在实现这个进度条之前,我们要先简单了解一下缓冲区和回车和换行的区别 缓冲区其实就是一块内存空间,我们先看这样一段代码 它的现象是先立马打印,三秒后程…

Java Instrumentation插桩技术

Instrumentation基础 openrasp中用到了Instrumentation技术,它的最大作用,就是类的动态改变和操作。 使用Instrumentation实际上也可以可以开发一个代理来监视jvm的上运行的程序,可以动态的替换类的定义,就可以达到虚拟机级别的…

QA测试开发工程师面试题满分问答20: 软件的安全性应从哪几个方面去测试?

软件的安全性测试应从多个方面进行,并确保覆盖以下关键方面: 当回答问题时,可以根据自己的经验和知识,从上述要点中选择适合的方面进行详细说明。强调测试的综合性、全面性和持续性,并强调测试的重要性以及如何与开发团…

亚信安全深度参与撰写《金融行业云原生安全体系研究报告》引领云原生安全 !

近日,北京金融科技产业联盟正式发布《金融行业云原生安全体系研究报告》(以下简称《报告》)。报告由中国银联等单位牵头,亚信安全受邀作为联合牵头单位全程参与《报告》的讨论和撰写工作。亚信安全依托突出的云原生安全实践经验以…

windows安装nssm并将jar打包为服务

一、nssm 下载地址 二、安装nssm服务 将下载的压缩包复制到安装目录进行解压,解压后有两个版本 win32 和 win64,根据系统选择。打开系统 powershell 命令窗口,进入安装目录指定版本目录,就可以使用nssm服务了。 # 安装服务&…

揭开ChatGPT面纱(2):OpenAI主类源码概览

文章目录 〇、使用OpenAI的两个步骤一、初始化方法__init__()1.源码2.参数解析 二、提供的接口1.源码2.接口说明主要接口说明 OpenAI版本1.6.1 〇、使用OpenAI的两个步骤 在上一篇博客中,我实现并运行了一个OpenAI的demo,我们可以发现,想要使…

自定义mybatis插件实现读写分离

欢迎来到我的博客,代码的世界里,每一行都是一个故事 自定义mybatis插件实现读写分离 前言场景分析前置配置讲解数据源切换实现代码实现(插件)说明 注意实现效果 有时候我更想看到的是bug,比如做这个插件的时候 前言 在数据库的世界里&#x…

力扣HOT100 - 230. 二叉搜索树中第K小的元素

解题思路&#xff1a; class Solution {List<Integer> list new ArrayList<>();public int kthSmallest(TreeNode root, int k) {dfs(root);return list.get(k - 1);}public void dfs(TreeNode root) {if (root null) return;dfs(root.left);list.add(root.val)…

一个联合均值与方差模型的R包——dglm

目录 一、引言二、包的安装与载入三、模拟例子3.1 数据生成3.2 数据查看3.3 模型估计参数 一、引言 在 R 语言中&#xff0c;dglm 包是用于拟合双参数广义线性模型&#xff08;Double Generalized Linear Models&#xff0c;简称 DGLMs&#xff09;的一个工具。这类模型允许同…

使用STM32F103驱动读取MAX30102时的调试问题记录

1、数据FIFO寄存器&#xff0c;也就是地址为0x07的FIFO DATA寄存器&#xff0c;必须一次性将采样数据全部读出&#xff0c;也就是IIC起始信号发出后&#xff0c;必须连续读取FIFO中所有数据&#xff0c;如果一个字节一个字节读的话&#xff0c;实测FIFO的读写指针不会变化&…

YOLOv8改进项目汇总-超全改进-ultralyticsPro介绍:订阅了《芒果YOLOv8原创改进专栏》的读者免费赠送,包括很多稀有改进

&#x1f525;&#x1f525;&#x1f525;专注于YOLOv8改进&#xff0c;NEW - YOLOv8 &#x1f680; in PyTorch >, Support to improve Backbone, Neck, Head, Loss, IoU, LA, NMS and other modules&#x1f680; Makes YOLOv8 improvements easy again 芒果出品 YOLOv8…

HarmonyOS开发案例:【图片编辑】

介绍 本篇Codelab是基于ArkTS的声明式开发范式的样例&#xff0c;主要介绍了图片编辑实现过程。样例主要包含以下功能&#xff1a; 图片的解码。使用PixelMap进行图片编辑&#xff0c;如裁剪、旋转、亮度、透明度、饱和度等。图片的编码。 相关概念 [图片解码]&#xff1a;读…

NVIDIA Jetson jtop查看资源信息

sudo -H pip install -U jetson-stats 安装好之后可能需要reboot 执行jtop&#xff1a; 时间久了可能会退出&#xff0c;可参考如下再次启动。 nvidiategra-ubuntu:~$ jtop The jtop.service is not active. Please run: sudo systemctl restart jtop.service nvidiategra-ub…

3个比较不错的Linux云音乐应用程序整理

在现代音乐流媒体时代&#xff0c;基于云的音乐应用程序因其便利性和可访问性而变得非常流行。Linux 用户尤其寻求可靠且功能丰富的音乐播放器来无缝地享受他们喜爱的音乐。 在这里&#xff0c;我们探讨了三个最好的基于云的音乐应用程序&#xff0c;每个应用程序都提供专为 L…

Java技术学习|消息队列|初级RabbitMQ

学习材料声明 黑马RabbitMQ快速入门教程&#xff0c;快速掌握rabbitmq、springAMQP消息中间件 是非常初级的学习&#xff0c;听说后续的高级课程会涉及到微服务之类的&#xff0c;所以等学完微服务再回来学。还有redis的高级部分也涉及了微服务&#xff0c;所以也都暂时停止学…

OpenAI内部最受欢迎的10个GPTs推荐!建议收藏!

前面文章介绍了如何创建自己的GPTs&#xff0c;但是在应用商店里还有很多各种GPTs可以供我们使用&#xff0c;满足我们的各种应用场景。这就像手机的应用商店一样&#xff0c;我们除了可以自己编写应用程序之外&#xff0c;还可以使用使用应用商店里海量应用。有关创建自己的自…

YOLOv8 训练自己的数据集(20240423)

环境搭建请参考&#xff1a;Win10 搭建 YOLOv8 运行环境&#xff08;20240423&#xff09;-CSDN博客 环境测试请参考&#xff1a;本地运行测试 YOLOv8&#xff08;20240423&#xff09;-CSDN博客 一、使用 YOLOv8 的 coco128 数据集熟悉一下如何训练和预测 1.1、在项目根目录…

工厂提高OEE面临哪些挑战?

在工业生产中&#xff0c;提高设备的综合效率&#xff08;OEE&#xff09;是企业追求的目标之一。然而&#xff0c;实现高水平的OEE并非易事&#xff0c;工厂在这一过程中可能面临诸多挑战。本文将探讨工厂提高OEE所面临的挑战&#xff0c;并介绍PreMaint提供的解决方案。 提高…

【软件基础】反编译工具dnSpy反编译程序步骤

文章目录 一、dnSpy介绍二、使用版本三、使用步骤 一、dnSpy介绍 dnSpy是一款开源的.NET程序集反编译工具&#xff0c;它允许用户查看和编辑.NET程序集的源代码。dnSpy支持反编译.NET程序集、查看IL代码、编辑IL代码、调试.NET程序集等功能。用户可以使用dnSpy来分析和理解.NE…

【C语言__指针01__复习篇11】

目录 前言 一、什么是指针 二、计算机中常见的单位 三、CPU是怎样找到一块内存空间的 四、如何得到变量的地址 五、指针变量 六、解引用指针变量的作用 七、指针变量的大小 八、指针变量类型的意义 8.1 指针的解引用 8.2 指针-整数 九、void*指针 十、const修饰变…