作者:付蓉
来源:《科技创业月刊》 2017年第5期
付蓉
(湖北工业大学湖北武汉430068)
摘要:随着计算机技术和互联网的飞速发展,Web2.0的成熟与广泛应用,数据呈现爆炸式增长,传统的数据挖掘算法在处理海量数据时效率低下,云计算的出现为其改进带来了新的方式。云计算通过集群威力,实现了对海量数据的可靠存储和高速计算。Hadoop作为一款比较成熟的开源云计算框架,以其高效、可扩展、低成本等优点在数据挖掘的相关领域得到了广泛应用。通过对改进算法的详细阐述和设计,结合实例论证了改进算法的可行性,并对改进算法进行了分析。通过实例分析,得到改进算法具有更高的效率,降低了时间复杂度和空间复杂度。云计算给数据挖掘算法的改进带来了新的方式,数据挖掘将成为未来的研究趋势。
关键词:Hadoop;Apriori;云计算;数据挖掘
中图分类号:TP311.13文献标识码:Adoi:10.3969/j.issn.1665-2272.2017.05.008
1数据挖掘的应用
目前,随着计算机技术和互联网的飞速发展,已经有许多企业利用Hadoop来搭建自己的分布式平台,并且进行高效能的数据挖掘处理工作。将现有算法运用到Hadoop开源平台来实现大数据背景下的数据挖掘工作具有十分重要的研究意义以及巨大的应用价值和广阔的扩展空间。
随着人们获取数据技术的不断进步,许多机构和企业已经手机存储了规模巨大的商业以及科学数据,如何利用数据挖掘技术从这些大规模数据中获取知识已经成为了重要的研究领域。
在科学研究领域,李晓飞等对Hadoop平台的关联法则挖掘策略进行了研究,结果表明,这种算法具有一定加速比。吴起等人提出一种基于逻辑运算的Apriori算法,这种方法通过Map函数逐个交易记录的候选项集,将项集进行二进制的编码,通过逻辑运算来得到候选集,该算法虽然计算高效,但中间手动编码的过程繁琐。李莉等人提出了一种基于Hadoop的关联规则挖掘算法,将整个关联规则的挖掘技术移植到并行环境中进行,效率高,但过程死板,无额外提高改进。林长方等人提出了一种固定多阶段的Apriori算法挖掘策略,该算法通过一轮迭代产生多个项集的挖掘,突破了一般的一轮增加一个项集的传统,但是无法预测最终需要多少轮的迭代,并且需要回溯,造成不必要的额外开销。
2Apriori算法的分析与设计
实现各种算法在Hadoop平台上的并行化是基于Hadoop的数据挖掘系统的基本要求,基于对Apriori算法的详细阐述,针对其存在的不足,以及该算法具有并行化的可能性,提出了基于数据库划分的思想对Apriori算法进行改进,并对改进算法进行了详细阐述。
2.1算法分析
运用Apriori算法扫描存储海量的数据库时将耗费大量的时间和内存空间,这成为了Apriori算法的瓶颈。虽然有很多并行方案,但随着数据规模的增大,传统的并行方案因资源需求过大或通信消耗过多而变得低效。
2.1.1二阶的乘积
在实际开发的时候,需要编写Map函数与Reduce函数,执行的一些细节。提交Job后,数据会进入HDFS中,按行读取,一行一行地扫描,根据设置的Block的大小,将欲处理的数据split成若干个块。每一块数据各自运行自己的Map程序。Map任务的执行是通过TaskTracker来控制的,它会分配若干个子Map小任务,每个小任务被TaskTracker指定在一个缓冲区内执行,每一个缓冲区都会输出一个结果。在Map任务执行完后,需要将Map的结果输出到Reduce端,这时就有一个抓取数据的过程,即shuffle过程。在该过程下,Map数据集,会按照一定的步骤从Map端移动到Reduce端,TaskTracker会将这个通知给JobTracker进程。Partition过程是对Reduce的结果进行一定的归类,这个是由TaskTrack调用Partition函数,对划分的结果输出到不同的输出文件中。在Reduce端里,接收来自不同Map端传来的数据后,这个时候因为前面Combine和Partition过程,数据内部已经基本有序,TaskTracker再调用Reduce函数,对相应的键值,进行进一步的合并,将不同块内对应相同Region值放到一个输出文件中,最终将结果写入到HDFS里。在整个MapReduce过程中,数据的写入写出都是HDFS里进行。
2.1.2二阶组合
分析:从生成的节点集合,可以看出,节点集合中根据不同交易单号,这里出于实验采用的是0,1,2,3,4,5,6,7,8,不同的单号对应的二阶构成的项目集合有多个,但是在实际表示中,交易项目的排列顺序最好统一,比如交易单号为0的I5I2,可以表示为I2I5,而交易单号3的一个交易集合为I4I2,与交易单号1的I2I4其实是一笔相同的交易,需要进行一定的调整,方便统计。
结果是不符合条件的,需要剔除。
算法在一开始,判断出来,只需要进行三轮遍历,即可得到最大项目集合,通过运行编译,满足条件的最大项目集合是I1I2I3,I1I2I5。
这里求解出对应各个最大项目集合的子集,每个最大项目集合的子集,可以看出分为一阶的单项目集合二阶的多项目集合,在求解强规则的时候就可以根据前面的统计数据求得。
根据这个可以简单的计算,求得满足条件的强规则:
I1&&I5-->I2confidence=2/2=100%
I2&&I5-->I1confidence=2/2=100%
I5-->I1&&I2confidence=2/2=100%
通过分析,置信度大于50%的组合有(I1I5,I2),(I2I5,I1),(I5,I1I2),这几个项目组合是最有利的商品组合。
2.2算法改进
优化以后的Apriori算法在最大结果项目集长度越大,优势也越明显。
3总结
在对国内外数据挖掘算法、分布式技术以及基于Hadoop的分布式大数据挖掘应用介绍后,针对传统算法Apriori算法和Canopy算法的单机运算瓶颈,尝试利用Hadoop平台进行分布式并行融合。针对Apriori算法在Hadoop框架下的候选项集的支持数统计效率较低的问题尝试进行改进,以期利用并行优势,提高Apriori算法的运算效率。在利用Hadoop平台对Canopy算法分布式融合之后,尝试通过对不同距离度量方式对Canopy算法的运行速度和聚类效果进行对比分析,以期获得最优距离度量方式,并在分布式环境下获得最大运算效率。
参考文献
1史宝明,贺元香,张永,等.多特征融合的博文排序算法[J].计算机应用与软件,2013(7)
2王锡刚,王正,陈虎.关于搜索引擎的中文分词与页面排序的研究[J].计算机应用与软件,2013(9)
3平宇,向阳,张波,等.基于MapReduce的并行PageRank算法实现[J].计算机工程,2014(2)
4舒琰,向阳,张骐,等.基于PageRank的微博排名MapReduce算法研究[J].计算机技术与发展,2013(2)
5JeffreyDean,SanjayGhemawat.MapReduce:SimplifiedDataProcessingonLargeClusters[R].SixthSymposiumonOperatingSystemDesignandImplementation,2004
(责任编辑晓天)
因篇幅问题不能全部显示,请点此查看更多更全内容