百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

工作中人们常提到的数据预处理,说的到底是什么?

bigegpt 2024-08-16 14:17 2 浏览

在做数据分析时,我想许多数据分析师会像《R语言实战第二版》的作者卡巴科弗那样发出感叹:“数据分析师在数据预处理上花费了60%的时间……”

是的,我们所知道的建模,评估模型等数据分析工作所花费的时间远远没有数据预处理的多。这件事虽然麻烦多事但却“功在千秋”,如果在做数据分析时前期的数据预处理做的很好,那后面的步骤会说话的话,相信我,它们一定会感谢你的。这就跟减肥一样,过程艰难,但人家创造101的杨超越不也下定决心唱出一句:“燃烧我的卡路里,你是最棒的”嘛。

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

一、数据清洗

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

  • 形式上的脏,如:缺失值、带有特殊符号的;
  • 内容上的脏,如:异常值。

1. 缺失值

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

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

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

  1. 删除法 :删除法根据删除的不同角度又可以分为删除观测样本和变量,删除观测样本(行删除法),在R里na.omit函数可以删除所含缺失值的行。这就相当于减少样本量来换取信息的完整度,但当变量有较大缺失并且对研究目标影响不大时,可考虑删除变量R里使用语句mydata[,-p]来完成。mydata表示所删数据集的名字,p是该删除变量的列数,-表示删除。
  2. 替换法 :替换法顾名思义对缺失值进行替换,根据变量的不同又有不同的替换规则,缺失值的所在变量是数值型用该变量下其他数的均值来替换缺失值;变量为非数值变量时则用该变量下其他观测值的中位数或众数替换。
  3. 插补法 :插补法分为回归插补和多重插补。回归插补指的是将插补的变量当作因变量y,其他变量看错自变量,利用回归模型进行拟合,在R里使用lm回归函数对缺失值进行插补;多重插补是指从一个包含缺失值的数据集中生成一组完整的数据,多次进行,产生缺失值的一个随机样本,在R里mice包可以进行多重插补。

2. 异常值

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

  • 异常值的识别通常用单变量散点图或箱形图来处理,在R里dotchart是绘制单变量散点图的函数,boxplot函数绘制箱现图;在图形中,把远离正常范围的点当作异常值。
  • 异常值的的处理有删除含有异常值的观测(直接删除,当样本少时直接删除会造成样本量不足,改变变量的分布)、当作缺失值(利用现有的信息,对其当缺失值填补)、平均值修正(用前后两个观测值的均值修正该异常值)、不处理。在进行异常值处理时要先复习异常值出现的可能原因,再判断异常值是否应该舍弃。

二、数据集成

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

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

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

  1. 同名异义,数据源A中某属性名字和数据源B中某属性名字相同,但所表示的实体不一样,不能作为关键字;
  2. 异名同义,即两个数据源某个属性名字不一样但所代表的实体一样,可作为关键字;
  3. 数据集成往往造成数据冗余,可能是同一属性多次出现,也可能是属性名字不一致导致的重复,对于重复属性一个先做相关分析检测,如果有再将其删除。

三、数据变换

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

1. 简单函数变换

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

2. 规范化

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

  1. 最小-最大规范化:也叫离差标准化,对数据进行线性变换,将其范围变成[0,1]
  2. 零-均值规范化:也叫标准差标准化,处理后的数据均值等于0,标准差为1
  3. 小数定标规范化:移动属性值的小数位数,将属性值映射到[-1,1]

3. 连续属性离散化

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

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

  1. 等宽法:将属性的值域分成具有相同宽度的区间,类似制作频率分布表;
  2. 等频法:将相同的记录放到每个区间;
  3. 一维聚类:两个步骤,首先将连续属性的值用聚类算法,然后将聚类得到的集合合并到一个连续性值并做同一标记。

四、数据规约

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

1. 属性规约

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

  1. 合并属性:将一些旧的属性合并一个新的属性;
  2. 逐步向前选择:从一个空属性集开始,每次在原来属性集合选一个当前最优属性添加到当前子集中,一直到无法选择最优属性或满足一个约束值为止;
  3. 逐步先后选择:从一个空属性集开始,每次在原来属性集合选一个当前最差属性并剔除当前子集中,一直到无法选择最差属性或满足一个约束值为止;
  4. 决策树归纳:没有出现在这个决策树上的属性从初始集合中删除,获得一个较优的属性子集;
  5. 主成份分析:用较少的变量去解释原始数据中大部分变量(用相关性高的变量转化成彼此相互独立或不相关的变量)。

2. 数值规约

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

本文由 @CDA数据分析师 原创发布于人人都是产品经理。未经许可,禁止转载

题图由作者提供

相关推荐

了解Linux目录,那你就了解了一半的Linux系统

大到公司或者社群再小到个人要利用Linux来开发产品的人实在是多如牛毛,每个人都用自己的标准来配置文件或者设置目录,那么未来的Linux则就是一团乱麻,也对管理造成许多麻烦。后来,就有所谓的FHS(F...

Linux命令,这些操作要注意!(linux命令?)

刚玩Linux的人总觉得自己在演黑客电影,直到手滑输错命令把公司服务器删库,这才发现命令行根本不是随便乱用的,而是“生死簿”。今天直接上干货,告诉你哪些命令用好了封神!喜欢的一键三连,谢谢观众老爷!!...

Linux 命令速查手册:这 30 个高频指令,拯救 90% 的运维小白!

在Linux系统的世界里,命令行是强大的武器。对于运维小白而言,掌握一些高频使用的Linux命令,能极大提升工作效率,轻松应对各种系统管理任务。今天,就为大家奉上精心整理的30个Linu...

linux必学的60个命令(linux必学的20个命令)

以下是Linux必学的20个基础命令:1.cd:切换目录2.ls:列出文件和目录3.mkdir:创建目录4.rm:删除文件或目录5.cp:复制文件或目录6.mv:移动/重命名文件或目录7....

提高工作效率的--Linux常用命令,能够决解95%以上的问题

点击上方关注,第一时间接受干货转发,点赞,收藏,不如一次关注评论区第一条注意查看回复:Linux命令获取linux常用命令大全pdf+Linux命令行大全pdf为什么要学习Linux命令?1、因为Li...

15 个实用 Linux 命令(linux命令用法及举例)

Linux命令行是系统管理员、开发者和技术爱好者的强大工具。掌握实用命令不仅能提高效率,还能解锁Linux系统的无限潜力,本文将深入介绍15个实用Linux命令。ls-列出目录内容l...

Linux 常用命令集合(linux常用命令全集)

系统信息arch显示机器的处理器架构(1)uname-m显示机器的处理器架构(2)uname-r显示正在使用的内核版本dmidecode-q显示硬件系统部件-(SMBIOS/DM...

Linux的常用命令就是记不住,怎么办?

1.帮助命令1.1help命令#语法格式:命令--help#作用:查看某个命令的帮助信息#示例:#ls--help查看ls命令的帮助信息#netst...

Linux常用文件操作命令(linux常用文件操作命令有哪些)

ls命令在Linux维护工作中,经常使用ls这个命令,这是最基本的命令,来写几条常用的ls命令。先来查看一下使用的ls版本#ls--versionls(GNUcoreutils)8.4...

Linux 常用命令(linux常用命令)

日志排查类操作命令查看日志cat/var/log/messages、tail-fxxx.log搜索关键词grep"error"xxx.log多条件过滤`grep-E&#...

简单粗暴收藏版:Linux常用命令大汇总

号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部下午好,我的网工朋友在Linux系统中,命令行界面(CLI)是管理员和开发人员最常用的工具之一。通过命令行,用户可...

「Linux」linux常用基本命令(linux常用基本命令和用法)

Linux中许多常用命令是必须掌握的,这里将我学linux入门时学的一些常用的基本命令分享给大家一下,希望可以帮助你们。总结送免费学习资料(包含视频、技术学习路线图谱、文档等)1、显示日期的指令:d...

Linux的常用命令就是记不住,怎么办?于是推出了这套教程

1.帮助命令1.1help命令#语法格式:命令--help#作用:查看某个命令的帮助信息#示例:#ls--help查看ls命令的帮助信息#netst...

Linux的30个常用命令汇总,运维大神必掌握技能!

以下是Linux系统中最常用的30个命令,精简版覆盖日常操作核心需求,适合快速掌握:一、文件/目录操作1.`ls`-列出目录内容`ls-l`(详细信息)|`ls-a`(显示隐藏文件)...

Linux/Unix 系统中非常常用的命令

Linux/Unix系统中非常常用的命令,它们是进行文件操作、文本处理、权限管理等任务的基础。下面是对这些命令的简要说明:**文件操作类:*****`ls`(list):**列出目录内容,显...