论文部分内容阅读
序列模式挖掘是数据挖掘中的一个重要研究课题,其最早在1995年被Agrawal和Srikant提出。与其他的数据挖掘算法相比,序列模式挖掘算法主要是基于有序的数据集来挖掘出现频率高的序列模式,它具有实用性和易于理解的优势,因此受到了国内外专家学者的广泛的关注和深入的研究,其应用范围也从最初的购物篮分析扩展到自然灾害的预测、DNA序列分析、疾病诊断等诸多领域。序列模式挖掘从其被提出到现在,产生了很多经典的算法。其中应用最为广泛的是PrefixSpan算法。该算法采用前缀投影技术,能够有效地避免候选项集的产生,在一定程度上提高了挖掘的效率。然而PrefixSpan算法也有一些缺点,它需要构造大量的投影数据库,构造投影数据库不仅需要消耗巨大的内存,而且增加了扫描时间,降低了挖掘效率。针对这个问题,本文对PrefixSpnan算法进行了改进,提出了一种基于隔层投影的BLSPM算法,该算法可以大大减少投影数据库的构造数量,从而提高挖掘效率。此外该算法提出序列模式值的概念,通过计算每个频繁序列的序列模式值,然后按照序列模式值的大小对挖掘结果重新排序,使之能够找到最重要的序列模式。最后采用实验验证,分别从不同支持度、不同类型的数据集、不同大小的数据集三个方面来验证BLSPM算法的挖掘效率。此外,针对BLSPM算法在大数据集下的挖掘效率较低的问题,本文提出了基于Map-Reduce的BLSPM算法,并选取了超市的商品摆放作为应用实例来验证基于Map-Reduce的BLSPM算法的实用性和有效性。本文的主要工作及创新点如下:(1)改进PrefixSpan算法,提出BLSPM算法。首先进行有效的剪枝,即在构建投影数据库时,如果序列模式中支持度小于最小支持度时,对其剪枝,将它们从序列数据库中删除,这样可以减少部分投影数据库的扫描时间。其次,提出一种隔层投影的方法,即在挖掘长度为奇数的序列模式时,按照原来的方式构造投影数据库;在挖掘长度为偶数的序列模式时,不用构造投影数据库,取而代之构造一个下三角的M矩阵,这样可以大大的减少投影数据库的构造数量,从而可以减少投影数据库的扫描时间。最后引入“序列模式值”的概念,将该算法的挖掘结果按照“序列模式值”的大小进行重新排序,从而能够找到最重要的序列模式。(2)通过实验验证BLSPM算法效率。首先对比两种算法的挖掘结果,得出BLSPM算法能够找到最重要的序列模式,从而更符合实际需求。其次分别从不同支持度、不同类型的数据集、不同大小的数据集三个方面进行实验,验证BLSPM算法在效率和性能上优于PrefixSpan算法。(3)将BLSPM算法Map-Reduce化。在实际的应用中,当面对海量的数据集时,BLSPM算法挖掘效率也面临瓶颈,因此提出了基于Map-Reduce的BLSPM算法。该算法采用分布式处理的方式,将大数据集均衡划分为多个小数据集,并在每个节点上并行的进行序列模式挖掘。该算法可以分为五步:数据分片,并行计数,构建下三角矩阵,均衡分组,并行挖掘。最后通过实验验证基于Map-Reduce的BLSPM算法的效率。第一组实验验证算法在单机和hadoop平台上加速比,第二组实验验证算法在不同大小数据集下的挖掘效率。通过两组实验得出,基于Map-Reduce的BLSPM算法能够提升在大数据集下的挖掘效率。(4)将算法应用到超市商品摆放的案例中。为了验证算法实用性,将基于Map-Reduce的BLSPM算法应用到实际的案例中,首先通过分析超市的历史销售数据,将其进行清理、采样等操作,使之转变为序列数据库,然后采用基于Map-Reduce的BLSPM算法进行挖掘,找到利润较高的商品,从而调整货架摆放,提升销售利润。该过程分为两步:第一步在不同的商品种类间挖掘序列模式,然后根据挖掘后的结果来指导商品种类的布局。第二步在每个种类内进行挖掘,引入利润指标,将其作为“序列模式值”的权重值,然后计算每个频繁项集的“序列模式值”,并按照“序列模式值”的大小重新排序,找到销售利润最高的商品,进而调整货架摆放,提高销售利润。