论文部分内容阅读
随着“互联网+”时代的到来,产生的数据量呈指数性爆发,涵盖了各种非结构化数据。如何从多变的、复杂的海量数据中找到有意义的模式和规则,来解决科学、医疗、能源、商业、政府管理、城市建设等领域的问题成为重点。数据挖掘是统计学、数据库、机器学习、人工智能等多领域的融合,但是传统的数据挖掘处理及改进的方式大多串行连接在单机上,由于单机处理能力有限且内存不足,处理效率低下,并不适合大规模数据的挖掘工作。在这种情况下,基于Hadoop的并行数据挖掘成为新的研究热点。Apriori算法是关联规则挖掘最为经典的算法,Apriori算法通过逐层迭代方式,采用串行自连接和剪枝操作来挖掘频繁项集。Apriori算法的缺点是重复扫描数据库,产生大量的候选集,算法效率较低。基于MapReduce的并行Apriori算法解决了传统Apriori算法多次扫描数据库的问题,但是其候选集仍然由频繁项集经过串行自连接产生,并产生大量的候选集中间数据。本文重点讨论了如何提高基于MapReduce的Apriori算法挖掘频繁项集的效率,对连接步进行并行化改进,提出大数据环境下挖掘频繁项目集的一种改进算法—C_Apriori算法。该算法通过Map、Reduce过程从频繁k-项集中并行得到k+1项候选集Ck+1,使得Apriori算法产生频繁项集的整个过程并行化,减少了迭代过程中候选集数目数量,节约了存储空间和时间开销。通过时间复杂度进行分析比较,C_Apriori算法在处理大规模数据时会大大减少连接步的时间消耗。本文最后,使用HBase数据库,设计基于Hadoop的并行数据挖掘系统,并将C_Apriori算法在Hadoop并行数据挖掘系统进行了测试,结果表明改进算法在大数据和较小支持度环境下都具有更高的效率,且能取得优异的加速功能。该方案在某科技公司的智慧社区系统中得到成功应用。