论文部分内容阅读
流数据广泛存在于传感器、网络通信和互联网等领域中,是一组无序、实时到达、无界且连续的数据项。流数据具有实时性、突发性、无限性、无序性以及易失性的特点。流数据的特点决定了无法在数据库中完全存储所有的数据并且需要实时挖掘。因此,有别于传统的静态数据挖掘算法,流数据挖掘算法需要针对流数据的特点做出改进。关联规则挖掘是数据挖掘算法的一种,该算法的目的是挖掘两个项集之间的内在联系。现有的流数据关联规则挖掘算法FP-Stream运行在单个计算机中,性能受限于计算机的配置。如今,流数据产生的速度日益增长,FP-Stream算法的性能已经捉襟见肘。针对这一问题,本文设计了分布式流数据关联规则挖掘算法FP-Storm。另外,本文基于Storm框架设计了分布式流数据关联规则挖掘框架。最后,为了验证所提算法和框架的可用性,设计实现了基于流数据关联规则挖掘的股票推荐原型系统。本文主要做出了如下工作:(1)为了解决现有流数据关联规则算法性能低下的问题,设计了分布式流数据关联规则算法FP-Storm。该算法使用滑动窗口选取并缓存数据,将流数据转换为批次数据进行处理。然后使用划分投影的方法,将批次数据划分到不同的计算节点进行并行挖掘。在各个计算节点中,历史批次数据被存储在前缀树和倾斜时间窗口中,之后对前缀树自底向上遍历并超集检验挖掘频繁项集。最后,汇总并输出各个计算节点的挖掘结果。实验结果表明,该算法有着较好的精确性,并可以有效提升频繁项集的挖掘效率。(2)针对现有流数据关联规则挖掘算法在实现过程中的多数据源集成、挖掘过程实现和挖掘结果实时呈现的问题,设计了分布式流数据关联规则挖掘框架。首先,基于Kafka实现该框架的数据集成模块,并使用分片传输的思想对Kafka的传输机制进行优化。之后,基于Storm实现分布式流数据关联规则算法FP-Storm的挖掘过程。最后,将挖掘结果实时缓存在Redis内存数据库中。该框架可以简化流数据关联规则挖掘的开发过程,方便程序员在其它应用系统中进行移植部署。实验结果表明,优化后的Kafka数据传输速度和稳定性都有一定的提升,提高集群的并发度可以在一定程度上提高本框架的运行效率。(3)为了验证所设计的分布式流数据关联规则挖掘算法和框架的实用性,使用React Native和Spring等技术设计并实现了股票推荐原型系统。该系统通过分析历史股票涨跌规律,实时更新股票间的关联规则,生成股票推荐信息发送给感兴趣的用户。系统客户端界面简介直观,交互方式友好,推荐信息中部分股票间的关联程度较高,验证了所提算法和框架具有一定的实用价值。