基于云计算环境下Apriori算法的设备故障诊断技术研究*

2014-07-18 11:56江雄心涂海宁
组合机床与自动化加工技术 2014年4期
关键词:项集子集站点

邱 昕,甘 超,江雄心,涂海宁,顾 嘉

(南昌大学 机电工程学院,南昌 330031)

基于云计算环境下Apriori算法的设备故障诊断技术研究*

邱 昕,甘 超,江雄心,涂海宁,顾 嘉

(南昌大学 机电工程学院,南昌 330031)

故障诊断是保障设备安全运行的重要手段。文章采用结构化存储的故障数据模型,考虑到故障数据的特点,以及传统Apriori算法的瓶颈,提出了一种改进的Apriori算法,应用于MapReduce计算框架,减少了算法的扫描次数,提高了算法的执行效率。在云计算环境下对故障数据进行关联规则挖掘,找出发生故障时各设备检测状态的关联关系,为设备维修和管理提供可靠依据。最后给出了该方法的可行性实例验证。

云计算;故障诊断;数据挖掘;Apriori算法

0 引言

故障数据挖掘是故障诊断技术的重要研究内容之一。关联规则是数据挖掘的研究重点,Apriori算法是最经典的关联规则算法[1]。近年来,国内外对Apriori算法的改进和优化取得了很大的成就。高宏宾等[2]提出了树形结构来存储事务项集数据,有效提高数据量巨大时算法的性能;苗苗苗等[3]利用了一种基于数组和矩阵压缩的Apriori改进算法,按照相关性质对事务矩阵进行压缩,以减少算法的运算量;BRIN等[4]采用动态模式计数法DIC,通过分段增加候选频繁模式集,简化了支持率的计算;刘兴涛等[5]利用二维数组标志位进行事务压缩和利用项集有序性进行项目压缩,优化Apriori算法的运行效率。

尽管Apriori算法具有很多改进方法,但用于设备故障诊断在算法效率和可行性上还不是很理想。基于故障数据的特点,为了进一步提高算法的效率,本文提出了一种云计算环境下Apriori算法的设备故障诊断方法。云计算(Cloud Computing)是一种新兴的计算模型,是分布式计算、并行计算和网格计算的发展[6]。处理海量数据和并行计算是云计算技术的优势所在。

1 故障数据模型

1.1 故障数据的特点

随着检测技术的发展以及企业对设备诊断的重视,制造企业能收集到大量的原始故障数据。这些故障数据有以下特点[7-8]:

(1)大量性。随着设备使用时间的推移,会产生大量的故障数据;

(2)动态性。近年来,多功能型设备不断增多,故障机理具有多样性和突发性的特点。由于设备处于不停的运行状态,采集的故障数据具有大量的动态信息;

(3)冗余性。设备发生故障时需要记录大量的状态参数、故障信息、设备信息等,这些信息具有一定的冗余性;

(4)噪音大。故障数据具有比较大的噪音。

1.2 模型的数据结构

在大量的原始故障数据中,可以通过每次维修行为的维修单号来识别,其中一次维修行为可能存在多个状态检测信息。为了便于采用关联规则挖掘思想,将原始故障数据中所有的记录按照维修单号进行合并,得到所需的数据模型。

(1)由于涉及维修单、备件、故障代码、维修人员、设备状态等信息,元素比较多,数据量很大,为了便于管理和维护,采用结构化存储方式,如图1所示;

(2)每条记录由唯一的维修单号标识,某条记录中的状态信息都与某次维修行为相关,不存在相同维修单号的两条记录;

(3)每条记录用表示,其中I表示这次维修检测到的状态信息。

2 MapReduce计算框架

MapReduce[9-10]是Google实验室提出的为多台计算机并行处理大量数据而设计的并行计算框架。它通过“Map(映射)”和“Reduce(化简)”这两个函数处理运行于大规模集群上的并行计算。Map阶段的功能是将输入的子数据集解析出一个键值对,按照一定的映射规则转换为另一个键值对 或一组键值对List,得到中间结果;然后把中间结果按照key分类,把含有相同key的中间结果输入给同一个Reduce函数;Reduce阶段的功能是遍历输入的中间数据,执行Reduce函数,输出新的键值对,得到了计算所需要的结果。

如图2是MapReduce计算框架的执行过程。

3 算法描述

3.1 Apriori算法改进描述

Apriori算法使用的是一种逐层搜索的迭代算法,通过对频繁K项集的剪枝、连接操作,搜索得到频繁(K+1)项集。

在设备故障诊断中,随着设备使用寿命的推移和监控时间的积累,数据库存储了海量的故障数据和状态数据。传统的Apriori算法有一下几个劣势[11-12]:

1)重复扫描数据库,数据库开销大,诊断速度缓慢;

2)迭代次数多,算法适应性差;

3)需要高配置的计算机,加剧企业在故障诊断方面的经济开销。

为了提高设备故障诊断中Apriori算法的效率和伸缩性,提高算法的运行速度和挖掘效率,本文在云计算环境下对Apriori算法加以改进,由于云计算可支持算法的并行执行,具有分布性的特点,为Apriori算法的改进提供了可能。算法的思路如下:

1)将故障数据库分为数据量相当的M个数据子集,发送到M个工作站点,扫描每个工作站点的数据子集,分别产生一个局部的候选K项集,每个候选项的支持数设为1;

2)通过一定的函数和方法将M个工作站点中相同的候选项和支持数发送到R个站点;

3)R站点累加相同项的支持数,并与最小支持数比较,得到局部频繁K项集;

4)合并R个站点的输出,得到最终的频繁K项集。

3.2 改进的Apriori算法用于MapReduce计算框架

采用MapReduce计算框架,对Apriori算法加以改进包括五个阶段,分别是Input阶段、Map阶段、Shuffle & Sort阶段、Reduce阶段、Output阶段。具体步骤如下:

(1)Input阶段:MapReduce库将故障数据库水平划分,分为数据量相当的M个数据子集。并将数据子集以键值对的格式读入,具体格式化为的形式。其中Tid表示故障数据库中的维修单号,List(value)表示故障数据库中维修单对应的设备状态信息。

(3) Shuffle & Sort阶段:由于故障数据量巨大,Map函数产生的中间值的重复率会比较高。所以在Reduce阶段之前要执行一个Combiner函数,Combiner函数的功能是合并Map函数的相同项的输出,得到, Count表示相同项在数据子集中的支持总数。

然后利用分区函数Separater将Combiner函数的输出结果分成R个不同的分区,将相同项的中间结果存储在同一个分区上,并分配到指定的Reduce函数。Separater函数的蕴含式如下:

其中mj为k项集对应的项在故障数据库中的序数。

(4) Output阶段:合并每个工作站点的局部频繁K项集,得到最终频繁K项集Lk..接着找频繁K+1项集。

改进的Apriori算法用于MapReduce计算框架的伪代码如下:

输入:故障数据库D,最小支持数minSupport,工作站点数M,工作站点数R;

输出:频繁K项集Lk..

1: 划分故障数据库为M个数据子集;

2: Convert to // 数据子集格式化为的形式;

3: Map (Tid , List(value)); //Tid为故障数据库中的维修单号,List(value)为维修单对应的设备状态信息;

6: Combiner< Itemsetsk, list(1)>; // Itemsetsk为K项集,list(1)为1列表;

7: int count = 0;

8: For each item in list(1) // 循环每个相同项;

9:count +=1;

10: Output (Itemsetsk, count); // count为该项的支持总数;

11: 利用分区函数Separater将Combiner函数的输出结果分成R个不同的分区, 并分配到指定的Reduce函数;

12: Reduce(Itemsetsk, List(Count)) // Itemsetsk为K项集,List(Count)为支持数列表;

13: int support = 0;

14: for each Count in list// 循环每个相同项;

15: support += Count;

16: Output (Itemsetsk, support);

17: support与最小支持数minSupport比较,合并比较之后每个Reduce函数的输出,得到频繁K项集Lk..

改进的Apriori算法结合MapReduce计算框架主要有两个优势:①减少故障数据库的扫描次数;②查找频繁项集K项集和查找频繁K+1项集是完全独立的,可以并行计算,提高了算法的执行效率。

4 实例验证

表1为某汽车企业故障数据,由于数据量巨大,为了便于表述,本文只提取了部分故障数据。信号(Itemset)表示机械设备发生故障时可供检测的信号。共检测了5种信号,分别为转速信号、转矩信号、压力信号、温度信号、振幅信号,这里分别用A、B、C、D、E表示。

表1 某汽车企业部分故障数据

假设最小支持数minSupport= 3,工作站点数M= 2,工作站点数R= 3。本文以计算频繁2项集为例。

把故障数据水平划分,分成两个数据子集D1和D2:

D1 = { R107-20071115-1 , R107-20071015-2 , R107-20071116-2};

D2 = { R107-20071121-3 , R107-20051024-3 , R107-20051210-1};

将数据子集D1和D2发送给两个Map工作站点,并将数据子集以键值对的格式读入:

Map工作站点0:

< R107-20071115-1,{A,B,D}> , < R107-20071015-2 , {B,C,D}> , < R107-20071116-2,{B,C}>;

Map工作站点1:

< R107-20071121-3,{A,B,D,E}> , < R107-20051024-3,{A,B,C,D}> , < R107-20051210-1 , {B,E}>;

执行Map(key , value)函数,每个候选项的支持数计为1,得到局部候选2项集:

Map工作站点0:

Map(R107-20071115-1,{A,B,D})→<{A,B},1>,<{A,D},1>,<{B,D},1>;

Map(R107-20071015-2,{B,C,D})→<{B,C},1>,<{B,D},1>,<{C,D},1>;

Map(R107-20071116-2,{B,C})→<{B,C},1>;

Map工作站点1:

Map(R107-20071121-3,{A,B,D,E})→<{A,B},1>,<{A,D},1>,<{A,E},1>,<{D,E},1>,<{B,D},1>,<{B,E},1>;

Map(R107-20051024-3,{A,B,C,D})→<{A,B},1>,<{A,C},1>,<{A,D},1>,<{B,C},1>,<{B,D},1>,<{C,D},1>;

Map(R107-20051210-1,{B,E})→<{B,E},1>;

执行Combiner(Itemsetsk,list(1))函数,合并Map函数相同项的输出:

Map工作站点0:

Combiner({A,B},list(1))→<{A,B},1>;Combiner({A,D},list(1))→<{A,D},1>;Combiner({B,D},list(1,1))→<{B,D},2>;Combiner({B,C},list(1,1))→<{B,C},2>;Combiner({C,D},list(1))→<{C,D},1>;

Map工作站点1:

Combiner({A,B},list(1,1))→<{A,B},2>;Combiner({A,D},list(1,1))→<{A,D},2>;Combiner({A,E},list(1))→<{A,E},1>;Combiner({D,E},list(1))→<{D,E},1>;Combiner({B,D},list(1,1))→<{B,D},2>;Combiner({B,E},list(1,1))→<{B,E},2>;Combiner({A,C},list(1))→<{B,D},1>;Combiner({B,C},list(1))→<{B,C},1>;Combiner({C,D},list(1))→<{C,D},1>;

执行分区函数Separater函数,将Combiner函数的输出结果分成3个不同的分区(其中A、B、C、D、E的序数分别为1,2,3,4,5):

Separater({A,B})=(1+10*2)mode3=0;同理可得:Separater({A,D})=2;Separater({A,E})=0;Separater({D,E})=0;Separater({B,D})=0;Separater({B,E})=1;Separater({A,C})=1;Separater({B,C})=2;Separater({C,D})=1;

所以,{A,B},{A,E},{D,E},{B,D}分配到第0个Reduce工作站点,{A,C},{C,D},{B,E}分配到第1个工作站点,{A,D},{B,C}分配到第2个工作站点。

执行Reduce函数,累加其接收的候选2项集的支持数:

Reduce工作站点0:

Reduce({A,B},list(1,2))→<{A,B},3>;Reduce({A,E},list(1))→<{A,E},1>;Reduce({D,E},list(1))→<{D,E},1>;Reduce({B,D},list(2,2))→<{B,D},4>;

Reduce工作站点1:

Reduce({B,E},list(2))→<{B,E},2>;Reduce({A,C},list(1))→<{A,C},1>;Reduce({C,D},list(1,1))→<{C,D},2>;

Reduce工作站点2:

Reduce({A,D},list(1,2))→<{A,D},3>;Reduce({B,C},list(2,1))→<{B,C},3>;

与最小支持数minSupport=3相比较,得到局部频繁2项集:

合并每个工作站点的局部频繁2项集,得到频繁2项集:

同理可以得到,频繁3项集L3= {{A,B,D}};

由此可以分析出设备发生故障时,设备状态信息的关联关系。为设备维修和故障诊断提供决策支持。

5 总结

故障诊断是提高设备可靠性和稳定性的重要手段。本文提出了基于云计算环境下Apriori算法的设备故障诊断方法。采用结构化存储的故障数据模型,通过对Apriori算法的改进,结合MapReduce计算框架,采用并行计算求出频繁项集,提高了传统Apriori算法的计算效率,找出设备发生故障时设备检测状态信息的关联关系,为维修决策和设备管理提供可靠依据,并预测设备的运行趋势,提高设备的使用效率和管理水平。

[1] Agrawal R, Imielinski T, Swami A. Mining association rules between sets of items in large databases[A]. Proceedings of the 1993 ACM SIGMOD International Conference on Management of Data, May 26 - 28 1993[C]. Washington, DC, United states: Publ by ACM, 1993:207-216.

[2] 高宏宾, 潘谷, 黄义明. 基于频繁项集特性的Apriori算法的改进[J]. 计算机工程与设计, 2007,(10): 2273-2275,2378 .

[3] 苗苗苗, 王玉英. 基于矩阵压缩的Apriori算法改进的研究[J]. 计算机工程与应用, 2013(1): 159-162.

[4] Brin S, Motwani R, Ullman JD, 等. Dynamic itemset counting and implication rules for market basket data[A]. Proceedings of the 1997 ACM SIGMOD International Conference on Management of Data, May 13, 1997-May 15, 1997[C]. Tucson, AZ, USA: ACM, 1997:255-264.

[5] 刘兴涛, 石冰, 解英文. 挖掘关联规则中Apriori算法的一种改进[J]. 山东大学学报(理学版), 2008,(11): 67-71.

[6] 陈全, 邓倩妮. 云计算及其关键技术[J]. 计算机应用, 2009,29(9): 2562-2567.

[7] 褚建立, 陈步英. 基于数据挖掘的机械设备故障诊断的研究[J]. 微计算机信息, 2007(19): 208-209,171

[8] 刘繁茂. 面向故障过程的多设设可靠性分析与维修决策[D]:武汉: 华中科技大学, 2011.

[9] Dean J, Ghemawat S. MapReduce: Simplified data processing on large clusters[J]. Communications of the ACM, 2008,51(1): 107-113 .

[10] 陈康, 郑纬民. 云计算:系统实例与研究现状[J]. 软件学报, 2009,20(5): 1337-1348.

[11] 崔贯勋, 李梁, 王柯柯, 等. 关联规则挖掘中Apriori算法的研究与改进[J]. 计算机应用, 2010,30(11): 2952-2955.

[12] 朱其祥, 徐勇, 张林. 基于改进Apriori算法的关联规则挖掘研究[J]. 计算机技术与发展, 2006(7): 102-104.

(编辑 赵蓉)

Equipment Fault Diagnosis Technology Based on Apriori Algorithm in Cloud Computing Environment

QIU Xin, GAN Chao, JIANG Xiong-xin, TU Hai-ning, GU Jia

(School of Mechanical Engineering,Nanchang University,Nanchang 330031,China)

Equipment fault diagnosis is an important means to ensure safe operation of equipment. Structured storage of the fault data model is used in this paper. And an improved Apriori algorithm is proposed according to the characteristics of fault data and the deficiency of Apriori algorithm, combining the MapReduce programming model, which reduces the number of scanning and improves the efficiency of the algorithm. The correlation is exhumed among equipment inspection status by mining the association rules of fault data in cloud computing environment, which provides reliable support for equipment maintenance and management. At last an example is given to prove the feasibility.

cloud computing; fault diagnosis; data mining; apriori algorithm

1001-2265(2014)04-0045-04

10.13462/j.cnki.mmtamt.2014.04.012

2013-08-06;

2013-08-28

国家自然科学基金(50905083)

邱昕(1989—),女,江西赣州人,南昌大学硕士研究生,主要从事制造过程与管理方面的研究,(E-mail)crazy28@qq.com。

TH166;TG65

A

猜你喜欢
项集子集站点
拓扑空间中紧致子集的性质研究
Carmichael猜想的一个标注
关于奇数阶二元子集的分离序列
基于Web站点的SQL注入分析与防范
基于矩阵相乘的Apriori改进算法
不确定数据的约束频繁闭项集挖掘算法
积极开展远程教育示范站点评比活动
首届欧洲自行车共享站点协商会召开
不确定数据中的代表频繁项集近似挖掘
怕被人认出