数据预处理
在实际的机械学习系统的过程中,对数据的预处理部分往往会占据整个系统设计中工作量的一半以上。用于机械学习算法的数据需要具有极好的一致性和极高的数据质量,但是在数据采集的过程中,由于各种因素的影响及对属性相关性并不了解,因此采集的数据不能直接应用,因此采集的数据不能直接应用。直接收集的数据具有以下两个特点:
- 收集的数据是杂乱额,数据内容常出现不一致和不完整的问题,常存在错误数据或者异常数据。
- 收集的数据由于数据量大,数据的品质不统一,需要提取高品质数据,以便利用高品质数据得到高品质的结果。
对数据的预处理过程,大致可分为5步:数据选取、数据清理、数据集成、数据变换、数据规约。这些数据处理方法需要根据项目需求和原始数据特点,单独使用或者综合使用。
数据初步选取
数据初步选取是面向应用是进行数据处理的第一步,从服务器等设备得到大量的源数据时,由于并不是所有的数据都对机械学习有意义,并且往往会出现重复数据,此时需要对数据进行修改,基本原则如下。
- 选择能够赋予属性名和属性值明确含义的属性数据。
- 避免选取重复数据。
- 合理选择与学习内容关联性高的属性数据。
数据清理
数据清理是数据预处理中最为花费时间和精力,却极为乏味的一步,但是也是最重要的一步。这一步可以有效减小机械学习过程中出现自相矛盾的现象。数据清理主要处理缺失数据、噪声数据、识别和删除孤立点等。
- 缺失数据处理
目前最常用的方法是对缺失值进行填充,依靠现有的数据信息推测缺失值,尽量使填充的数值接近于遗漏的实际值,相应的方法如回归、贝叶斯等。另外,也可以利用全局常量、属性平均值填充缺失量,或者将源数据进行属性分类,然后用同一类中样本属性的平均值填充等,在数据量充足的情况下,可以忽略缺失值的样本数据。
- 噪声数据处理
噪声是指测量值由于错误或者偏差,导致其严重偏离期望值,形成了孤立点。目前,最广泛的是利用平滑技术处理,其具体包括分箱技术、回归方法、聚类技术。通过计算机检测出噪声点后,可将数据点作为垃圾数据删除,或者通过拟合平滑技术进行修改。
数据集成
数据集成就是将多个数据源中的数据合并在一起形成数据仓库/数据库的技术和过程。数据集成中需要解决数据中的3个主要问题。
- 多个数据集匹配。当一个数据库的属性与另一个数据库的属性匹配时,必须注意数据的结构,以便于二者匹配。
- 数据冗余。两个数据集有两个命名不同但实际数据相同的属性,那么其中一个属性就是冗余的。
- 数据冲突。由于表示、比例、编码等不同,现实世界中的同一实体,在不同数据源中的属性值可能不同,从而产生数据歧义。
数据变换
1.数据标准化
数据标准化(归一化)处理是数据控据的 项基础工作。不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响数据分析的结果,为了消除指标之间的最纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性。原始数据经过数据标准化处理后,各指标处干同一数量级,适合进行综合对比评价。以下是3种常用的归一化方法。
(1) min-max标准化( Min-Max Nomaliationo)。该方法也称为离差标准化,是对原始数据的线性变换,使结果值映射到[0.1]区间。转换函数如式(1.1):
式中.max为样本某一属性数据的最大值; min 为样本某一属性数据的最小值。 这种方
法有个缺陷,就是当有新数据加入时,可能导致max和min变化,需要重新定义。
- 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白化方法应用更多。
数据归约
数据归约通常用维归约、数值归约方法实现。维归约指通过减少属性的方式压缩数据量,通过移除不相关的属性,可以提高模型效率。常见的维归约方法有:通过分类树、随机森林判断不同属性特征的分类效果的影响,从而进行筛选;通过小波变换、主成分分析把原始数据变换或投影到较小的空间,从而实现降维。