知识发现过程中的数据预处理技术研究

2022-03-27 11:02毛田野李华郑健张骁骏
智能物联技术 2022年5期
关键词:预处理噪声变量

毛田野,李华,郑健,张骁骏

(91388 部队,广东 湛江 524022)

0 引言

“数据就是未来新时代的石油”。随着互联网经济的快速发展和大数据时代的到来,数据作为一种生产要素在社会发展中的重要性日益凸显,对数据的挖掘应用与知识发现已经逐渐渗透到了工业、军事、教育等各个行业领域。但与此同时,我们所面对的数据体系越来越庞大,数据存储规模已经达到了PB(Petabyte)、甚至EB(Exabyte)的级别,数据类型和组织形式也越来越多样化[1,2]。海量数据的处理对我们来说本身就是一个不小的挑战,而且原始数据中可能还包含着许多问题数据,例如数据属性值出现了缺失或错误、数据信息存在重复冗余以及数据结构不一致等[3],对我们从中进行知识发现造成了诸多困难。因此,数据预处理技术的重要性日益凸显出来:一方面,对数据进行预处理能够排除问题数据,提高源数据的规范性,节省后续处理海量数据的时间;另一方面,数据预处理能够优化改良问题数据,提升源数据的质量。如图1 所示,目前数据预处理的工作内容主要包括数据清洗、数据集成、数据归约以及数据变换等处理过程。在知识发现过程中,数据预处理扮演着承上启下的重要角色[4,5]。

图1 知识发现的基本过程示意图Figure1 Schematic diagram of knowledge discovery

1 数据清洗

数据清洗是指检测数据中存在的问题数据,通过填写缺失的数值、识别和删除离群点以及光滑噪声数据等方法对数据进行处理,形成合理的数据集合[5]。根据所处理的问题数据类型,数据清洗可以分为以下几种。

1.1 清洗缺失数据

由于系统存在缺陷或者出现运行错误等问题,导致所产生数据集的某些属性值出现丢失,这种情况称为数据缺失。例如某武器装备信息表Weapon中某些记录的“型号”属性W.marque 的值被记为空(NULL)。关键信息的缺失,会导致数据集的价值大大降低,影响后续的信息匹配和计算,因此对缺失数据进行清洗有很大的必要性。常见的清洗方法主要分为删除法和填充法两大类。

1.1.1 删除法

删除法即是直接对存在属性缺失的数据进行删除。该方法操作过程简单易行,经常作为缺省的方法用于缺失数据比较少的情况下。但当缺失数据占数据集的比例比较大时,采用直接删除的方法可能会导致所得到的数据分析结果发生偏离,进而影响结论的准确性。此外,当缺失的数据为有价值的关键信息时,删除法显然会对后续的数据挖掘工作造成不利影响。

1.1.2 填充法

在实际操作中,人们更多地会利用最接近缺失值的数据来填充缺失数据,这种方法称为填充法或插补法。利用填充法对数据进行清洗主要可以通过以下几种途径来实现。

(1)聚合值填充:当数据对象可直接进行加减运算时,则取算数平均值来填充缺失值,其他数据对象的众数、中位数等均可用来赋予该缺失值。使用聚合值进行填充的方法简单快速,但有可能会产生有偏估计,对缺失数据和其他数据之间原本的相关性产生不利影响。

(2)模型预测插补:通过机器学习模型对缺失值进行预测和插补,例如假设缺失值所在变量与样本中其他变量之间存在线性关系,然后通过建立回归模型对缺失值进行预测和填补。该方法利用了尽可能多的现有数据,得到的结果更具有说服力,但往往容易忽略随机误差。其他常用的模型还有决策树、贝叶斯、随机森林等。

(3)极大似然估计:通过引入隐变量创建概率模型来对未知参数进行极大似然估计,也可称为忽略缺失值的数学期望。该方法适用范围也比较广泛,估计量具有一致性和有效性,但解方程时有可能得不到解或者不是有限解[6]。

1.2 清洗重复数据

在同一数据库中可能会出现相同对象或属性拥有不同的名称,或者多个属性表示同一特征的情况,这种现象称为数据重复或数据冗余,主要包括属性重复和属性值重复两种情况。在数据库的实际应用中,大多数系统都存在数据重复现象。

比较算法是处理数值型数据重复的常用方法。首先通过专门的公式计算出记录不同属性的相似度,例如当需要判断某关系表中A 属性和B 属性两者之间是否相互冗余时,可以通过皮尔逊相关系数即公式(1)来进行相关性计算[7]:

式中,rA,B为A 与B 属性相似度;N 为A 或B属性的属性值个数;ai和bi分别为A、B 属性的每个属性值分别为A、B 属性的平均值;σA和σB分别为A、B 属性的标准差为A、B 两属性叉积的和。

得到不同属性相似度之后,再考虑每个属性的不同权重值,加权平均后得到记录的相似度。若相似度超过了某一阈值,则认为两条记录是存在冗余的,可对其中的一条记录进行删除操作,否则则认为两条记录指向不同的实体。此外,近邻排序法也常用于相似度计算[8],即对记录按关键字进行排序后,以固定步长(窗口)来检测其中的记录是否相似,可以在一定程度上减少记录的比较次数。需要注意的是,比较算法对计算机的运行速度和储存空间要求比较高,配置有限的个人计算机往往采用在线删除和离线删除相结合的手段[9]。对于分类型数据的冗余检测,可以利用公式(2)假设检验中的卡方检验来实现[10],通过能否拒绝原假设来对属性是否冗余进行判断。

式中,χ2为卡方值,其值越大表明变量越有可能相关;Ob 代表某个类别的观测值,Ex 代表计算出来的期望值(Ex=行总数×列总数∕总数)。

1.3 清洗噪声数据

由于系统工作状况等原因,实际采集的数据、整理所得到的数据集往往会包含部分不在合理数据域内的数据,这些“离群”的数据被称为噪声数据。本质上来讲,噪声数据是一种随机误差。常见的处理噪声数据的方法可以分为噪声平滑和噪声过滤两大类。

1.3.1 噪声平滑

平滑噪声数据可以通过以下几种方法来实现。

(1)分箱法:把需要进行预处理的数据分到若干个箱中,然后通过考察周围临近的数值来对有序数列进行平滑,分箱实质上是一种数据离散化。一般来讲,箱的宽度越大,光滑的效果越好,也可以指定箱子的宽度,即箱值的范围是一个常量。箱平均值、中位数以及最近的边界值等均可作为噪声数据的替代对象[11]。

(2)回归法:由大多数稳定的数据样本拟合得到回归函数,根据回归系数和预测变量反解出自变量的近似值,然后对原始数据进行近似值替换。该方法需要建立在稳定数据的基础之上,而且只有符合线性趋势的数据样本才能进行回归分析。对于比较复杂的多因素模型可利用多线性回归法进行平滑,将数据拟合到多维曲面上,去噪声效果比较好[12]。

(3)均值法:利用异常值临近的若干数据均值来替换离群点的一种去噪方法。该方法操作简单、计算速度快,但局限于具有序列特征的样本,尤其是当数据集具有正弦时序特征时,均值法的去噪效果比较显著。

1.3.2 噪声过滤

利用聚类的方法找到并删除数据集中的离群点,这种方法称为噪声过滤,又叫作离群点分析。在该方法中,聚类生成的数据对象集合被称为簇,同一簇中的数据对象具有比较高的相似度,落在簇之外的点则被直观地称为离群点。本质上来讲,利用聚类进行噪声过滤是一种形式的数据规约,该方法需要预先知道数据样本的分布特征,并建立在标准的统计学基础上,对数据和检验类型的充分性要求也比较高,否则难以保证能发现所有的离群点。

2 数据集成

所谓数据集成,通俗来讲是指将来自多个数据源的异构数据合并在一起,并存放在一个一致的数据存储中。数据样本的来源和涉及领域越广泛,数据集成的难度也会越大,该过程需要解决数据的选择、数据的一致性以及兼容性等问题[13]。而数据的一致性和兼容性主要面临多数据源中属性的语义差异、结构差异和冗余重复等难题。

2.1 属性语义问题

例如在对来自两个数据源中的武器装备信息统计表进行集成时,发现两个数据样本中都有名为“Date”的属性,但实际上一个记录的是出厂时间,另一个记录的是列装时间。上述情况在数据集成中是经常发生的,通常需要操作人员在数据集成之前对数据样本进行调研,确认各个属性的实际意义。

2.2 属性结构问题

属性结构差异几乎是数据集成中必须要解决的问题。以武器装备信息表Weapon 中的“造价”属性W.price 为例,表1 总结了数据集成中几种常见的属性结构差异问题。针对这类问题,往往需要在数据集成过程中对数据属性进行结构上的明确,通过再定义来对数据进行约束,避免属性结构问题对数据集成造成阻力。

表1 常见的属性结构差异Table1 Common differences of property structure

2.3 冗余重复问题

仍以武器装备信息表中的造价属性为例,两个数据样本记录的都是某型武器装备的造价情况,但一个属性名为“Price”,另一个属性名为“Value”,若对两个表进行数据集成,则同时保留的两个属性是相互冗余的。对于判断数值型属性是否相互冗余,可以通过公式(1)来实现,标称型属性则可通过公式(2)来实现,具体方法在此不再赘述。此外,对数据重复还可以通过表的主键进行判定,没有主键的表则需要在数据集成前进行调研和定义主键,或者对表进行拆分和整合。

3 数据变换

数据变换是指采用线性或者非线性的数学变换方法对数据进行规格化处理,将多维数据压缩成较少维的数据,以达到消除其在时间、空间、属性及精度等特征表现方面差异的目的。简单来讲,数据变换就是根据需要将数据从一个大的区间压缩到一个小的区间内。例如将数据集{-5,2,18,100}转换为数据集{-0.5,0.2,1.8,10}即是一个简单的数据变换过程。又如在武器装备信息表Weapon中,装备“造价”属性W.price 要比装备的“使用寿命”属性W.age 的值大得多,如果不进行数据变换而直接开展基于类似神经网络的数据挖掘工作的话,W.price 属性的作用将会在数据对象的距离计算中被远远放大,进而对数据挖掘带来不利影响。表2 总结了几种常用的数据变换方法[14]。

表2 常用的数据变换方法Table2 Common methods of data transformation

4 数据归约

在尽可能保证数据原有的完整性和有效性基础上,通过使用降低数据规模、减少数据存储空间、将数据以合乎要求的方式表示出来等策略对数据进行预处理操作叫作数据归约[15]。对数据集进行归约处理将有助于改善后续挖掘分析效果。数据规约过程所涉及的方法主要有以下几种。

4.1 维度归约

维度归约是使用数据编码或数据变换方案,以得到原始数据的简化或压缩表示,其核心是减少随机变量或属性的个数。维度归约常用的技术手段主要有小波变换、主成分分析、属性子集选择以及单变量重要性等。

4.1.1 小波变换

小波变换是一种由傅里叶变换发展而来的线性信号处理技术。在方法上,小波变换将傅里叶变换的基由无限长的三角函数基换成了有限长会衰减的小波基,能实现在获取频率的同时定位时间[16]。当用于数据变量X 的时候,可以将其变成数值上不同的小波系数向量X’,向量具有相同的长度。在数据归约中,每个元组可以看作为一个n 维数据向量X=(x1,x2,…,xn),用来描述n 个数据库属性在元组上的n 个测量值,对数据进行小波变换后截断数据,保留最强的小波系数,从而保留近似的压缩数据,达到数据归约的目的。

在实际的数据预处理操作中,小波变换适合用于处理高维度数据,如数据立方体等,可以将变换用于第一个维,然后第二个,如此依次进行。对于稀疏或者倾斜数据,以及具有有序属性的数据,小波变换往往也能给出较好的处理效果。除数据归约以外,小波变换在图像压缩处理、计算机嗅觉等领域也有广泛的应用[17,18]。

4.1.2 主成分分析

相对于小波变换法,主成分分析(Principal Component Analysis,PCA)更适合用于处理离散或稀疏数据。该方法通常是搜索k 个最能代表数据的n 维正交向量(k≤n),将原始数据投影到一个更小的空间中,实现维度归约[19]。其基本处理过程如图2 所示。

图2 主成分分析处理过程Figure2 Process of principal component analysis

4.1.3 属性子集选择

属性子集选择是通过检测相关程度较弱或重复的属性,对其删除来达到数据归约目的的一种方法。该方法的关键之处在于找到最小属性集,使得该属性集的数据概率分布与包含所有属性的原分布尽可能地接近,简单来讲即是用最小属性集“描述”原数据样本。压缩搜索空间的启发式算法为该方法常用算法,其策略为期望通过做局部最优选择来获得全局最优解,实践证明该方法的确行之有效[20,21]。常用的基本启发式方法包括:逐步向前选择、逐步向后删除、逐步向前选择与向后删除的结合、决策树归纳等。

4.1.4 单变量重要性

单变量重要性是从统计学和信息的角度分析单变量与目标变量的相关性,对预测能力较低的变量进行删除。常用的方法主要有:利用皮尔逊相关系数或卡方检验分析目标变量与单变量之间的相关性、利用线性回归对变量的表决系数进行重要性排序、利用决策树提取变量的重要度并进行排序等[22]。

4.2 数值归约

数值归约是指选择替代的、较小的数据形式来替换原数据,达到减小数据量的目的。数值归约技术主要可以分为参数化模型和非参数化模型两大类[23]。

4.2.1 参数化模型

参数化数据归约可以利用回归和对数线性模型来实现。对于数值型数据,采用回归模型建模方法,使之拟合到一条直线上。例如可以用以下公式将随机变量Y 表示成另一个随机变量X 的线性函数:Y=aX+b,其中X 称为自变量,Y 称为因变量,假定Y 的方差为常量,a 和b 分别为直线的Y 轴截取和斜率,可用最小二乘法求得。当分析多个分类变量间的关系时,可以采用对数线性模型。常见的逻辑回归就是对数线性模型的一种。

4.2.2 非参数化模型

常见的非参数化数据归约主要包括以下几种:

(1)直方图。利用直方图将属性的数据分布划分为若干不相交的子集或桶,桶表示给定属性的一个连续空间。该方法适用于处理近似稀疏和稠密数据、高倾斜和均匀数据。

(2)聚类。将数据元组划分为群或簇,一个簇中的对象相互相似,不同簇中的对象相互相异,在数据归约中,用数据的簇来替代原始数据。

(3)抽样。因为抽样基于用小数据量的样本来表示大数据集的思想,所以刚好适用于数据归约。常见的抽样方法有样本无放回随机抽样、样本有放回随机抽样、聚类抽样、分层抽样等。

(4)数据立方体聚集。将细粒度的属性聚集到粗粒度的属性,最细的粒度是最小的立方体,每个较高层抽象成更大的立方体,进一步减小数据的规模。

5 结语

综上所述,数据预处理工作包含了许多处理步骤,每一个步骤都有多种不同的实现方法,也有不少方法能够应用在不同的预处理阶段中。例如,回归法既可以在数据清洗阶段用于平滑噪声,又可以在数据归约阶段实现数值归约;相关性分析可以用于数据清洗、数据集成以及数据规约等。不同预处理方法之间既相互独立又相互关联,实施起来也没有严格的先后顺序,在实际的应用过程中,需要针对具体研究的问题以及面向数据的类型选用合适的预处理方法。在当今大数据时代背景下,数据的重要性日益彰显,同时我们所面对的数据体系规模也越来越庞大,数据预处理技术发展至今仍是一个活跃的研究领域。作为对海量数据挖掘分析和知识发现过程的核心环节,它也将会发挥越来越重要的作用。

猜你喜欢
预处理噪声变量
抓住不变量解题
噪声可退化且依赖于状态和分布的平均场博弈
也谈分离变量
控制噪声有妙法
基于预处理MUSIC算法的分布式阵列DOA估计
浅谈PLC在预处理生产线自动化改造中的应用
络合萃取法预处理H酸废水
基于自适应预处理的改进CPF-GMRES算法
一种基于白噪声响应的随机载荷谱识别方法
分离变量法:常见的通性通法