数据预处理

在实际的机械学习系统的过程中,对数据的预处理部分往往会占据整个系统设计中工作量的一半以上。用于机械学习算法的数据需要具有极好的一致性和极高的数据质量,但是在数据采集的过程中,由于各种因素的影响及对属性相关性并不了解,因此采集的数据不能直接应用,因此采集的数据不能直接应用。直接收集的数据具有以下两个特点:

  1. 收集的数据是杂乱额,数据内容常出现不一致和不完整的问题,常存在错误数据或者异常数据。
  2. 收集的数据由于数据量大,数据的品质不统一,需要提取高品质数据,以便利用高品质数据得到高品质的结果。

对数据的预处理过程,大致可分为5步:数据选取、数据清理、数据集成、数据变换、数据规约。这些数据处理方法需要根据项目需求和原始数据特点,单独使用或者综合使用。

数据初步选取

数据初步选取是面向应用是进行数据处理的第一步,从服务器等设备得到大量的源数据时,由于并不是所有的数据都对机械学习有意义,并且往往会出现重复数据,此时需要对数据进行修改,基本原则如下。

  1. 选择能够赋予属性名和属性值明确含义的属性数据。
  2. 避免选取重复数据。
  3. 合理选择与学习内容关联性高的属性数据。

数据清理

数据清理是数据预处理中最为花费时间和精力,却极为乏味的一步,但是也是最重要的一步。这一步可以有效减小机械学习过程中出现自相矛盾的现象。数据清理主要处理缺失数据、噪声数据、识别和删除孤立点等。

  1. 缺失数据处理

目前最常用的方法是对缺失值进行填充,依靠现有的数据信息推测缺失值,尽量使填充的数值接近于遗漏的实际值,相应的方法如回归、贝叶斯等。另外,也可以利用全局常量、属性平均值填充缺失量,或者将源数据进行属性分类,然后用同一类中样本属性的平均值填充等,在数据量充足的情况下,可以忽略缺失值的样本数据。

  1. 噪声数据处理

噪声是指测量值由于错误或者偏差,导致其严重偏离期望值,形成了孤立点。目前,最广泛的是利用平滑技术处理,其具体包括分箱技术、回归方法、聚类技术。通过计算机检测出噪声点后,可将数据点作为垃圾数据删除,或者通过拟合平滑技术进行修改。

数据集成

数据集成就是将多个数据源中的数据合并在一起形成数据仓库/数据库的技术和过程。数据集成中需要解决数据中的3个主要问题。

  1. 多个数据集匹配。当一个数据库的属性与另一个数据库的属性匹配时,必须注意数据的结构,以便于二者匹配。
  2. 数据冗余。两个数据集有两个命名不同但实际数据相同的属性,那么其中一个属性就是冗余的。
  3. 数据冲突。由于表示、比例、编码等不同,现实世界中的同一实体,在不同数据源中的属性值可能不同,从而产生数据歧义。

 数据变换

1.数据标准化

数据标准化(归一化)处理是数据控据的 项基础工作。不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响数据分析的结果,为了消除指标之间的最纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性。原始数据经过数据标准化处理后,各指标处干同一数量级,适合进行综合对比评价。以下是3种常用的归一化方法。

(1) min-max标准化( Min-Max Nomaliationo)。该方法也称为离差标准化,是对原始数据的线性变换,使结果值映射到[0.1]区间。转换函数如式(1.1):

式中.max为样本某一属性数据的最大值; min 为样本某一属性数据的最小值。 这种方

法有个缺陷,就是当有新数据加入时,可能导致max和min变化,需要重新定义。

  1. Z-score标准化方法。该方法将原始数据的均值(mean)和标准差(standard deviation)进行数据标准化。经过处理的数据符合标准正态分布,即均值为0,标准差为1。Z-score标准化方法适用于样本属性的最大值和最小值未知的情况,或有超出取值范围的离群数据的情况。转换函数如式(1.2):

式中,为样本某属性数据的均值:为样本数据的标准差。

(3)小数定标准化。该方法是通过移动数据的小数点位置来进行标准化,小数点

移动多少位取决于属性取值的最大值。其计算公式如式(1.3):

式中,j为属性值中绝对值最大的数据的位数,例如,假设最大值为346,则j=4.

数据白化处理

进行完数据的标准化后,白化通常会被用来作为接下来的数据预处理步骤。实践证明,很多算法的性能提高都要依赖于数据的白化。白化的主要目的是降低输入数据的冗余性,一方面减少特征之间的相关性,另一方面是不同的维度特征方差相近或者相同。通常情况下,对数据进行白化处理与不对数据进行白化处理相比,算法的收敛性会有较大的提高。白化处理分为主成分(PCA)白化和零均值成分(ZCA)白化。PCA白化保证数据各维度的方差为1,而ZCA白化保证数据各维度的方差相同。PCA白化可以用于降维,也可以去相关性,而ZCA白化主要用于去相关性且尽量使白化后的数据接近原始数据输入数据。两类方法都具有各自适用的数据场景,但相对而言,在机械学习中PCA白化方法应用更多。

数据归约

数据归约通常用维归约、数值归约方法实现。维归约指通过减少属性的方式压缩数据量,通过移除不相关的属性,可以提高模型效率。常见的维归约方法有:通过分类树、随机森林判断不同属性特征的分类效果的影响,从而进行筛选;通过小波变换、主成分分析把原始数据变换或投影到较小的空间,从而实现降维。

机械学习篇——数据预处理相关推荐

  1. 【Python】4000字归纳总结 Pandas+Sklearn 带你做数据预处理

    就在前天的一篇原创文章中, 7000字 23张图,Pandas一键生成炫酷的动态交互式图表 有粉丝问道,是不是写一篇关于数据预处理的文章,小编立马就答应了他的请求,那么今天我们就来讲讲数据预处理过程当 ...

  2. python数据科学-数据预处理

    总第88篇 数据预处理是我们在做机器学习之前必经的一个过程,在机器学习中常见的数据预处理包括缺失值处理,缩放数据以及对数据进行标准化处理这三个过程. 01|缺失值处理: 缺失值处理是我们在做数据分析/ ...

  3. 【理论】数据预处理流程

    文章目录 1.找数据集 2.理解数据 3.数据处理 1.找数据集 已经有数据集的跳过这一步. 找到合适的数据集.如何找数据集请查看一些其他教程. 2.理解数据 这一步主要是对自己找到的数据集要有一个总 ...

  4. 深度学习——数据预处理篇

    深度学习--数据预处理篇 文章目录 深度学习--数据预处理篇 一.前言 二.常用的数据预处理方法 零均值化(中心化) 数据归一化(normalization) 主成分分析(PCA.Principal ...

  5. 目标检测之Faster-RCNN的pytorch代码详解(数据预处理篇)

    首先贴上代码原作者的github:https://github.com/chenyuntc/simple-faster-rcnn-pytorch(非代码作者,博文只解释代码) 今天看完了simple- ...

  6. 手把手教你EEG脑电数据预处理-操作篇

    目录 导入数据 对数据进行初步认识 电极定位 移除无用电极 重参考 重采样 滤波 分段和基线校正 插值坏导 ICA 剔除ICA成分 剔除坏段 目视检查法 保存数据 本分享为脑机学习者Rose整理发表于 ...

  7. 第五篇:数据预处理(二) - 异常值处理

    第五篇:数据预处理(二) - 异常值处理 参考文章: (1)第五篇:数据预处理(二) - 异常值处理 (2)https://www.cnblogs.com/muchen/p/6883101.html ...

  8. (第一篇)pytorch数据预处理三剑客之——Dataset,DataLoader,Transform

    前言:在深度学习中,数据的预处理是第一步,pytorch提供了非常规范的处理接口,本文将针对处理过程中的一些问题来进行说明,本文所针对的主要数据是图像数据集. 本文的案例来源于车道线语义分割,采用的数 ...

  9. 手把手教你EEG脑电数据预处理-原理篇

    目录 0. EEG data 1. 定位通道数据 2. 删除无用数据 3.滤波 4.分段 5.基线校正 6. 重参考 7. 降低采样率 8. 插值坏导 9. 独立主成分分析 10. 剔除坏段 本分享为 ...

最新文章

  1. html 表格过滤功能,简单的带排序和过滤功能的jQuery表格插件
  2. POJ 2417 Discrete Logging 离散对数
  3. 浅谈SD-WAN未来的发展方向
  4. mybatis的缓存机制是怎么样的?
  5. 移动管理进步显著 企业仍然面临风险
  6. Matlab绘制圆饼统计图pie的用法详解
  7. 帮你正确理解“财富自由”
  8. pyinstaller打包程序带图片终极教程
  9. 爸妈上班却顶着凛冽的寒风骑着自行车
  10. 爬点今日头条街拍美女。。。
  11. java程序员月薪一万很难?(要到什么程度)
  12. python开发要学哪些内容_Python开发工程师需要学习哪些内容?
  13. wgs84坐标格式转换度分秒_ArcGIS坐标单位转换(米和度分秒之间是如何转换的?)...
  14. SSD1306-7针脚OLED的使用心得
  15. 微信开通检测无需等待准确高的软件
  16. Go的Negroni库
  17. 元宇宙的雏形?揭秘Meta绝密的现实实验室
  18. 多平台epub阅读器推荐
  19. PE格式详细讲解2 - 系统篇02
  20. scipy.ndimage.distance_transform_edt 和 cv2.distanceTransform用法

热门文章

  1. 树分治(挑战p360)
  2. 无刷电机FOC控制------转速计算、载波频率相关
  3. IPv6和IPv4的区别
  4. python 单词拆音节_新手求大神carry!关于单词音节问题!求救!
  5. 【转】旅游推荐系统的演进
  6. TROY,加密资产新范式下的基础设施
  7. 1. HTML学习笔记-2021年11月2日
  8. 安全模式下的自动启动
  9. 手动搭建高可用的Redis5.0分片集群,从理论到实践,超详细
  10. python中日期格式和时间戳格式的转换