谭成兵,周湘贞,朱云飞
(1.亳州职业技术学院 智能工程系,安徽 亳州 236813;2.中国社会科学院 财经战略研究院,北京 100028;3.清华大学出版社,北京 100084)
近年来,数据挖掘技术在互联网数据分析、机械故障定位、复杂模型优化、动力系统故障检测、营销方案制定、仿真系统模拟、电商客户消费习惯[1]等方面取得了较好效果。在数据挖掘分析中,诞生了很多优秀的数据分析平台,比如Weka平台,因其强大的数据处理能力、高集成化的智能算法,以及良好的可视化及过程化展示,成为数据分析的重要平台,Umair 等[2]借助Weka平台对Facebook的用户进行了有效分类,而郑继刚等[3]在Weka平台实现了网络攻击的深入分析。在当前的数据挖掘研究中,已经逐渐转化为从数据挖掘的横向应用研究,转变为纵向数据挖掘技术本身的优化研究,关于数据挖掘的算法研究成为研究热点。通过智能算法进一步优化数据挖掘的性能,提高数据挖掘效率及稳定性。数据挖掘算法较多,随着数据量的增长,传统的数据挖掘算法效率逐渐降低,而具有大数据处理能力的机器学习算法成为了当前数据挖掘的主要算法,研究人员分别尝试用Apriori算法和人工鱼群算法完成了有效数据挖掘[4-5]。为了进一步提高数据挖掘的准确度,协同采用多种机器学习算法共同完成数据挖掘,以旋转机械设备故障判别作为研究对象,根据选择机械设备的振动频谱图作为输入样本,采用协同机器学习算法对振动频谱进行故障判别。
Weka平台作为数据挖掘常用平台,优势明显,主要体现在:(1)数据样本导入的便捷性,支持数据库自动导入,也支持手动导入,自动导入方法尤其适用于大规模数据挖掘;(2)Weka仿真过程可视化,对于数据挖掘过程的变化展示清晰,方便数据挖掘用户可视化调参;(3)平台集成化程度高,而且嵌入了多种机器学习分类算法,免去了用户自编程的时间,提高使用效率;(4)平台对训练结果的统计功能强大,图表类型丰富,方便用户进行数据挖掘结果整理;(5)平台自带数据样本初始化功能,具有丰富的数据样本归一化、均值化、平衡化等功能。
设gi(x)表示第i个机器学习算法对样本x的预测结果,那么公式(1)表示各个机器学习算法单独预测的结果:
(1)
对这n个预测结果进行等值划分,凡是预测结果相等的机器学习算法划分为一组[6-7],如式(2)所示。
[(rt1,rt2,…,rti),(rti+1,rti+2,…,rtk),…,(rtk+1,rtk+2,…,rtn)],
(2)
在式(2)中,有:
rt1=rt2=…=rti,rti+1=rti+2=…=rtk,rtk+1=rtk+2=…=rtn,且t1,t2,…,tn∈[1,n][8]。设第i(i=1,2,…n)个机器学习算法的权重因子为λi,分别计算式(2)中每一组权重因子总和,各组的计算结果如式(3)所示。
(3)
在式(3)中找出值最大的那一组,该组所代表的类别就是最终的结果。在协同计算中,既可以串行协同计算,也可以并行协同计算[9],具体可以根据实际需要选择。
文中的权重因子确定采用蛙跳算法来实现,初始化权重因子作为蛙群,然后执行蛙跳算法,求解权重因子值。在权重因子优化过程中,将预测值与实际值的差值的倒数作为混合蛙跳算法的适应度函数。在第t+1次计算迭代过程中,运用第t次迭代后的结果,即适应度函数最大值的青蛙Xb(t)和最小值的青蛙Xw(t)。为了保证群组内的青蛙可以朝着适应度函数值最大的青蛙靠拢,从适应度函数值最小的青蛙开始不断移动,移动方法为:
Δw(t)=rand()×(Xb(t)-x(t)),
(4)
Xw(t+1)=Xw(t)Δw(t),Rmin≤Δw(t)≤Rmax。
(5)
若t+1时刻求解的Xw(t+1)值比Xw(t)更大,即具有更好的适应度,那么用Xw(t+1)替换Xw(t),反之,继续执行公式(4)和(5)。关于青蛙移动步长问题,可引入步长因子C,那么对于第k只青蛙的第i次移动距离计算公式为:
(6)
其中步长因子为:
C=Cmin+inow/Gglobal×(Cmax-Cmin)。
(7)
其中,Cmin和Cmax分别为在当前群组内的青蛙最小移动步长和最大移动步长,可以根据实际情况设定,Gglobal为群组内所有青蛙的适应度值之和,inow为当前时刻青蛙移动的次数。
当群组内所有青蛙的适应度值更接近Xb(t),且误差在设定的阈值内,算法迭代停止,输出当前时刻青蛙分布图,即为最优解。
上面介绍了蛙跳算法对权重因子的优化,在操作过程中,根据单个机器学习算法训练的结果,有选择性地进行协同学习,当单个学习算法的结果都一样时,不必进行权重因子优化,直接将训练结果赋给协同学习结果,否则需要进行蛙跳算法的权重因子优化,具体的数据挖掘流程如图1所示。
为了验证协同机器学习在数据挖掘中的性能,采用Weka平台对旋转机械设备振动频谱进行故障判别,按不同时间段截取选择机械设备振动频谱图,生成数据样本。考虑到数据样本的全面性,频谱采样时间和采样频率均有所变化,将生成的图像样本进行处理,生成文本并导入Weka平台。在Weka平台采用集成的机械学习算法进行仿真,然后进行协同仿真,为了对比,共选取常用的4种不同的机器学习算法,分别单个进行仿真。
选取2 180个旋转机械设备振动频谱进行仿真,导入Weka后,在Weka Explorer的Classifier中选择不同的机器学习分类器,如图2所示。
选择算法及验证方式,然后运行,在右边的分类输出窗口中查看分类结果,如图3所示。
从图3可以看出,J48共对2 180个旋转机械设备振动频谱图样本进行了预测,其中预测正确样本数为1 900,预测错误样本数为280,预测准确率为87.16%。按照此流程,采用其他3种算法进行训练,将预测结果相同的分为一组,然后初始化权重因子[λ1,λ2,λ3,λ4],最后采用蛙跳算法进行训练,得到优化后的[λ1,λ2,λ3,λ4],接着进行同组的权重因子求和,最后将求和值最大的一组的预测结果作为协同算法的预测结果。
从图4可以看出,在准确率方面,4种算法的协同预测准确率达到了95.26%,远高于其他4种算法的准确率,表明协同作用使得旋转机械设备的故障判断准确率得到了显著提升,相比于表现最差的K-means算法,提高了30.94%,相比于表现最好的决策树J48,提高了9.30%。
协同机器学习算法的预测准确率优势得到了验证,但是协同学习建立在单个算法的基础之上,对于选择机械设备的故障预测时间必然增加,下面将对4种机器学习算法和协同算法的预测时间分别进行仿真。
为了充分验证协同学习与单个学习算法的时间性能,采用3个不同容量的数据集来进行预测,数据集1(500 MB),数据集2(2 GB),数据集3(10 GB)。
2.2.1 串行协同模式
在一台设备上进行串行协同仿真,分别对4种算法进行逐个仿真,然后求解权重因子,最后得到协同仿真结果,其串行协同条件下预测时间结果统计如表1所示。
表1 串行协同条件下预测时间对比
从表1可以看出,在串行协同条件下,当样本量增大,预测时间随之增加,在样本容量相同时,支持向量机的旋转机械设备振动故障的预测时间性能最优,4种算法协同的预测时间比4种单个算法的预测时间之和略多,主要用于蛙跳算法的权重因子训练,这种因为串行协同所带来的预测时间增长问题,无法避免。
2.2.2 并行协同模式
下面进行并行协同条件下的预测仿真,在5台设备上进行并行协同仿真,其中4台设备分别对4种算法进行逐个仿真,另外1台设备求解权重因子,最后得到协同仿真结果,其并行协同条件下预测时间结果统计如表2所示。
表2 并行协同条件下预测时间对比
从表2可以看出,相比于串行协同,并行协同条件下的旋转机械设备振动故障4种算法协同预测时间大大下降,大部分取决于最差算法的预测时间,因为协同而带来的蛙跳算法的权重因子求解时间并不多,在实际操作过程中,若针对某个样本,4种单个机器学习算法的预测结果一致时,则不必进行协同权重因子的计算,直接将一致结果作为协同预测的结果,因此并不是每次协同都需要额外增加协同时间,所以综合来看,并行协同条件下的预测时间相对于单个机器学习算法并没有明显增加。
基于Weka平台采用协同机器学习算法来实现数据挖掘,数据挖掘的准确率更高,在实际应用中,充分考虑应用的时间需求来选择协同学习模式,串行或者并行,并行协同条件下,协同学习的时间性能更优,但是因为并行计算所带来的的复杂度和对计算设备的资源消耗必将增加,而且计算的稳定性也带来新的挑战,而串行协同学习流程更加简单,对计算设备资源要求容忍性更强,因此协同模式的选择应根据实际情况。后续研究将对协同学习的时间和稳定性进一步研究,以进一步优化协同机器学习技术的数据挖掘性能。