胡 萍,崔建涛
(1. 铜仁学院大数据学院,贵州 铜仁 554300;2. 郑州轻工业大学软件学院,河南 郑州 450001)
信息技术与传感技术的进步使各行业的数据高速增长,这些数据中包含大量有价值的信息,通过数据挖掘等手段能够发现并利用这些信息。但由于数据量庞大,其中会掺杂一些异常数据,这些异常数据中既有缺失数据,也包括离群点、噪声数据等。噪声数据对于有价值信息而言,不仅会降低数据流的整体质量,还会影响数据挖掘效果,导致对信息出现错误判断。
含噪声数据检测就是在众多数据中识别出不同于其它数据的过程。在大数据背景下,该技术在金融、军事、医疗等领域都有广泛应用。但随着数据维度和复杂度的提高,噪声数据检测也面临严峻挑战。现有的检测技术通常对数据质量和噪声类型有着较高要求,并不是对所有噪声数据都具有很好的检测效果。再加上数据的高度复杂特征,噪声数据检测已经成为一个难点,相关技术人员也对此展开大量研究。
例如,文献[1]利用改进支持向量数据描述方法检测出噪声数据。通过马氏距离修正高斯窗函数,减少检测过程中的干扰因素,采用高斯窗函数计算数据的分布密度,根据隶属度函数对改进支持向量数据描述方法做密度补偿,提高检测精度。文献[2]提出基于局部向量点积密度的噪声检测方法。利用向量点积密度策略对数据点做增量计算,设置不同优化方法和减枝规则,降低检测复杂度,减少算法开销,计算各数据点之间的距离,通过距离判断出噪声点。
但是上述方法并没有分析数据是否完整,导致检测的误报率和漏报率较高[3]。为此,本文提出基于中值滤波的含噪声数据检测方法。针对初始数据进行预处理,拟合失落数据点,并通过异常数据评分的方式提取出异常数据,再利用中值滤波算法从这些数据中检测出噪声数据。中值滤波就是将数据流中某数据的值利用其它数据点的中值代替,计算简便且抗干扰性较强[4]。实验结果表明,该方法提高检测精度,降低漏报率。
随着网络与传感器技术的快速发展,产生了大量实时变化的数据。这些数据来自网络管理、证券交易、电力系统、实时传感器等各个方面[5]。这些数据的大量生成和频繁变化导致数据具有一定突发性。在数据库中,数据的储存介质比较稳定,管理系统能够实时提交用户的各类操作。数据流模型属于一种实时、连续、无界的序列。
假设利用t代表某时间戳,ai是该时间段内生成的数据,则数据流描述为{…,ai-1,ai,ai+1,…}。和传统数据模型相比,数据流模型具有如下特点:
1)数据生成具有实时连续性;
2)数据生成顺序不会受到系统因素制约;
3)数据量大,难以预测出最大值。
综上所述,对于数据流而言,无法储存整个数据集合,只能通过维护来保证数据结构满足储存要求。
根据数据流模型特征,总结噪声数据主要来自以下方面:
1)传输错误:数据传输时,特别在无线传输过程中,容易发生数据缺失、漏传等现象,导致传输错误;
2)采集错误:不同数据的采集装置不同,采集系统的集成度较高,数据容易出现误差,此种情况是不能避免的,因为数据流作为一个整体,不能将噪声数据分离出来;
3)离散错误[6]:离散过程能够简化数据结构,方便分析。但是该过程会将某连续变量划分在离散区间上,需要通过离散值来估计连续值,这样就导致了离散方面的误差;
4)干扰错误:一些隐私信息通常会添加人为干扰,确保这些数据不被轻易挖掘。所以,在获取信息时容易发生干扰错误。
虽然噪声数据属于异常数据,但并不是所有异常数据都是无用的,有些数据只是属性值或标签发生错误,而并非没有价值。因此,必须对初始数据做预处理,补全缺失值,确定异常数据,缩小检测范围以此提高检测效果。
在数据流中,会存在一些缺失的数据点,会影响噪声检测的质量,容易出现漏检现象。针对这一问题,本文利用最小二乘拟合算法[7],经过失落点拟合,准确预估出该点的信息值。
选取直线拟合方式补全缺失数据,假设数据x与y之间存在如下关系:
y=b0+b1x
(1)
式中,b0与b1分别代表截距与斜率。
针对采集到的N组数据(xi,yi)i=1,2,…,N,利用最小二乘算法将该组数据拟合成一条直线,补足缺失点。当利用该方法完成参数估计时,需要保证yi的加权平方和最小[8]。
针对b0和b1求导,同时令b0、b1等于0。则能够获得b0、b1的最优预测值0、1:
(2)
(3)
结合计算得出的b0与b1值,即可实现缺失点补足。
异常程度初始评分的目的是用于确定一个数据集合是否为正常的,这说明评分过程会更加关注正常数据,也就是给正常数据赋予更低的异常评分[9]。
(4)
(5)
(6)
经过上述预处理,补全了数据流中的缺失值,同时筛选出异常数据,减少含噪声数据检测的工作量,提高检测精度[10]。
中值滤波能够避免线性滤波器造成的模糊现象[11],对滤除噪声干扰十分有效。中值滤波最方便的处理方法就是通过某个条形移动窗口在数据上进行滑动[12],进而确定出中值。
Yj=Med{xj-v…xj…,xj+v}
(7)
例如,针对某次测量工作连续完成五次采样,将获得的数据保存在数列{Sj}(j=5)中,结合采样时间,数据的排列顺序为{S1,S2,S3,S4,S5};再将该序列中的数值根据大小重新排序为:S4>S1>S3>S5>S2。
重新排序后{Sj}(j=5)的中值即为S3,则S3就是滤波输出。当滑动窗口H分别为奇数和偶数时,计算公式如下:
(8)
中值选择过程可通过图1描述。
图1 中值确定过程图
综合上述滑动窗口模型的特征,随着时间推移数据会持续生成,保存的数据会越来越多,为了快速预测数据流中的未来元素,难以将全部元素当做历史数据。因此,利用预测窗口方法[13],设定预测窗口如下:
Dt={xi-q,xi-q+1,…,xq}
(9)
公式中,q代表预测窗口尺寸,通常情况下,该尺寸小于滑动窗口,结合预测窗口的数据,估计xi+1的平均值与置信区间。
因数据流具有数量大、实时变化的特点,为提高检测效率,构建如下基于中值滤波算法的含噪声数据检测框架[14],主要步骤描述为:
步骤二:通过概率P运算数据在t+1时段内数值波动区间,计算公式如下:
(10)
(11)
(12)
步骤三:当数据全部生成时,与步骤二设定的区间进行对比,若高于预测区间,则说明数据为噪声数据,反之为正常数据;
步骤四:如果检测的数据为噪声数据,则及时更新预测窗口;
步骤五:反复操作上述步骤,即可完成含噪声数据检测。
本文将在某传感器数据集上完成相关实验,该数据集共分为12组,其中训练集9组,测试集合3组,每组数据都包括正类与负类样本。所有数据集都会按照由小到大的比例进行标签翻转,以此模拟实际应用中的噪声数据。仿真平台如图2所示。
图2 仿真平台结构示意图
1)数据预处理效果测试
预处理效果直接影响后续的检测效果,以传感器数据集合中的位置数据为例,利用本文失落数据点拟合算法对缺失数据做拟合处理,处理前、后的数据如图3和4所示。
图3 拟合前数据效果图
图3中的空白部分为传感器缺失数据值,图4为利用最小二乘拟合法拟合后的数据,由此可知经过本文方法处理后补齐了轮廓线,减少失落信息点,为含噪数据检测打下良好基础,能够有效降低漏检率。
图4 拟合后数据效果图
2)含噪声数据检测效果测试
以上述实时传感数据为例,分别利用本文方法、改进支持向量描述算法、局部向量点积密度算法进行含噪声数据检测,检测结果如图5所示。
图5 不同方法的含噪声数据检测结果示意图
分析图5可知,本文方法能够将实时传感数据中的噪声数据全部检测出来,而改进支持向量描述方法出现了漏检现象,有个别噪声数据没有被检测出来;局部向量点积密度法还出现误检情况,有些正常数据被检测为噪声数据。整体来看,本文方法对噪声数据的检测最为准确,这是因为经过失落点拟合和初始异常数据评分等过程有效提高了检测精度。
上述测试只针对实时传感数据,在实际应用中还有很多类型的数据。为了证明所提方法的实用性,分别选用网络管理数据、证券交易数据、电力数据等进行测试,并将召回率与F1值作为评价指标,计算公式如下。并绘制三种算法对于这些数据的检测箱型图,如图6和7所示。
图6 不同方法F1值测试结果对比图
图7 不同算法Recall值测试结果对比图
(13)
(14)
式中,TP代表正常数据被认为是正常的分类,FN代表正常数据被认为是噪声数据的错误分类。Precision代表准确率。计算公式分别如下:
(15)
式中,FP代表噪声数据被认为是正常数据的错误分类,TN代表噪声数据被认为是噪声数据的正确分类。
如图6和7所示的箱型图不仅能够反映不同方法对于不同数据集的整体检测精度,还能体现出算法的稳定性。箱体内的线段代表含噪声检测方法在不同数据集中的F1值和召回率的中位数,箱体描述所有实验结果的数值分布区间,箱体越短说明测试结果越集中。
由此可以看出,本文方法的F1值明显高于其它方法,同时没有受到噪声数据多少的影响,始终保持在较高水平,说明所提方法的误报率低且准确率高,而其它方法的F1值均随噪声含量的增多出现明显下降趋势。此外,中值滤波算法的召回率比其它方法低,意味着该方法更加可靠,能够学习到噪声数据的更多特征;且所提方法的整体箱型较短,说明测试数值较为集中,方法检测性能更加稳定。
在各领域数据量急剧增长背景下,数据结构变得更加复杂,且其中会掺杂很多噪声数据。因此,本文利用中值滤波算法对噪声数据检测展开深入研究。通过失落点拟合和初始数据异常评分等过程对数据做预处理,确定出异常数据,针对这些异常数据,利用中值滤波算法构建含噪声数据检测架构,进一步检测出噪声数据。实验结果表明,所提方法有效解决了噪声干扰问题,为数据分析提供更高质量的数据。现阶段,大部分数据都是实时的,所以实时检测技术更加符合数据处理需求,在今后研究中应完成从静态数据到动态数据的完全跨越,不断提高含噪声数据检测的实用性。