数据预处理
数据预处理是在进行关键参数提取前的关键步骤,对于存在不同类型问题的数据集采用相应的数据预处理方法具有重要意义。在数据实际采中,难以避免存在失误,例如关键数据为空值、数据漏采集、数据类型不对应等问题,针对这些问题,通过数据预处理的方法将数据格式标准化、减少数据冗余,提高预测模型的稳定性。常见的数据预处理方法有:数据清洗、数据集成、数据规约和数据变换。
(1)数据清洗
对于实时工况采集到的原始数据,存在着关键值丢失、数据错误或者噪声数据,通过数据清洗方法进行补全、删除等操作,从而得到准确、完整的数据。具体方法如下:
(2)填补缺失值
数据缺失值会对无监督学习模型产生影响,常见的补填缺失值方法有:
①删除变量。
针对缺失值根据变量的分布特性和重要度来决定是否删除变量,如果该变量数据的覆盖率小,关键数据丢失率高,同时对于预测模型的相关性较低,此时可以删除该变量。
②人工填写缺失值。
这种方式明显具有耗时费力的缺点,只适用于小规模数据集。
③利用样本值填充缺失值。
可以采用回归分析、归纳树或者统计变量(均值、中位数、众数等)的方法来填充缺失数据。
噪声数据处理
当在样本数据中存在关键明显错误或者距离正常数据较远时。我们常采用数据光滑技术对其进行处理:
①分箱法。
分箱法采用箱中值、箱平均值和箱边界值,来对不同箱内的数据进行光滑,其中箱的高度表示存储的数据个数,箱的宽度表示数据的取值区间。
②回归法。
回归法使用拟合变量之间的函数,帮助其消除噪声数据,在进行拟合函数消除噪声数据的时候,原变量的正常数据应保留。
③聚类法。
聚类法将相似的样本集归为一个类簇,落在类簇之外的样本认为是离群数据。常采用样本之间的距离来衡量样本之间的相似程度的不同,如:欧式距离、曼哈顿距离 、切比雪夫距离等。
(3)可疑数据的处理
在进行实时工况数据采集过程中,由于人为或者其他因素的影响,导致记录数据时出现错误,例如,将时间类型的数据存储为字符串
类型,违反了数据库时间类型转化的规则;不同属性之间存在关联规则,对违反规则的数据,应对照原始数据进行更正。
数据集成
数据集成:由于在数据实际采集中,由于需要将多个数据源进行结合,并进行统一的存储管理。这些数据源是由多种中间文件、数据库或者 PLC 数据块组成的。在数据集成的过程中,常遇到实体数据识别问题、参数冗余问题和数据冲突问题。
(1)实体识别问题。
在数据库存储时,会把现实世界的实体抽象成不同字段。当集成多个数据库的数据源时,同一实体可能被不同数据库不同属性名表示,为
了避免在数据集成时产生此类错误。数据集成人员可以通过数据字典映射不同字段对应的实体信息,将字段名统一。
(2)冗余问题
冗余问题是指一个参数可以由另外一个参数通过某种规则进行导出,则这个参数可能是冗余的。常采用相关性分析方法来校验参数的冗余,有:卡方检验、协方差(Covariance)和相关系数等。
(3)数据冲突问题
不同数据源进行集成储存时,可能遇到重复上传的数据,应进行去重处理,保证数据的唯一性和一致性。
数据规约
在进行参数分析中,待处理的参数达到几百甚至上千,数据量高达上万。这就需要数据规约对其进行数据量的精简,规约后的数据有利于之后的数据挖掘工作,加快模型的收敛速度。规约方法可以分为:维度规约、样本规约
和特征值规约。
(1)维度规约。
维度规约从剔除无效参数的角度来精简数据。这个和数据集成中的冗余问题是有区别的。维度规约的着重点是与结果不相关的参数,冗余问题的着重点是重复的参数。除了常见的相关性分析方法外,还有通过决策树中Gini指数对变量的重要度进行排序和 L1 正则化参数对特征参数进行降维。
(2)样本规约。
样本规约就是选取可以表征总体样本数据特征样本子集。选取的样本子集应综合考虑计算成本、存储空间和数据特性相关的因素,一个好的样本子集有时甚至能训练出更高的精度。
(3)特征值规约。
特征值规约按照是否是监督学习分为:离散化和概念分层。数据离散化是监督式的方法,其采用类信息,将特征值进行分类,形成一段段离散化的区间。概念分层是非监督的离散化方法,当特征值难以进行分类时,其认为每一个数据都是可能的离散化的分类点,首先将数据进行排序,采用递归的方式,自下而上的将特征值合并,产生特征值的分层划分。
数据变换
原始数据的格式多样,难以直接输入模型进行训练,需要进行数据变换。数据变换的方法有:规范化处理、离散化处理和稀疏化处理。
(1)规范化处理。
由于数据集的不同参数之间数值差别过大,规范化处理的目的就是让不同的参数处于同一量纲。规范化处理的方法有:最大-最小规范化、Z-Score 标准化、Log 变换和小数定标规则化。
①最大-最小规范化
通过线性变换,在不改变数值之前的规律情况下,将数据映射到[0,1]区间内,变换公式为:
x
′
=
x
−
x
m
i
n
x
m
a
x
−
x
m
i
n
x'=\frac{x-x_{min}}{x_{max}-x_{min}}
x′=xmax−xminx−xmin
式中,x’ 为转化后的参数值,x为原始值, min_x 和 max_x 分别是原参数值的最小、
最大值。
②Z-Score 标准化
可以统一数据的量级,转化后的数据具有标准正态分布的数学规律。公式如下:
x
′
=
x
−
x
ˉ
σ
x'=\frac{x-\bar{x}}{\sigma}
x′=σx−xˉ
式中,x_bar 为该参数的均值,西伽马为该参数的标准差。
③Log 变换
主要针对的是时间序列数据或者是数据量级相差过大的数据,采用Log 函数变换。公式如下:
x
′
=
l
g
(
x
)
x'=lg(x)
x′=lg(x)
④小数定标规则化
基于最大值的量级数,对数据进行变换,将数据转化到[-1,1],公式如下:
x
′
=
x
1
0
n
x'=\frac{x}{10^n}
x′=10nx
式中,n代表最大绝对值的位数,在 Python中可以采用 numpy 库来计算该位数。
(2)离散化处理。
数据离散化是将连续数据分为一段段离散化区间的方法,其原理与特征值规约相似,常见方法有:等宽法、等频法、K-means 聚类法、自上而下的分裂法和自下而上的合并法。
(3)稀疏化处理。
数据稀疏化处理的目的是对原始数据进行压缩,采用更简洁的形式表达。例如,针对离散型参数,设备当前状态有正常运行、报警、故障,考虑将该参数处理成 0,1 表示的 is_正常运行、is_报警和 is_故障三个参数。
参考文献:实时工况驱动下装配混流车间订单交货期评估方法研究_马成龙