论文部分内容阅读
海量数据的数据量庞大,结构不一致和维度较多的特点,对于数据挖掘算法提出了新的需求:结果的有效性高,算法执行速度快,便于处理复杂数据格式。为了解决这些问题。本文应用经典的算法Apriori和MapReduce机制,在NoSQL数据库上,提出了一种Apriori改进算法-MDR-XHapr。首先,介绍MapReduce机制,MapReduce是一种便于分布式处理的计算框架,应用MapReduce框架,能够针对分布式数据库进行高效计算,充分利用计算机的运算能力。针对传统Apriori算法进行了分析,总结了传统Apriori算法的主要问题:候选集筛选和数据库扫描。同时对于算法的一些改进进行了分析。针对关联规则算法在并行分析过程中的性能瓶颈,总结出四点需要解决的问题:候选集问题,数据库扫描,结果有效性,并行化算法设计。随后,本文提出了MDR-XHapr算法。根据适应MapReduce机制的算法特点,对于Apriori算法进行改进,从而得到针对兴趣项集的MDR-XHapr算法。该算法使用键值对作为存储形式,能够存储异构数据。在数据导入过程中直接对数据进行筛选处理,将无效数据直接舍弃而不占用数据库存储空间,能够有效解决了数据冗余存储和类型复杂的问题。通过MapReduce框架,将传统的迭代算法进行优化,分解成三个部分Map(兴趣项集获得),Reduce(计数累加),Finalize(阈值筛选),将算法并行化运行在分布式数据库上,通过一次数据库的全局扫描,有效减少传统Apriori算法在大数据集上数据库扫描的开销。针对频繁项集挖掘最终结果的分析,提出了有关兴趣项集的概念。通过不使用迭代的兴趣项集提取,在保证了结果有效性的同时减少了候选集数量。最后,在NoSQL数据库MongoDB上,对MDR-XHapr算法进行了测试。采用了三种数据集:UCI标准数据集Adults和Illness,以及中国沿海13个海洋台站的真实海洋数据。使用Adults和Illness项集,在单机环境和分布式环境下对算法进行测试。实验表明,MDR-XHapr能够明显地减少候选集数量,只通过一次数据库全局扫描就可以得到兴趣项集,提高了算法的效率。使用海洋数据,针对于沿海行业比较感兴趣的维度进行兴趣项集挖掘。得到的结果与近几年的气象观测结果作比对,结果真实有效。证明了算法在实际数据上的可应用性。