首页 常见问题 数据预处理的四个步骤

数据预处理的四个步骤

Mar 05, 2021 am 10:36 AM
数据预处理

数据预处理的四个步骤分别是数据清洗、数据集成、数据变换和数据归约;而数据的预处理是指对所收集数据进行分类或分组前所做的审核、筛选、排序等必要的处理;数据预处理,一方面是为了提高数据的质量,另一方面也是为了适应所做数据分析的软件或者方法。

数据预处理的四个步骤

本文操作环境:windows7系统、Dell G3电脑。

数据的预处理是指对所收集数据进行分类或分组前所做的审核、筛选、排序等必要的处理。

数据预处理一方面是为了提高数据的质量,另一方面也是为了适应所做数据分析的软件或者方法。一般来说,数据预处理步骤有:数据清洗、数据集成、数据变换、数据归约,每个大步骤又有一些小的细分点。当然了,这四个大步骤在做数据预处理时未必都要执行。

一、数据清洗

数据清洗,顾名思义,“黑”的变成“白”的,“脏”的数据变成“干净”的,脏数据表现在形式上和内容上的脏。

形式上的脏,如:缺失值、带有特殊符号的;

内容上的脏,如:异常值。

1、缺失值

缺失值包括缺失值的识别和缺失值的处理。

在R里缺失值的识别使用函数is.na判别,函数complete.cases识别样本数据是否完整。

缺失值处理常用的方法有:删除、替换和插补。

  • 删除法 :删除法根据删除的不同角度又可以分为删除观测样本和变量,删除观测样本(行删除法),在R里na.omit函数可以删除所含缺失值的行。

    这就相当于减少样本量来换取信息的完整度,但当变量有较大缺失并且对研究目标影响不大时,可考虑删除变量R里使用语句mydata[,-p]来完成。mydata表示所删数据集的名字,p是该删除变量的列数,-表示删除。

  • 替换法 :替换法顾名思义对缺失值进行替换,根据变量的不同又有不同的替换规则,缺失值的所在变量是数值型用该变量下其他数的均值来替换缺失值;变量为非数值变量时则用该变量下其他观测值的中位数或众数替换。

  • 插补法 :插补法分为回归插补和多重插补。

    回归插补指的是将插补的变量当作因变量y,其他变量看错自变量,利用回归模型进行拟合,在R里使用lm回归函数对缺失值进行插补;

    多重插补是指从一个包含缺失值的数据集中生成一组完整的数据,多次进行,产生缺失值的一个随机样本,在R里mice包可以进行多重插补。

2、异常值

异常值跟缺失值一样包括异常值的识别和异常值的处理。

  • 异常值的识别通常用单变量散点图或箱形图来处理,在R里dotchart是绘制单变量散点图的函数,boxplot函数绘制箱现图;在图形中,把远离正常范围的点当作异常值。

  • 异常值的的处理有删除含有异常值的观测(直接删除,当样本少时直接删除会造成样本量不足,改变变量的分布)、当作缺失值(利用现有的信息,对其当缺失值填补)、平均值修正(用前后两个观测值的均值修正该异常值)、不处理。在进行异常值处理时要先复习异常值出现的可能原因,再判断异常值是否应该舍弃。

二、数据集成

所谓数据集成就是将多个数据源合并放到一个数据存储中,当然如果所分析的数据原本就在一个数据存储里就不需要数据的集成了(多合一)。

数据集成的实现是将两个数据框以关键字为依据,在R里用merge函数实现,语句为merge(dataframe1, dataframe2,by=”关键字“”),默认按升序排列。

在进行数据集成时可能会出现如下问题:

  1. 同名异义,数据源A中某属性名字和数据源B中某属性名字相同,但所表示的实体不一样,不能作为关键字;

  2. 异名同义,即两个数据源某个属性名字不一样但所代表的实体一样,可作为关键字;

  3. 数据集成往往造成数据冗余,可能是同一属性多次出现,也可能是属性名字不一致导致的重复,对于重复属性一个先做相关分析检测,如果有再将其删除。

三、数据变换

数据变换就是转化成适当的形式,来满足软件或分析理论的需要。

1、简单函数变换

简单函数变换用来将不具有正态分布的数据变成有正态分布的数据,常用的有平方、开方、取对数、差分等。如在时间序列里常对数据对数或差分运算,将非平稳序列转化成平稳序列。

2、规范化

规范化就是剔除掉变量量纲上的影响,比如:直接比较身高和体重的差异,单位的不同和取值范围的不同让这件事不能直接比较。

  • 最小-最大规范化:也叫离差标准化,对数据进行线性变换,将其范围变成[0,1]

  • 零-均值规范化:也叫标准差标准化,处理后的数据均值等于0,标准差为1

  • 小数定标规范化:移动属性值的小数位数,将属性值映射到[-1,1]

3、连续属性离散化

将连续属性变量转化成分类属性,就是连续属性离散化,特别是某些分类算法要求数据是分类属性,如:ID3算法。

常用的离散化方法有如下几种:

  1. 等宽法:将属性的值域分成具有相同宽度的区间,类似制作频率分布表;

  2. 等频法:将相同的记录放到每个区间;

  3. 一维聚类:两个步骤,首先将连续属性的值用聚类算法,然后将聚类得到的集合合并到一个连续性值并做同一标记。

四、数据归约

数据归约是指在对挖掘任务和数据本身内容理解的基础上、寻找依赖于发现目标的数据的有用特征,以缩减数据规模,从而在尽可能保持数据原貌的前提下,最大限度地精简数据量。

数据规归能够降低无效错误的数据对建模的影响、缩减时间、降低存储数据的空间。

1、属性归约

属性归约是寻找最小的属性子集并确定子集概率分布接近原来数据的概率分布。

  1. 合并属性:将一些旧的属性合并一个新的属性;

  2. 逐步向前选择:从一个空属性集开始,每次在原来属性集合选一个当前最优属性添加到当前子集中,一直到无法选择最优属性或满足一个约束值为止;

  3. 逐步先后选择:从一个空属性集开始,每次在原来属性集合选一个当前最差属性并剔除当前子集中,一直到无法选择最差属性或满足一个约束值为止;

  4. 决策树归纳:没有出现在这个决策树上的属性从初始集合中删除,获得一个较优的属性子集;

  5. 主成份分析:用较少的变量去解释原始数据中大部分变量(用相关性高的变量转化成彼此相互独立或不相关的变量)。

2、数值归约

通过减少数据量,包括有参数和无参数方法,有参数如线性回归和多元回归,无参数法如直方图、抽样等。

更多相关知识,请访问常见问题栏目!

以上是数据预处理的四个步骤的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1658
14
CakePHP 教程
1415
52
Laravel 教程
1309
25
PHP教程
1257
29
C# 教程
1231
24
如何使用 PHP 函数进行数据预处理? 如何使用 PHP 函数进行数据预处理? May 02, 2024 pm 03:03 PM

PHP数据预处理函数可用于进行类型转换、数据清理、日期和时间处理。具体来说,类型转换函数允许变量类型转换(例如int、float、string);数据清理函数可删除或替换无效数据(如is_null、trim);日期和时间处理函数可进行日期转换和格式化(如date、strtotime、date_format)。

如何利用Vue表单处理实现表单提交前的数据预处理 如何利用Vue表单处理实现表单提交前的数据预处理 Aug 10, 2023 am 09:21 AM

如何利用Vue表单处理实现表单提交前的数据预处理概述:在Web开发中,表单是平常最常见的元素之一。而在表单提交前,我们经常需要对用户输入的数据进行一些预处理,例如格式校验、数据转换等。Vue框架提供了方便易用的表单处理功能,本文将介绍如何利用Vue表单处理实现表单提交前的数据预处理。一、创建Vue实例和表单控件首先,我们需要创建一个Vue实例并定义一个包含表

用Python解开数据分析的密码 用Python解开数据分析的密码 Feb 19, 2024 pm 09:30 PM

数据预处理数据预处理是数据分析过程中至关重要的一步。它涉及清理和转换数据以使其适合分析。python的pandas库提供了丰富的功能来处理此任务。示例代码:importpandasaspd#从CSV文件读取数据df=pd.read_csv("data.csv")#处理缺失值df["age"].fillna(df["age"].mean(),inplace=True)#转换数据类型df["gender"]=df["gender"].astype("cateGory")机器学习Python的Scik

Go语言和MySQL数据库:如何进行数据预处理? Go语言和MySQL数据库:如何进行数据预处理? Jun 17, 2023 am 08:27 AM

在现代软件开发中,对于大多数应用程序来说,必须能够与各种关系型数据库进行交互,以便能够在应用程序和数据库之间共享数据。MySQL是一种广泛使用的开源关系型数据库管理系统,而Go语言则是一种现代性能极佳的编程语言,它提供了很多内置库来轻松实现与MySQL数据库的交互。本文将探讨如何使用Go语言编写预处理语句来提高MySQL数据库的性能。什么是预处理?预处理是使

使用PHP开发实现百度文心一言API接口的数据预处理和压缩传输 使用PHP开发实现百度文心一言API接口的数据预处理和压缩传输 Aug 25, 2023 pm 09:12 PM

使用PHP开发实现百度文心一言API接口的数据预处理和压缩传输随着互联网的发展,人们对于接口的需求也越来越多。而百度文心一言API接口则是一个非常受欢迎的接口,可以提供一些有趣的句子、名言警句等。为了提高接口的效率和性能,我们可以对接口数据进行一些预处理和压缩传输,从而加快数据传输速度并减少带宽的占用。首先,我们需要在百度开放平台上申请一个APIKey,这

在JavaScript中实现服务器端渲染和数据预处理的方式 在JavaScript中实现服务器端渲染和数据预处理的方式 Jun 15, 2023 pm 04:44 PM

在JavaScript中实现服务器端渲染和数据预处理的方式在现代Web应用程序中,构建高性能和可伸缩性的网站变得越来越重要。服务器端渲染和数据预处理是实现这种目标的两个关键技术,它们可以显著提高应用程序的性能和响应速度。本文将介绍如何使用JavaScript实现服务器端渲染和数据预处理的方式。服务器端渲染服务器端渲染是指在服务器端生成HTML代码并将其发送到

Python中的数据预处理技术是什么? Python中的数据预处理技术是什么? Jun 04, 2023 am 09:11 AM

Python作为一种常用的编程语言,可以处理和分析各种不同的数据。数据预处理是数据分析中非常重要和必要的一步,它包括数据清洗、特征提取、数据转换和数据标准化等步骤,预处理的目的是为了提高数据的质量和可分析性。Python中有许多数据预处理技术和工具可以使用,下面将介绍一些常用的技术和工具。数据清洗在数据清洗阶段,我们需要处理一些原始数据中的缺失值、重复值、异

如何使用Vue Router实现页面跳转前的数据预处理? 如何使用Vue Router实现页面跳转前的数据预处理? Jul 21, 2023 am 08:45 AM

如何使用VueRouter实现页面跳转前的数据预处理?引言:在使用Vue开发单页应用时,我们常常会使用VueRouter来管理页面之间的跳转。而有时候,我们需要在跳转之前对一些数据进行预处理,例如从服务器获取数据,或者验证用户权限等。本文将介绍如何使用VueRouter实现页面跳转前的数据预处理。一、安装和配置VueRouter首先,我们需要安装Vu