机械学习篇——数据预处理

数据预处理

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

  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白化方法应用更多。

数据归约

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

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
数据预处理是数据科学中非常重要的一个环节,数据预处理的目的是对原始数据进行清洗、转换和集成,以便于进一步的分析和建模。数据预处理可以极大地影响最终分析和建模的结果,因此在数据预处理过程中需要仔细处理。 数据预处理进阶包括以下几个方面: 1. 数据清洗:数据清洗是数据预处理的第一步,主要是对原始数据进行检查、修复和删除不良数据,例如缺失值、异常值、重复值等。数据清洗可以提高数据质量,减少建模时的误差。 2. 特征选择:特征选择是选择最相关的特征,以便于进行建模和分析。特征选择可以减少特征的数量,提高模型的准确性和泛化能力。 3. 特征提取:特征提取是将原始数据转换为更具有代表性的特征。例如,将文本转换为词袋模型或者TF-IDF模型。特征提取可以提高模型的准确性和泛化能力。 4. 数据集成:数据集成是将来自不同数据源的数据合并成一个数据集,以便于进行分析。数据集成可以减少数据冗余,提高数据质量。 5. 数据变换:数据变换是将数据转换为适合分析的形式。例如,将连续的数值数据离散化,或者进行归一化。数据变换可以提高模型的准确性和泛化能力。 总之,数据预处理是数据科学中非常重要的一个环节。通过数据清洗、特征选择、特征提取、数据集成和数据变换等方法,可以提高数据质量,减少建模时的误差,提高模型的准确性和泛化能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MATLAB实践家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值