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

数据分析

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

读取数据

查看数据各个参数信息

查看有无空值

如何填充空值

一些特殊字段如何处理

读取数据

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']

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

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

相关文章

TCP三次握手详解

目录 什么是TCP TCP头格式组成 三次握手 第一次握手 第二次握手 第三次握手 三次握手的好处 为什么需要三次握手? 什么是TCP 传输控制协议(TCP)是Internet一个重要的传输层协议。TCP提供面向连接、可靠、有序、字节流传输服务。 面向连接: 应用…

百度糯米携手中山大学举办“开学流水宴”

热游圈消息: 百度糯米携手中山大学,于9月13日在“百团大战”游园会上举办了一场别开生面的“开学流水宴”,吸引了众多新生和百度糯米用户参与。这场长达20米的流水宴不仅为新生们带来了美味佳肴,更为他们提供了结交新朋友、增进同…

关于TC简单编程的AB爪爪的几点东西

最近在帮公司写一个SAP页面的自动录入数据的小工具。 端口是5000,SAP版本好像是7.2.很老的东西,老到页面只支持IE打开。其他浏览器打开就报IVEW不支持什么的一大堆错误。 没办法,拉出TC。但是更麻烦的又来了。TC自带的AB爪爪抓不到各种输入…

编写你的第一个java 程序

1.安装 jdk 网址: Java Downloads | Oracle 一般我们安装jdk 17 就行了 自己练习 自己学习 真正的开发中我们使用jdk 8 这个是最适合开发java 应用程序的 当然你也可以选择你的 系统 来安装这个java 在文件资源管理器打开JDK的安装目录的bin目录,会发…

pycharm远程连接server

1.工具–部署–配置 2.部署完成后,将现有的项目的解释器设置为ssh 解释器。实现在远端开发 解释器可以使用/usr/bin/python3

ROC和AUC

什么是ROC和AUC ROC曲线(Receiver Operating Characteristic curve)和AUC(Area Under the Curve)是用于评估二分类模型性能的重要工具。 ROC曲线以真正例率(True Positive Rate,也称为召回率或灵敏度&…

Scala的函数至简原则

对于scala语言来说,函数的至简原则是它的一大特色。下面让我们一起来看看分别有什么吧! 函数至简原则:能省则省! 初始函数 def test(name:String):String{return name }1、return可以省略,Scala会使用函数体的最后一…

【Ubuntu20.04+Noetic】UR5e+Gazebo+Moveit

环境准备 创建工作空间 mkdir -p ur5e_ws/src cd ur5e_ws/srcUR机械臂软件包 UR官方没更新最新的noetic的分支,因此安装melodic,并需要改动相关文件。 安装UR的模型配置包,包里面有UR模型文件,moveit配置等: cd ~/ur5e_ws/src git clone -b melodic-devel https://git…

程序员如何构建商业画布

分层结构 按照前面的描述,我们很容易将商业模式画布视为一张图表。但实际上,它更像是Photoshop软件中的PSD文件,具有分层特性。每一层都是针对特定的细分人群。 这主要是因为一个价值主张很难同时满足多个不同的客户群体。对某些人来说可能是…

centos学习-掌握核心命令之-yum

引言 在CentOS系统中,yum(Yellowdog Updater Modified)是一个强大的包管理工具,用于自动从指定的远程仓库下载并安装、更新、删除软件包。yum简化了依赖关系管理,使得Linux系统的软件包管理变得非常容易。下面是对Cen…

自建网站遇到的问题记录

1.nginx部署包含websocket的项目,报错:Handshake failed due to invalid Upgrade header: null 原因:nginx 反向代理服务器忽略了headers中的:Upgrade:websocket。 解决办法:在 Nginx ,location 中添加…

探索未来的区块链DApp应用,畅享数字世界的无限可能

随着区块链技术的飞速发展,分布式应用(DApp)正成为数字经济中的一股强劲力量。DApp以其去中心化、透明公正的特点,为用户带来了全新的数字体验,开创了数字经济的新潮流。作为一家专业的区块链DApp应用开发公司&#xf…

Qt: windows下关闭系统窗体

简介 之前做了个自动烧录工具&#xff0c;但是有些烧录时出现的一些烦人的弹窗需要解决&#xff0c; 刚好找到一个方法在这里记录一下。 代码 工程文件.pro加入 LIBS -luser32 #include <Windows.h> #include <vector>// 枚举所有顶级窗口 EnumWindows(EnumWind…

3月黄油奶酪行业数据分析:安佳和妙可蓝多领军市场

近些年来&#xff0c;随着新消费主义盛行&#xff0c;老少皆宜的黄油和奶酪逐渐成为都市年轻人的烘培“新宠”。 今年3月份&#xff0c;黄油奶酪表现的中规中矩&#xff0c;处在稳定发展阶段。根据鲸参谋数据显示&#xff0c;3月份&#xff0c;在线上综合电商平台&#xff08;…

凌恩病原微生物检测系统上线啦,助力环境病原微生物检测

病原微生物是指能够引起人类或动物疾病的微生物&#xff0c;包括病毒、细菌、真菌、衣原体和支原体等。病原微生物可以通过空气、体液等介质传播&#xff0c;危害人体健康&#xff0c;造成财产损失。因此&#xff0c;快速、准确地检测病原微生物对于疫情防控和保障人民生命健康…

MATLAB基础应用精讲-【数模应用】卡方分析(补充篇)

目录 前言 几个高频面试题目 卡方检验与方差分析、t检验有什么区别? 1)方差分析 2)T检验

各类数据引擎指定schema或者数据库

背景 以hive为例&#xff0c;如果某个hive引擎&#xff0c;有my_test、test_dd、test_xx、aqtest0228数据库某张表的数据&#xff0c;如果需要查询某个库的数据&#xff0c;需要带库名&#xff0c;否则会报错。 sql语句如下 SELECT * FROM aqtest0228.t_bz_zl_ss_zyxx_wrw…

leetcode--1--两数之和

给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案…

VSCode通过跳板机免密连接远程服务器的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

内联函数与宏定义

内联函数 以inline修饰的函数叫做内联函数&#xff0c;编译时C编译器会在调用内联函数的地方展开&#xff0c;没有函数调用建立栈帧的开销&#xff0c;内联函数提升程序运行的效率。减少函数栈帧的开辟和销毁&#xff0c;如当频繁调用一个函数的时候&#xff0c;此时消耗栈帧的…