一种基于动态关联规则的设备故障信息挖掘方法与流程

文档序号:12720219阅读:260来源:国知局
一种基于动态关联规则的设备故障信息挖掘方法与流程
本发明涉及数据挖掘
技术领域
,特别是指一种基于动态关联规则的设备故障信息挖掘方法。
背景技术
:在数据挖掘技术发展繁荣的大背景下,关联规则技术得到了蓬勃发展,关联规则挖掘的目的是为了从大量数据中发现项/变量之间的关联和相关关系。传统关联规则挖掘方法挖掘的关联规则能反映变量间的相互依赖关系,但是不能反映规则本身的变化规律。以挖掘故障信息数据库为例,传统的关联规则挖掘方法挖掘的关联规则能够发现数据库中不同设备、故障原因以及维修信息之间的联系,从而有利于找出设备、故障原因以及维修信息之间的联系,并根据设备确定最常见的故障原因等,但是,传统的关联规则挖掘方法没有考虑关联规则随着时间产生的变化的情况,认为挖掘的关联规则在数据库中是永恒有效的,没有考虑关联规则的变化。技术实现要素:本发明要解决的技术问题是提供一种基于动态关联规则的设备故障信息挖掘方法,以解决现有技术所存在的没有考虑关联规则随着时间产生变化的问题。为解决上述技术问题,本发明实施例提供一种基于动态关联规则的设备故障信息挖掘方法,包括:获取设备故障维修信息数据集D;按照预约维修日期将获取的设备故障维修信息数据集D划分为n个子数据集D1,D2,...,Dn,其中,D={D1,D2,...,Dn};定义动态关联规则算法,其中,动态关联规则表示为:其中,A、B分别表示项集,SV表示支持度向量,CV表示置信度向量,s表示项集的支持度,c表示关联规则的置信度,表示动态关联规则的推理符号;按照定义的动态关联规则算法,对n个子数据集D1,D2,...,Dn进行动态关联规则挖掘,得到设备故障原因与维修措施之间的关联关系。进一步地,所述获取设备故障维修信息数据集D包括:获取设备故障维修信息原始数据集;从获取的设备故障维修信息原始数据集中,获取目标属性数据;对获取的目标属性数据进行预处理,所述预处理包括:处理目标属性中的属性缺失值,属性格式不一致值和/或去掉冗余值。进一步地,在对获取的目标属性数据进行预处理之后,所述方法还包括:对预处理后的对目标属性数据进行字符离散化,得到设备故障维修信息数据集D。进一步地,所述动态关联规则的支持度向量SV表示为:SV=[s(A∪B)1,s(A∪B)2,...,s(A∪B)n]其中,表示项集A∪B在子数据集Di中的支持度度量,st.表示约束条件,表示项集A∪B在子数据集Di中出现的频数,|Di|为子数据集Di中的记录数。进一步地,所述动态关联规则的置信度向量CV表示为:其中,反映了项集A∪B在子数据集Di中的置信度度量,st.表示约束条件,为项集A∪B的SV中的第i个元素,为项集A的SV中的第i个元素。进一步地,所述动态关联规则的支持度s表示为:其中,M是数据集D中的记录数,表示项集A∪B在子数据集Di中出现的频数。进一步地,所述动态关联规则的置信度c表示为:其中,s(A∪B)为项集A∪B的支持度,sX为项集A的支持度。进一步地,所述按照定义的动态关联规则算法,对n个子数据集D1,D2,...,Dn进行动态关联规则挖掘,得到设备故障原因与维修措施之间的关联关系包括:对每个时间段上的子数据集利用频繁项集产生算法产生动态关联规则左项和右项;确定所述动态关联规则左项的支持度,所述动态关联规则左项的支持度表示为:其中,表示动态关联规则左项的支持度,表示动态关联规则左项在时间段ti上的支持度向量,Mi表示与时间段ti上的子数据集Di中的记录数Mi,M表示数据集D中总的记录数;若所述动态关联规则左项的支持度大于预设的支持度阈值,则确定所述动态关联规则左右全项的支持度,所述动态关联规则左右全项的支持度表示为:其中,sR表示动态关联规则左右全项的支持度,sRi表示动态关联规则左右全项在时间段ti上的支持度向量;通过公式确定动态关联规则的置信度,其中,c表示动态关联规则的置信度;判断所述动态关联规则的置信度是否大于预设的置信度阈值,若大于预设的置信度阈值,则根据挖掘得到的动态关联规则,分析设备故障原因与维修措施之间的关联关系。进一步地,所述方法还包括:建立时间序列回归模型,预测动态关联规则的发展趋势。进一步地,所述方法还包括:在交互式可视化界面上,根据用户点击的预约维修日期,链接到相应的项集和关联规则的挖掘结果界面;和/或,在交互式可视化界面上,根据用户输入的查询条件进行匹配查询,以列表的形式显示相应的查询结果,所述查询条件包括:项集或关联规则;和/或,在交互式可视化界面上,根据用户选择的关联规则,以柱状图的形式显示所述关联规则的置信度。本发明的上述技术方案的有益效果如下:上述方案中,获取设备故障维修信息数据集D;按照预约维修日期将获取的设备故障维修信息数据集D划分为n个子数据集D1,D2,...,Dn,其中,D={D1,D2,...,Dn};定义动态关联规则算法,其中,动态关联规则表示为:其中,A、B分别表示项集,SV表示支持度向量,CV表示置信度向量,s表示项集支持度,c表示动态关联规则的置信度;按照定义的动态关联规则算法,对n个子数据集D1,D2,...,Dn进行动态关联规则挖掘,得到设备故障原因与维修措施之间的关联关系,这样,挖掘得到的动态关联规则与获取到的设备故障维修信息数据集D中的预约维修日期动态相关,从而能够反映出挖掘得到的动态关联规则与预约维修日期之间的关系。附图说明图1为本发明实施例提供的基于动态关联规则的设备故障信息挖掘方法的流程示意图;图2为本发明实施例提供的设备所属品牌分布示意图;图3为本发明实施例提供的设备所属大类分布图;图4为本发明实施例提供的按照预约日期划分后,预约维修日期分布示意图;图5为本发明实施例提供的故障原因分布图;图6为本发明实施例提供的组成关联规则的置信度向量柱状示意图;图7为本发明实施例提供的组成关联规则的全项频繁项集的支持度向量柱状示意图;图8为本发明实施例提供的关联规则全项频繁项集支持度柱状示意图;图9为本发明实施例提供的支持度回归预测曲线;图10为本发明实施例提供的Django架构的工作原理图;图11为本发明实施例提供的详细结果页面;图12为本发明实施例提供的查询页面;图13为本发明实施例提供的某规则置信度趋势柱状图。具体实施方式为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。本发明针对现有的没有考虑关联规则随着时间产生变化的问题,提供一种基于动态关联规则的设备故障信息挖掘方法参看图1所示,本发明实施例提供的基于动态关联规则的设备故障信息挖掘方法,包括:S101,获取设备故障维修信息数据集D;S102,按照预约维修日期将获取的设备故障维修信息数据集D划分为n个子数据集D1,D2,...,Dn,其中,D={D1,D2,...,Dn};S103,定义动态关联规则算法,其中,动态关联规则表示为:其中,A、B分别表示项集,SV表示支持度向量,CV表示置信度向量,s表示项集的支持度,c表示关联规则的置信度,表示动态关联规则的推理符号;S104,按照定义的动态关联规则算法,对n个子数据集D1,D2,...,Dn进行动态关联规则挖掘,得到设备故障原因与维修措施之间的关联关系。本发明实施例所述的基于动态关联规则的设备故障信息挖掘方法,获取设备故障维修信息数据集D;按照预约维修日期将获取的设备故障维修信息数据集D划分为n个子数据集D1,D2,...,Dn,其中,D={D1,D2,...,Dn};定义动态关联规则算法,其中,动态关联规则表示为:其中,A、B分别表示项集,SV表示支持度向量,CV表示置信度向量,s表示项集支持度,c表示动态关联规则的置信度;按照定义的动态关联规则算法,对n个子数据集D1,D2,...,Dn进行动态关联规则挖掘,得到设备故障原因与维修措施之间的关联关系,这样,挖掘得到的动态关联规则与获取到的设备故障维修信息数据集D中的预约维修日期动态相关,从而能够反映出挖掘得到的动态关联规则与预约维修日期之间的关系。为了能够基于动态关联规则对设备故障信息进行挖掘,需先定义动态关联规则算法,本实施例中,为了更好地理解本实施例新定义的动态关联规则算法,先对传统的动态关联规则进行说明:传统的动态关联规则是一种可以描述自身随时间变化的关联规则。传统的动态关联规则定义如下:设I={I1,I2,...In}是项集合,任务相关的数据集D是在时间段t内收集到的,t可以分成不相交的长度为n的时间序列,即t={t1,t2,...,tn}。依照t,数据集D可以划分为相应的n个子数据集D={D1,D2,...,Dn},其中子数据集Di(i∈{1,2,...n})中的数据是在时间段ti(i∈{1,2,...,n})内收集的,数据集D中每个事务T是项的集合,使得每个事务有一个标识符,称作TID;设A是一个项集,事务T包含A当且仅当关联规则是形如(也可以表示为:A==>B,其中,项集A位于关联规则的左边,项集A也可以称为关联规则左项;项集B位于关联规则的右边,项集B也可以称为关联规则右项)的蕴涵式,其中并且规则B在数据集D中成立,具有支持度s,其中s是D中事务包含A∪B(即A和B二者)的百分比,它是概率PD(A∪B),设PD[(A∪B)i]是子数据集Di中所包含A∪B的记录数与数据集D中总记录数之比,则s同样可以表示为概率规则在事务集D中具有置信度c,置信度c是条件概率PD(B|A),设PD(Bi|A)是子数据集Di中包含A∪B的记录数与在数据集D中包含A的记录数之比,则c同样可以表示为概率定义3-1支持度向量(SupportVector)利用支持度向量(SV)和置信度向量(CV)以及支持度s和置信度c,4个变量共同评价一条规则。项集A的支持度向量定义为:SV=[s1,s2,...,sn],其中si(i∈{1,2,...,n})是项集A在数据子集Di(i∈{1,2,...n})中出现的频数fi(i∈{1,2,...,n})与D中的记录数M之比,即:si=fi/M,i∈{1,2,...,n}(3-1)设项集A的支持度为s,则有设最小支持度为min_sup,如果s>min_sup成立,则项集A称之为频繁项集。有时,利用项集出现的频数表示支持度更为合适,这样项集的支持度向量为:SV=[f1,f2,...,fn](3-3)相应的支持度可以表示为:定义3-2置信度向量(ConfidenceVector)因为动态关联规则与普通关联规则在从频繁项集产生规则的过程是相同的,不同之处在于置信度向量的计算,所以本专利仅仅关注置信度向量的生成方式。动态关联规则的置信福向量CV=[c1,c2,...,cn],其中ci(i∈{1,2,...,n})是0%~100%之间的的一个百分数。设SVA∪B=[s(A∪B)1,s(A∪B)2,...,s(A∪B)n]为A∪B的支持度向量,是A的支持度向量,为B的支持度向量,并且A的支持度为sA,则有设A∪B的支持度为sA∪B,B的支持度为sB,并且规则的置信度为c,则有设最小置信度为min_conf,如果c≥min_conf成立,则规则是一条强动态关联规则。定义3-3定义动态关联规则的完整表示(Wholedynamicassociationrule)一条完整的动态关联规则可以描述如下:(SV=[s1,s2,...,sn],CV=[c1,c2,...,cn],s,c)(3-7)其中,SV,CV,s和c一起描述了规则的动态特性,由(式3-3),(式3-5),(式3-4),(式3-6)式确定。由于动态关联支持度向量和置信度向量将被用于描述规则在对应数据子集中的动态性质,因此,有必要对其进行比较合理的定义。原定义中被定义为式由于M为固定值,因此,实际上,并不能反映项集A∪B在数据子集Di几中的支持度度量,而仅仅是频数度量f(A∪B)i。原定义被定义为对于确定的sx为固定的。它与等效,同样不能反映Di中的置信度度量。从信息论的角度看,后者的度量不能提供任何新的信息,因此是冗余的。例如,根据时间t={t1,t2}划分数据集D={D1,D2},假设D1包含990条事务记录,其中,支持A∪B,A的事务数均为10,D2包含10条事务记录,支持A∪B,A的事务数分别为9、10。对于规则根据原定义(3-3),(3-5)式,有:从上述SV和CV的值,不难看出原定义有以下不足之处:1、单独考虑D1,在D1的支持度:单独考虑D2,在D2的支持度:所以而上述SV定义与经典支持度定义矛盾!2、SV与CV具有相同比例,不能提供新的度量信息鉴于原始定义存在上述所述的不足之处,下面给出改进的动态关联规则算法的定义:原定义被定义为对于确定的sx为固定,设最小置信度为min_conf如果c≥min_conf成立,则规则是一条强关联规则。接着,给出更为恰当的SV,CV定义,描述如下:定义3-4动态关联规则(或者项集A∪B)的支持度向量具有如下的表示形式:其中,表示项集A∪B在子数据集Di(i∈{1,2,...n})中出现的频数,|Di|为子数据集Di中的记录数。上述定义中,表示项集A∪B在子数据集Di中的支持度度量。此时,原有的式(3-2)不再成立,则的支持度s可以通过下式计算得到:其中,M是数据集D中的记录数。定义3-5动态关联规则的置信度向量具有如下的表示形式:其中,为项集A∪B的SV中的第i个元素,为项集A的SV中的第i个元素。上述定义中,反映了项集A∪B在子数据集Di中的置信度度量。则的置信度c可以通过下式计算得到:这样,就有如下的动态关联规则新定义:定义3-6一条完整的动态关联规则具有支持度向量SV、置信度向量CV、支持度s和置信度c四个参数,它具有如下表示形式:其中,SV和CV、s和c可以分别根据(式3-9)、(式3-11)、(式3-10)和(式3-12)得到,并一起用于描述关联规则的动态性质。新的支持度向量SV、新的置信度向量CV与经典的支持度、置信度定义相吻合,可以更好地反映规则随时问变化的动态信息。定义3-7设有动态关联规则最小支持度阈值为min_sup,最小置信度阈值为min_conf,如果s≥min_sup,且c≥min_conf,则称动态关联规则为强动态关联规则。如规则(式3-13)所示,动态关联规则中既包含了传统的支持度和置信度的信息,还提供了普通关联规则所没有的时变特性信息。如果将数据集D按时间戳进行分离,再按照以上(式3-10)、(式3-12)公式分别计算相应时间段上的支持度和置信度,也就是支持度向量和置信度向量,就可以由定义3-6表述一样对某规则进行评价。比如说某故障是否和某维修措施强关联,而该规则在一段时间内的置信度变化情况则反映了该关联程度的强弱变化。改进的动态关联规则挖掘算法:定义3-8频数向量具有如下形式:其中,为项集A∪B在Di(i∈{1,2,...n})中出现的频数。按照新的动态关联规则定义和已有子数据集的记录数数量关系,提出新的动态关联规则算法过程如下:1)对每个时间段上的子数据集利用频繁项集产生算法产生满足支持度阈值要求的频繁项集和相应的支持度,这就是定义中的支持度向量。2)由于每个时间段上的记录数目和总的记录数目是比较容易得到的,因此求某个规则对支持度时可以由当前时间段之前的规则的相对于总记录数的支持度向量之和得到,其中相对于总记录数的支持度向量可由已知的记录总数和该时间段上的记录数的比值关系计算得到。3)在每个时间段上的子数据集由满足支持度阈值要求的频繁项集生成满足置信度阈值要求的关联规则。由于本实施例的重点是动态关联规则算法,而且由频繁项集生成关联规则的算法在基本的定义中都能找到,故这里不在赘述。4)生成对应规则的置信度,利用记录总数和当前各个时间段中的置信度记录数的数量关系计算得出关联规则中左项的支持度(或频数)与右项的支持度(或频数)之比。本实施例中,为了更好地理解本发明,对本实施例提供的基于动态关联规则的设备故障信息挖掘方法的步骤进行详细说明,所述基于动态关联规则的设备故障信息挖掘方法的具体步骤可以包括:步骤一、获取设备故障维修信息原始数据集,例如,所述获取设备故障维修信息原始数据集是由68万条设备故障维修信息组成的原始数据集,如表1所示:表1设备故障维修信息数据集(部分数据)如表1所示,每条记录可以包括:购机日期、购买商场、购买价、市场级别、安装日期、预约日期、设备大类、设备品牌、设备型号、受理时间、故障原因描述、维修措施、需求服务方式等含有29个维修信息项的事务组成,可见,原始数据集是一个容量很大的高维离散数据集。所述原始数据集中存在很多信息缺失和冗余,需要对所述原始数据集中的数据进行预处理和离散化。步骤二、在对所述原始数据集中的数据进行预处理和离散化之前,需确定用以挖掘的目标属性,由于本实施例是基于动态关联规则的设备故障信息挖掘方法,所以必然选择和动态时间,故障信息,维修信息以及规则的主体-设备作为用以挖掘的目标属性,所述目标属性包括:预约日期,设备大类,设备品牌,设备型号,故障原因,维修措施、故障原因描述;并获取这7项目标属性数据作为挖掘数据。步骤三、对获取的挖掘数据/目标属性数据进行预处理,所述预处理包括:处理目标属性中的属性缺失值,属性格式不一致值和/或去掉冗余值:a)处理目标属性中的属性缺失值:属性缺失值指必要属性值的缺失,如维修措施和故障原因描述信息的缺失,对待这种问题的数据只能删除,因为它们不包含可供挖掘的必要信息;b)处理属性格式不一致值:例如,日期数据中有可能混杂有不规则字符,导致导入数据库时由于数据类型(属性格式)的不一致而报错无法导入,这时候也要把这部分数据剔除掉;c)去掉冗余值:例如,故障原因描述字段过于冗长超出数据库字符类型域的长度,也必须去掉。在预处理过程中对目标属性数据进行了初步的筛选,使之符合后续步骤中导入数据库或是离散化的要求。步骤四,对预处理后的对目标属性数据进行字符离散化,得到设备故障维修信息数据集D,具体的:对不同设备大类,设备品牌,维修措施用相应的代号表示,从而形成规则的数据表作为参数供规则挖掘程序运行。本实施例可以运用MicrosoftSQLServer2008作为数据库来处理这68万行数据,把含有属性缺失值,属性格式不一致值、冗余值进行删除操作后,对目标属性数据中的中文描述进行字符离散化,以供规则挖掘程序运行,以维修措施离散化过程为例进行离散化,设维修措施表在maintenance数据库,下面是离散化过程的部分步骤:A11,选取维修措施表中所有各不相同的项usemaintananceselectdistinctweixiucuoshiintoweixiubiaofromweixiujiluA12,对不同的维修措施用不同的代号表示将维修记录表weixiujilu中出现的不同的维修措施weixiucuoshi插入到新表weixiubiao中,接着更新weixiubiao,在筛选出的不同维修措施添加相应的标示ID字符串(不同的代号)以区分:usemaintananceupdateweixiubiaosetweixiucuoshiID='M'+cast(t1.rowIDasvarchar(10))from(selectweixiucuoshi,ROW_NUMBER()over(Orderbyweixiucuoshi)asrowIdfromweixiubiao)ast1wheret1.weixiucuoshi=weixiubiao.weixiucuoshiA13,联合维修措施频数表将weixiubiao和记录各维修措施相应数量的weixiucuoshi_num_desc表左联合得到个维修措施的离散化字符串和相应出现的频数usemaintananceselectweixiubiao.weixiucuoshiID,weixiubiao.weixiucuoshi,weixiucuoshi_num_desc.weixiucuoshi_numfromweixiubiaoleftjoinweixiucuoshi_num_desconweixiubiao.weixiucuoshi=weixiucuoshi_num_desc.weixiucuoshiorderbyweixiucuoshi_numdesc同理可以得到其他几个中文字符项的离散化表,如故障原因描述离散化表,设备品牌离散化表等,得到这些离散化表过后,进行联合操作以取得供规则挖掘程序运行的数据表A14,离散化的各属性值联合usemaintananceselectweixiujilu.yuyue_date,weixiujilu.category,weixiujilu.brand,weixiujilu.xinghao,weixiujilu.guzhangyuanyindaima,guzhangyuanyinmiaoshubiao.guzhangyuanyinmiaoshuID,weixiucuoshibiao.weixiucuoshiIDfromweixiujiluinnerjoinweixiucuoshibiaoonweixiujilu.weixiucuoshi=weixiucuoshibiao.weixiucuoshiinnerjoinguzhangyuanyinmiaoshubiaoonweixiujilu.guzhangyuanyinmiaoshu=guzhangyuanyinmiaoshubiao.guzhangyuanyinmiaoshuorderbyyuyue_dateasc这样就得到了最后进行动态关联规则挖掘的预约日期,设备大类,设备品牌,设备型号,故障原因代号,故障原因描述代号,维修措施代号等这7项目标属性数据。以维修措施为例,其离散化过后的代号以及相应维修措施的频数如表2所示:表2维修措施离散化代号及频数表以故障原因描述为例,其离散化过后的代号以及相应故障原因描述的频数如表3所示,以表3中的显示屏模块损坏为例进行说明,显示屏模块损坏的代号为F1120,频数为12247。表3故障原因频数及离散代号表步骤五,数据分块,对离散化后的数据集D进行分块,传统的一般分成训练数据集和测试数据集。训练数据集是用来挖掘规则或模式的数据集,测试数据集是用来测试模式或规则有效的数据集。由于本实施例研究的是基于动态关联规则的故障信息挖掘,所以本实施例中的分块指将离散后的数据集D按照时间戳进行划分,得到n个子数据集D1,D2,...,Dn,其中,D={D1,D2,...,Dn},从而进行动态的关联规则挖掘。由于本实施例中的分块指将离散后的数据集D按照时间戳进行划分,所述数据集D中每条记录包含一个时间指示属性(即time_id)作为分割数据集D的依据,考察数据集D中与时间有关的项有:购机日期,安装日期,预约日期,受理日期等,本实施例选取的时间为:预约日期(预约日期也可以称为:预约维修日期),因为按照预约维修日期进行划分,得到的子数据集分布比以按照时间进行分割的结果的分布更加合理,均匀,有统计规律。经过SQLServer整理过后,按照预约日期进行划分后的分布结果如表4示:表4故障维修信息时间分布统计表预约日期设备维修频数9/30/201355649/29/201351139/28/20135095...............9/19/201330089/21/20132889本实施例中,如果以购机日期为分割的标准,则时间跨度为1980-2013年,其中,分布在1990年以前的数据只有几十条,显然不符合统计规律。以其他日期作为划分日期也都会有相同的问题,因此本实施例选择的划分日期为预约维修日期,经过划分后,数据集D的分布统计结果如图2、图3、图4、图5所示。步骤六、利用前面新定义的动态关联规则算法对经过划分后的n个子数据集D1,D2,...,Dn进行动态的挖掘,当置信度阈值为50%的情况下支持度从1%到15%依次增加时,挖掘出的频繁项集和关联规则都是逐渐减少的,其中,支持度阈值为15%,置信度阈值为50%时的频繁项集挖掘结果如表5所示,支持度阈值为15%,置信度阈值为50%时的关联规则挖掘结果如表6所示:表5支持度阈值为15%,置信度阈值为50%时的频繁项集挖掘结果频繁项集支持度item:('M219',)0.162item:('C4','M219')0.162item:('B5','M219')0.162item:('B5','M219','C4')0.162item:('B5','C1')0.162item:('FTDES1120',)0.172item:('HTVYY90000',)0.172……item:('B5','HTVYY90000','C4')0.172item:('FTDES1120','B5','C4','HTVYY9000)0.172item:('C2',)0.185item:('C1',)0.192item:('C4',)0.572item:('B5','C4')0.572item:('B5',)0.841表6支持度阈值为15%,置信度阈值为50%时的关联规则挖掘结果关联规则置信度Rule:('B5',)==>('C1',)0.504Rule:('C1',)==>('B5',)0.838Rule:('C4',)==>('B5',)1Rule:('C1',)==>('B5',)0.81Rule:('C4',)==>('B5',)1……Rule:('C2',)==>('B2',)0.671Rule:('C1',)==>('B5',)0.814Rule:('B2',)==>('C2',)0.997其中,表5和表6中的B*为设备品牌代号、C*为设备大类代号,设备品牌代号具体对应的设备品牌如表7所示,设备大类代号具体对应的设备大类如表8所示:表7设备品牌离散化代号及出现频数表8设备大类离散化代号及出现频数由规则:Rule:('B5',)==>('C1',),0.504可知:设备为西门子品牌==>设备为家用空调的置信度为50.4%,也即维修数据中发生故障需要维修的西门子设备中一半是家用空调。可见西门子家用空调的发生故障的概率是西门子所有设备的发生故障中较高的。由规则:Rule:('C1',)==>('B5',),0.838知设备为空调==>设备为西门子品牌的置信度为83.8%,也即发生故障的空调设备有83.8%的概率是西门子品牌的,可见空调中西门子品牌占了大多数。由规则:Rule:('B2',)==>('C2',),0.997知设备品牌为澳柯玛==>设备为冰箱的置信度为99.7%,也即发生故障的澳柯玛品牌设备中有99.7%的概率是冰箱,说明了澳柯玛设备中冰箱占了绝大多数。可以看出,当支持度阈值设为15%时,得到的关联规则是那些密集值属性点规则,因为选取的属性当中,设备品牌只有上标所示的5种,而离散化过后的故障原因有1100多种,离散化代号从F1到F1181,而这些故障原因描述中有超过600条的故障原因出现的频数小于20,粗略估计包含这些故障原因的频繁项集的支持度不会超过20/11000=0.018%。而离散化后的维修措施有585条,代号从M1到M585,其中有超过300条的维修措施才维修措施中出现频数小于20,同理包含这些小众维修措施的频繁项集的支持度也不会超过0.018%;这也就是说,如果支持度阈值设成15%的话大数有关设备维修故障原因和设备维修措施的频繁项集不都不会被保留,相应的包含有这些故障原因和维修措施的关联规则也不会挖掘出来,因为它们已经在生成候选集的一步中由于支持度阈值被剔除掉了。为了更清晰的表现随着支持度阈值的设置对挖掘结果的影响,下面选取了支持度阈值为8%,置信度阈值为50%的挖掘结果作为对照,支持度阈值为8%,置信度阈值为50%时的频繁项集挖掘结果如表9所示:表9支持度阈值为8%,置信度阈值为50%时的频繁项集挖掘结果表9给出了支持度阈值为8%置信度为50%时的48个频繁项集,这次可以发现,由于支持度阈值的减小,一些频数比较大的故障原因和维修措施也能保留下来,成为频繁项结果,其中涉及的代号如表10所示:表10支持度阈值为8%,置信度阈值为50%时结果部分代号解释表支持度阈值为8%,置信度阈值为50%时的关联规则挖掘结果如表11所示:表11支持度阈值为8%,置信度阈值为50%时的关联规则挖掘结果从本次的结果可以看出,由于减小了支持度阈值,频繁项集中更多地出现了有意义的维修措施和故障原因的信息,而不只是设备类别与品牌之间的关联这种信息了。可以发现,B5,C4,M219和FTDES1120之间组成的关联规则的置信度都特别大,以Rule:('B5','C4','M219')==>('FTDES1120',)0.902为例,规则(设备为西门子品牌,设备为电视,维修措施为调试)==>(故障原因为用户使用问题)的置信度为90.2%,说明在该维修数据集中的西门子电视机维修措施是调试的情况下绝大多数是由用户使用问题造成的,而非产品本身的故障问题,从而说明西门子电视机对中国市场应该采用更用户友好的产品介绍或使用说明。当然这个规则高达90.2%的置信度也从侧面说明了上面的故障离散表和维修措施表中排在最前面的FTDES1120和M219的频数是很高的,事实上它们的频数分别为12247,11002。然而这并不是最有意义的结果,能解释确定故障原因和维修措施关联信息的频繁项集和关联规则才是本实施例讨论的重点,因此针对这种只是说明用户问题的频繁项集和关联规则有必要进行剪枝删除。对无意义的规则进行剪枝删除如果放在源程序里处理会由于字符串的判断会在每次的循环中进行,效率低。故可在最后的结果呈现步骤里结合数据库技术去除掉这部分规则,本实施例对这部分意义较小,置信度却很高的规则结果采用的就是用sqllite3数据库,利用数据库强大的查询功能和高效的存储方式进行这些结果的裁剪。这从另一方面说明我们通常用来作为数据挖掘的数据源含有的数据绝大多数是无意义的,只有较少数才具有意义。当然在支持阈值为8%是也挖掘出了其他的较强关联规则,比如:Rule:('M483',)==>('B5','C4')0.774,(维修措施为鉴定)==>(西门子电视)揭示出故障信息中维修措施为故障鉴定时,设备为西门子电视的可能性很大,当然如上面所述,这也不是本实施例期望的有意义的结论。如前面讨论的一样,如果把支持度阈值设置的过大,挖掘出的就全是那些意义不大的关联信息,而数据集里大多数的维修信息和故障原因都需要支持度阈值不超过20/110000=0.00018,综合考虑计算机的运算存储性能和对挖掘结果的准确要求程度,决定以1%作为频繁项集的支持度阈值,50%作为规则的置信度阈值。这样挖掘出的频繁项集和关联规则记录于表12和表13:表12支持度阈值为1%,置信度阈值为50%时的频繁项集部分挖掘结果表12是支持度为1%时的部分频繁项集挖掘结果,左边是频繁项集,右边是相应的支持度。由于支持度阈值降低到1%,所以许多在数据集中出现频数较大的为维修措施或故障描述都在结果中保留了下来,能出现在结果中的故障原因和维修措施在数据集中的的频数不会低于1%*116000=1160。这是一个比较可观的数目,足够说明维修措施与故障信息之间的一些关联关系。如前面所述,为了挖掘更加有意义的关于设备故障和维修措施之间的关系,上面的频繁项集结果特地截取了具体故障和具体维修措施的结果,与客户问题或是调试相关的结果已经略去,不再赘述。以频繁项集item:('FTDES419','C4','M167')0.012为例,频繁项集(419号故障原因:电源板组件损坏,设备为电视,167号维修措施:板类维修有位号-大修)的支持度为1.2%,实际上1.2%的支持度并不能说明电视机电源组件损坏故障与班类维修之间的关联关系很弱,还得看置信度,因为如前面分析的那样,最主要的维修措施或是故障原因都是客户使用问题或是简单调试鉴定这种并不带有太大意义的信息,而具体有意义的维修措施或故障原因描述所占的频数很小,所以1.2%的支持度在本实施例所挖掘的数据上并不是很小的支持度。实际上419号维修措施:电源板组件损坏,在数据中所在频数为1040,而第167号维修措施M167(板类维修有位号-大修)在数据中的频数为3407。其他的频繁项集结果item:('M474','HTVYY10200','C4')0.013说明了电视机类设备与维修措施为有位号的换件的支持度为0.013。频繁项集item:('B5','M427','FTDES908','C1'),0.012说明了西门子品牌的空调设备发生室外控制板无电压故障而维修措施为更换室外机控制板的组合频繁项集在数据集中的支持度为0.012,其他的频繁项集结果如此类推。由1%的支持度阈值产生的频繁项集,在置信度阈值为50%时产生的关联规则部分结果如表13所示:表13支持度阈值为1%,置信度阈值为50%时的关联规则部分挖掘结果可以发现支持度阈值降低到1%时,关联规则中出现了更多有意义的规则结论,而不再只是调试或用户使用问题这类无意义的信息,当然这是由于支持度阈值下降出现了更多的有意义信息的频繁项集引起的。上面截取的部分规则结论特地去掉了和那些无意义信息有关的结论,使讨论的焦点转到特定具体的故障维修规则上来。以Rule:('FTDES523','HTVYY10000')==>('M474','C4')0.857为例,规则(523号维修故障原因:集成电路损坏)==>(维修措施为有位号的换件,设备种类为电视)的置信度为85.7%,说明集成电路损坏的故障中,设备有85.7%的概率是电视机,且相应的为维修措施为有位号的进行部件的更换。同理,Rule:('M348',)==>('C1','FTDES487'),0.838说明规则(维修措施为更换功率模块)==>(设备大类为家用空调,故障原因为功率模块无输出)的置信度为83.8%,这说明了绝大多数需要更换功率模块的维修中是家用空调出现了功率模块无输出的故障。Rule:('M469','C4')==>('HTVYY81000','FTDES357'),0.992规则(469号维修措施:更换单元模块无位号,设备种类为电视机)==>(故障原因为单元模块组件失效)的置信度为99.2%说明绝大多数电视机维修措施为无位号地更换单元模块的原因为单元模块组件失效。这从侧面说明了电视机部件的模块化程度很高,组件失效引起的组件更换的比例很大。Rule:('FTDES908',)==>('B5','M427','HKTYY05208'),0.776,规则(908号故障原因:室外机控制板无工作电压)==>(设备品牌为西门子,维修措施为更换室外控制板)的置信度为77.6%。说明了设备发生室外控制板无电压的故障则很有可能是西门子的设备,且相应的维修措施为更换室外控制板。说明了本数据集中西门子设备是发生室外控制板故障的主体设备。且发生室外控制板无电压故障时的维修措施大多数是直接更换控制板,而非控制板内部的维修。接着,对动态关联规则的生成进行说明:以规则Rule:('FTDES908','M427')==>('B5','HKTYY05208','C1'),0.829为例,展示动态关联规则的生成过程。规则(故障原因为室外机控制板无工作电压,维修措施为更换室外机控制板)==>(设备品牌为西门子,设备为家用空调)的置信度为82.9%。首先得到n(n=30)个子数据集上的该规则的左项的支持度向量,这里给出按预约维修日期分块得到的30个子数据集上的左项频繁项集item:('FTDES908','M427')在2013/09月的1-30日的支持度组成的支持度向量:sv=[0.027,0.038,0.035,0.034,0.046,0.029,0.025,0.026,0.033,0.029,0.030,0.033,0.023,0.031,0.025,0.029,0.035,0.020,0.017,0.017,0.018,0.025,0.023,0.018,0.018,0.017,0.017,0.015,0.016,0.015]设离散化后,设备故障维修数据集D中的记录数M=116391,Mi的数值如表14所示,其中,Mi为子数据集Di中的记录数,i∈{1,2,...30}。表14按预约维修日期分块后的设备维修频数表日期设备维修频数日期设备维修频数9/30/201355649/23/201336229/29/201351139/2/201335819/28/201350959/1/201335789/24/201349919/25/201335149/13/201348189/12/201334229/27/201347149/5/201333639/18/201343909/9/201333299/8/201343309/22/201333279/6/201341949/17/201333029/14/201340089/3/201332539/10/201339849/20/201331949/26/201339529/11/201331819/4/201339509/16/201331189/7/201339429/19/201330889/15/201336319/21/20132829Mi(i∈{1,2,...30})的值从表14中对应得到:比如M7=3942,代表的是2013、09/07这个数据块上的维修记录总数。于是规则左项item:('FTDES908','M427')的支持度可以按定义求得:所以频繁项集item:('FTDES908','M427')在数据集的支持度为2.5%,大于我们设定是支持度阈值1%,所以该频繁项集是会保留下来的。下面是关联规则Rule:('FTDES908','M427')==>('B5','HKTYY05208','C1')的置信度向量:cv=[0.854,0.875,0.796,0.859,0.825,0.843,0.810,0.820,0.800,0.807,0.872,0.850,0.838,0.887,0.813,0.865,0.807,0.831,0.769,0.769,0.865,0.783,0.805,0.705,0.800,0.788,0.825,0.934,0.866,0.815]置信度向量用于描述动态关联规则的置信度在各个子数据集中的分布情况。根据新动态关联规则算法,组成规则的全项的支持度向量以及左项的支持度向量和规则置信度如下:sRi=[0.023,0.033,0.028,0.029,0.038,0.024,0.021,0.021,0.026,0.023,0.026,0.028,0.019,0.027,0.020,0.025,0.028,0.017,0.013,0.013,0.016,0.020,0.018,0.012,0.015,0.013,0.014,0.014,0.014,0.012]sRLi=[0.027,0.038,0.035,0.034,0.046,0.029,0.025,0.026,0.033,0.029,0.030,0.033,0.023,0.031,0.025,0.029,0.035,0.020,0.017,0.017,0.018,0.025,0.023,0.018,0.018,0.017,0.017,0.015,0.016,0.015]其中为规则中左项的支持度和支持度向量,也就是频繁项集item:('FTDES908','M427')的支持度和支持度向量。sR,sRi为规则中的左右全项组成的频繁项集的支持度和支持度向量。由此得出关联规则Rule:('FTDES908','M427')==>('B5','HKTYY05208','C1')的置信度为82.9%,是大于置信度阈值50%的,认为是强关联规则。这个说明规则如果设备发生故障的原因为室外机控制板无工作电压,且维修措施为更换室外机控制板,那么该设备品牌为西门子的家用空调的可能性高达82.9%。从上面对动态关联规则的挖掘过程可知,动态关联规则算法计算评价频繁项集和关联规则的优点在于:当时间变化时,原来满足支持度阈值和置信度与指导的强关联规则有可能不在满足支持度阈值和置信度阈值,不再是强关联规则。可以看出,当前频繁项集的支持度和关联规则的置信度与当前的时间段time_id紧密相关,当前频繁项集的支持度为该频繁项集在之前的时间段上的支持度向量与相应的时间段上的信息记录数占整个记录数比值的点积,频繁项集的支持度不仅与支持度向量有关还与时间段上的记录数占记录总数比值有关。同理当前关联规则的置信度为组成该关联规则的全项频繁项集在之前的时间段上的形成的支持度与该关联规则的左项频繁项集在之前的时间段上的形成的支持度之比值。以上的动态关联规则结果只是本实施例数据挖掘结果的一部分,更多的结果可通过基于web的可视化界面展示。本实施例中,还需要考察挖掘出的频繁项集或关联规则是否具有意义,抑或说是否是有趣的,这就需要对挖掘的动态关联规则进行评价,本实施例中,对动态关联规则的评价用到了不仅是常规规则关联评价方法中的支持度和置信度,还加入了反映动态时间变化的支持度向量和置信度向量作为综合评价动态关联规则的依据;本实施例中,可以利用柱状图分析和时间序列分析两种方法对这两个向量进行分析得到有关规则的更详尽的信息。同时,在利用生成的动态关联规则进行分析预测时,也需要用验证数据集对动态关联规则的动态回归系数进行误差的计算,以此评价动态关联规则的动态特性的准确程度。1)柱状图法,支持度向量和置信度向量的柱状图可以清楚地描述规则支持度和置信度的分布情况;并且可以定性的反映规则支持度和置信度随时间的变化的情况,根据定义,可以发现支持度和置信度的变化趋势是相同的,因此,仅仅需要绘制其中一个向量的柱状图就可以。仍以关联规则Rule:('FTDES908','M427')==>('B5','HKTYY05208','C1')为例,该规则在时间区段09/01/-09/10的置信度向量和全项的频繁项集支持度向量为cv'=[0.854,0.875,0.796,0.859,0.825,0.843,0.810,0.820,0.800,0.807]sv'=[0.023,0.033,0.028,0.029,0.038,0.024,0.021,0.021,0.026,0.023]则可以绘制该关联规则的置信度向量,如图6所示,及组成该关联规则的全项频繁项集的支持度向量的柱状图,如图7所示。规则Rule:('FTDES908','M427')==>('B5','HKTYY05208','C1')的全项频繁项集item:('FTDES908','HKTYY05208','B5','M427','C1'),由支持度故可得其频数分布图如图8所示。从图8中可以发现支持度在以10为周期的一个周期内先上升在下降,接着在进行下一个周期的上升和下降。它表明该规则是一个频数周期下降趋势的规则,规则(设备发生故障的原因为室外机控制板无工作电压,维修措施为更换室外机控制板)==>(设备品牌为西门子,设备为家用空调)的置信度成下降趋势,说明西门子空调占发生室外控制版无电压的故障的设备的百分比逐渐下降,这可能是西门子空调在空调市场的比率逐渐下降的缘故。这种通过支持度在实际应用有很好的效果,如果不考虑各时间划分块的信息数目差异,从置信度或支持度向量的柱状图中找到下降的趋势、周期性的趋势,一个下降的趋势表明规则的实效性不好,应用效果将较差,一个周期性的趋势表明规则并不是稳定的只有符合它的变化周期的应用才会有很好的效果。2)时间序列分析时间序列分析是在描述数据变化和预测数据趋势中应用比较广泛的一种方法。如果一个支持度向量以规则出现的频数表示,并且含有足够的元素,它可能就适合时间序列分析.仍以上面的规则Rule:('FTDES908','M427')==>('B5','HKTYY05208','C1')为例,该规则的全项频繁项集item:('FTDES908','HKTYY05208','B5','M427','C1')在时间分块为09/01-09/30的时间分块上的支持度向量为sv”=[0.023,0.033,0.028,0.029,0.038,0.024,0.021,0.021,0.026,0.023,0.026,0.028,0.019,0.027,0.020,0.025,0.028,0.017,0.013,0.013,0.016,0.020,0.018,0.012,0.015,0.013,0.014,0.014,0.014,0.012]而且已知各分段时间块上的信息数目,表示为频数向量如下:num_block==[5564,5113,5095,4991,4818,4714,4399,4330,4194,4008,3984,3952,3950,3942,3631,3622,3581,3578,3514,3422,3363,3329,3327,3302,3253,3194,3181,3118,3088,2829](4-10)则可算出频繁项集的支持度向量为:那么,可以建立一个时间序列回归模型描述该规则全项频繁项集的频数变化过程,记为f(i),于是从f(i)可以发现规则的支持度在该时间段内的趋势,并且可以利用该回归公式预测未来的支持度。利用时间序列分析,可以找到规则支持度或置信度的定量模型,它能够给出比柱状图更加精确的信息,最为重要的是可以预测规则的发展趋势。利用支持度进行预测是可行的,本实施例考虑了关联规则的动态特性,通过分割挖掘数据集的方式,挖掘不仅包含支持度和置信度,而且包含支持度向量和置信度向量的关联规则.这种规则可以提供自身随时间变化的信息,能够预测规则的发展趋势,具有普通关联规则所不具有的功能。时间序列回归模型的回归表达式为:Xt=a1Xt-1+a2Xt-2+a3Xt-3+a4Xt-4+....anXt-nXt为序列当前时间的值,其由前n项值成该线性关系,通常右边会有噪声加入以检验其时移抗扰动性。其中若已知支持度向量:SV=[f1,f2,...fn]则可根据以下公式计算出相关系数:由于上文已经给出支持度向量:故可调用相关数学工具进行计算,在Matlab中运行以下程序,进行自回归和往前的预测:x=load('support_num.txt')y=aryule(x,4)%4ordermodel%y[n]=a1y[n-1]+a2y[n-2]+...a=lpc(x,3)%canpredictthenextvalueusingprevious3valuesest_x=filter([0-a(2:31)],1,[x,rand])%1-Dfilteringest_x(end)%theendvalue,alsothepredictvalueplot(x)%plottheoriginalvalueplusthepredictedvalueholdonplot(est_x,'r')%redtomarkplot(length(est_x),est_x(end),'*g')%highlightthepredictedvalueext_2=filter([-a(2:end)],1,x)%anothermethodtopredictisequal(ext_2(end),est_x(end))%comparethetwomethods如果以前29天的支持度向量进行自回归,可以对第30号的支持度向量进行预测,运行上述程序可得到预测值:est_x(end)ans=31.807另外用LeastSquare和BurgMaximumEntropy两种方法分别可求得时间序列回归模型各阶回归的系数,如表15和16所示。表15BurgMaximumEntropy法系数表16L(LeastSquare)法回归系数根据上面表格的系数值可以进行回归和预测,进行回归与预测的曲线拟合如图9所示,根据图9所示结果,可得预测的第30个值与实际值的误差为:可以看见,3.5%的预测误差是可以接受的,于是便可以利用该序列前某些序列值求得后面的序列值。同样对于挖掘出的关联规则,也可以按照前面思路用置信度柱状图分析其上升下降趋势,用时间序列回归模型对已有的置信度向量进行回归分析,并可进行预测。本实施例还利用Django框架提供了一种数据挖掘可视化系统,对挖掘结果进行可视化展示,Django框架的工作原理图如图10所示,Django是一个开放源代号的Web应用框架,它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,并于2005年7月在BSD许可证下发布。Django框架的核心组件有:(1)用于创建模型(Model)的对象关系映射;(2)为管理员用户设计的完美管理界面;(3)一流的URL设计;(4)设计者友好的模板语言;(5)缓存系统。Django是一个基于MVC构造的框架。但是在Django中,控制器接受用户输入的部分由框架自行处理,所以Django里更关注的是模型(Model)、模板(Template)和视图(Views),称为MTV模式,他们各自的职责如表17所示:表17Django框架各层次职能Django视图不处理用户输入,而仅仅决定要展现哪些数据给用户,而Django模板仅仅决定如何展现Django视图指定的数据。或者说,Django将MVC中的视图进一步分解为Django视图和Django模板两个部分,分别决定“展现哪些数据”和“如何展现”,使得Django的模板可以根据需要随时替换,而不仅仅限制于内置的模板。至于MVC控制器部分,由Django框架的URLconf来实现。URLconf机制是使用正则表达式匹配URL,然后调用合适的Python函数。URLconf对于URL的规则没有任何限制,完全可以设计成任意的URL风格,不管是传统的,RESTful的,或者是另类的。框架把控制层给封装了,无非与数据交互这层都是数据库表的读,写,删除,更新的操作。在写程序的时候,只要调用相应的方法即可。本数据挖掘系统的前端可视化部分采用的基于Django的web架构,主要有以下几个部分:1)模板页面Django_base.html的设计,是所有也面对模板,其他页面是在本模板上加上blockcontent形成的。2)视图文件(view.py)的编写;Django具有“视图”的概念,用于封装负责处理用户请求及返回响应的逻辑。通过下面的链接可以找到你需要知道的所有关于视图的内容。3)模型文件(models.py)的编写Django提供一个抽象层(Models)以构建和操作web应用中的数据,4)AdmindAdmin界面的设计,管理员身份的验证和登录等所述数据挖掘可视化系统的界面包括:1)管理员登录界面,登录界面具有账户管理,后台数据管理等功能,针对models.py定义的数据模型可以执行增加,删除,修改等操作,如本实施例针对呈现故障维修信息建立了频繁项集数据模型和关联规则数据模型,如下所示。在登录页面的右上方还有欢迎,历史数据操作记录和注销等菜单功能。2)日期链接页面,如上面动态关联规则算法所述,根据预约维修日期对获取的设备故障维修信息数据集D进行分割,可以将所有数据划分到2013年9月的30天中。进入主界面后点击日期导航链接,可以链接到具体的某一天频繁项集和关联规则的挖掘结果界面。也就是前面动态关联规则相关信息中的时间块上的各自挖掘结果。所以主页面下面有30个按钮可以连接到这30天的详细数据页面中,接着下面是一个查询框,用户可以键入频繁项集或是关联规则,点击确定则会出现包含该项的结果列表。3)详细结果界面,如图11所示,由日期链接进入该日期的详细结果页面,就可见该日期下的挖掘结果列表,结果可为该日期的下的关联规则或频繁项集如下图所示为选日期为09/08时的挖掘详细结果页面。4)查询页面,如图12所示,在日期下面有一个搜索框,可以在里面键入频繁项集或是关联规则进行匹配查询,查询到的结果会以列表的形式呈现,被匹配的频繁项集会和分块日期,在该分块上的支持度向量或该频繁项集一起呈现出来,被匹配的关联规则会和分块日期,在该分块上的置信度向量和该关联规则一起呈现出来。下面是当搜索M507时相应的规则挖掘结果。5)柱状图分析界面选定某条规则,如果其在09/01-09/30内每天均有日期记录,则可将该日期对应的置信度以柱状图的形式显示出来,供发现周期,趋势预测等进一步挖掘,如图13所示是某条规则在09/01-09/30内的置信度柱状图。本实施中,将挖掘出的频繁项集和关联规则通过可视化界面呈现给用户,便于用户进行查看,同时便于用户进一步进行考察,以发现设备故障和维修措施之间的相互关联模式和依存规律。以上所述是本发明的优选实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1