基于 Apriori关联规则算法的消防大数据分析方法研究
2017-03-09◆张婷
◆张 婷
(湖北省消防总队 湖北 430061)
基于 Apriori关联规则算法的消防大数据分析方法研究
◆张 婷
(湖北省消防总队 湖北 430061)
本文运用消防云大数据平台,通过Hadoop的相关组件,构建了分布式大数据采集分析框架,研究建立Apriori关联规则算法对已输入保存的大规模消防火灾数据进行计算分析,力图找出火灾发生因素之间的关联关系。
Apriori关联规则;算法;大数据;消防
0 引言
随着我国经济的发展,城镇化建设加快步伐以及消防力量的有限,给消防部队防火和灭火提出新的挑战。随着消防信息化建设水平的不断提高,我国消防数据以惊人的速度增加,对于这些消防火灾的大数据,如何加以采集、存储与分析利用,结合大数据的计算技术找出火灾发生的关键因素之间的某些关联规则与客观规律为我所用,成为急迫的当务之急。
1 MapReduce分布式计算框架下的消防大数据分析建模
MapReduce把对大规模数据集的操作,分发给一个主节点管理下的各个分节点共同完成,然后通过整合各个节点的中间结果,得到最终结果。
MapReduce分布式计算框架模型中,通过JobTracker通过任务调度,将Apriori关联规则算法计算分配给每一个TaskTracker,TaskTracker将进行模型Apriori关联规则算法计算火灾数据,其计算结果通过调用的方式进行汇总,提高处理效率。
Apriori关联规则算法判定条件:支持度(Support)和置信度(Confidence)
设I={i1,i2,…,im}是一个项目集合,事物数据库D={t1,t2,…,tn}是由一系列具有唯一标识TID的事物组成,每个事物ti(I = 1, 2, … , n)都对应I上的一个子集。
例如在火灾记录中,I是全部火灾因素的集合,D是火灾出现的因素,每个元组ti是一次火灾的因素集合,它便是I的一个子集。
如果一个项目集A⊂I,则它在D上的支持度是包含A事物集在D中所占的百分比。关联规则是形如X⇒Y的逻辑蕴含式,其中X⊂I,Y⊂I,且X∩Y=∅。如果事务数据库D中有s%的事务包含X∪Y,则称关联规则X⇒Y的支持度为s%。
若还是有上定义在I和D形如X⇒Y关联规则,它的置信度是指包含X和Y的事物数与包含X的事物数之比,给定全局项目集I和数据库D ,D中所有满足指定的最小支持度(MinSupport)的项目集,即大于或等于MinSupport的I的非空子集,称为频繁项目集(频集)。在频繁项目集中挑选出所有不被其他元素包含的频繁项目集称为最大频繁项目集(最大频集)。
在I上满足最小支持度和最小置信度(MinConfidence)的关联规则称为强关联规则。
假设考虑项集{A,B,C,D,E},这些项集任意的排列组合将会产生25=32项集组合,而每个项组合都是一个产生规则的可能候选项集。
由此可见在产生如此大量的规则,而这些规则大部分可能并不是都为我们所需要的,所以在产生的规则中我们需要筛选出那些支持度、置信度较高的强相关规则[3]。
2 Apriori关联规则算法模型
首先,将循环数据集,将其中所有的1阶项集全部找出来,根据预先设定的最小支持度阀值找出1阶项集中的频繁项集,记为I1。然后通过上步的1阶频繁项集计算2阶候选集C2,同样筛选出满足条件的2阶频繁项集,记为I2;重复上面的步骤,直到根据 IK-1所产生的候选 CK中的所有项集支持度都小于最小支持度,即不再有频繁项集产生为止。
不断重复迭代的过程中,关于生成候选项集与置信度判断涉及到“连接”与“剪枝”两个部分。我们先看看 Apriori算法的重要性质:一个项集是频繁的,它的所有非空子集都必须是频繁项集。
连接是指由lK生成CK-1候选集的过程,lK自身与自身连接,连接的条件是两个K项集合前k-1项相同,第K项不同。lK自身连接的目的是通过已知的频繁项集构成长度更大的项集,这样项集为频繁项集的概率更大,从而减少了计算量。
在连接下,还是会产生非频繁的候选项集,剪枝指的就是剔除这些非频繁的候选项集。对任意候选频繁项集 CK,如果其有k-1项子集不是频繁的,则可以剔除此候选项集。
推导强规则方法:
对于每个频繁子集(除了项集 )I,找出项集所有的非空真子集;
对于I的每一个子集s,形成一个规则s ⇒ I-s;
对于每一个规则R,计算它的置信度conf(R) =sup(I)/sup(s) ;如果conf(R)≥min_conf,则选取R为强规则。
3 消防云大数据平台上的Apriori关联规则算法实现
3.1 消防云上构建Hadoop大数据 cluster
在省级消防云上,利用云的管理工具开设三个计算空间,分别在三个节点空间上安装 JAVA并配置环境变量,使用:java version "1.8.0_141",安装Hadoop 2.7.3。
配置集群文件- etc/hadoop/core-site.xml, etc/hadoop/hdfs-s ite.xml, etc/hadoop/yarn-site.xml and etc/ hadoop/mapred-site.xml,etc/hadoop/slaves.
启动 Hadoop,查找进程,主节点 yuh1有 ResourceManager、NameNode、SecondaryNameNode;其他节点中 NodeManager、DataNode进程,Hadoop大数据环境搭建成功。
3.2 MapReduce计算框架下的Apriori算法实现
将2中的Apriori中算法过程,结合MapReduce模型:
String terms[]=value.tostring() .split(“,”)
对于第一次计算输入map的key为火灾标识,value为火灾因素,以逗号隔开的形式。输出以火灾因素为新的标识 key,整数1为value,输出的结果再经过reduce计算,输出结果key为火灾因素标识,value为求和数据,其中抛弃小于最小支持度数据,结果再经过计算,得出火灾因素关联关系。
3.3 大数据实例分析
从某省消防云大数据平台的火警实时受理及出警系统中抽取近3年(2013年1月-2017年6月)火灾数据构成分析计算的大数据实例集。由于数据涉及保密,选取常见的火灾因素抽象成数字 1,2,3,4,5;火灾类型名称抽象成T100,T200,T300,T400;最小的支持度定义如0.5。
第一次扫描,因素1,出现次数为2次,2为3次,3为3次,4为1次,5为3次,表示为C1: {1}:2, {2}:3, {3}:3, {4}:1, {5}:3 ,其支持度分别是0.5、0.75、0.75、0.25、0.75,去掉支持度<0.5的,变成F1: {1}:2, {2}:3, {3}:3, {5}:3
得到数据,作为第二次计算的输入数据因素 1,2同时出现为1次,1,3同时出现为2次,1,5同时出现为1次,2,3同时出现2次,2,5同时出现为3次,3,5同时出现为2次,表示C2: {1,2}:1,{1,3}:2, {1,5}:1, {2,3}:2, {2,5}:3, {3,5}:2,得到支持度为0.5、0.75、0.75、0.75,去掉支持度<0.5的得到F2: {1,3}:2, {2,3}:2, {2,5}:3,{3,5}:2
在这里要用到 Apriori算法的性质:K+1项频繁集的任意 K项频繁集必须是频繁的,也就是说如果K+1项频繁集中如果有一项K项频繁集不频繁,那么K+1项频繁集也是不频繁的。
进行第三此扫描同时出现2,3,5为2次表示为C3: {2, 3, 5}:2,其支持度为0,5,
得到最后的关联规则。
为2时,同时出现3的支持度为0.5,置信度为0.6666667;
为3时,同时出现2的支持度为0.5,置信度为0.6666667;
为3时,同时出现5的支持度为0.5,置信度为0.6666667;
为5时,同时出现3的支持度为0.5,置信度为0.6666667;
为2时,同时出现5的支持度为0.75,置信度为1;
为5时,同时出现2的支持度为0.75,置信度为1
为2时,同时出现3和5的支持度为0.5,置信度为0.6666667;
为3和5时,同时出现2的支持度为0.5,置信度为1;
为3时,同时出现2和5的支持度为0.5,置信度为0.6666667;
为2和5时,同时出现3的支持度为0.5,置信度为0.6666667;
为5时,同时出现2和3的支持度为0.5,置信度为0.6666667;
为2和3时,同时出现5的支持度为0.5,置信度为1。
3.4 实例分析结果
定义最小置信度定义为0.8,分析结果如下:
同时发生2,5的概率为0.75,发生2的时候发生5的概率为1。
同时发生2,5的概率为0.75,发生5的时候发生2的概率为1。
同时发生2,3,5的概率为0.5,发生{3,5}的时候发生2的概率为1。
同时发生2,3,5的概率为0.5,发生{2,3}的时候发生5的概率为1。
4 结束语
造成火灾的原因比较,涉及因素多,例如气象、建筑结构、人员素质等等,若将这些因素也列入 Apriori关联规则算法的项目集合中,还需要更加丰富的专业知识,并通过大量数据学习训练,调整 Apriori项目集合,更好地找到因素之间的关联规则。因此,下一步的研究工作将集中在优化算法模型,提高算法效率。
[1]楚志勇,侯遵泽.基于 Dijkstra算法的乡镇消防站选址问题[J].中国安全生产科学,2011.
[2]严珍珍,邢立宁,陈英武.蚁群算法求解消防站的选址问题[J].科学技术与工程,2011.
[3]朱海.基于关联规则 Apriori算法的作业风险预警研究[D].吉林:吉林大学,2014.