1.一种基于MapReduce的并行频繁项集增量数据挖掘方法,其特征在于,包括以下步骤:
S1,设计基于信息熵的相似项合并策略SIM‑IE来合并数据集中的相似数据项,根据合并后的数据集进行Can树构造;
S2,提出基于遗传算法的动态支持度阈值计算策略DST‑GA,获取大数据集中的相对最优动态支持度阈值,根据所述相对最优动态支持度阈值进行频繁模式挖掘;
S3,使用并行LZO数据压缩算法对Map端输出的数据进行压缩。
2.根据权利要求1所述基于MapReduce的并行频繁项集增量数据挖掘方法,其特征在于,所述S1包括:
S1‑1,根据差值大小对数据项进行分类;
S1‑2,获得S1‑1划分好的数据后,根据相似性评估公式SAF计算对应的数据集之间的相似度;
S1‑3,根据S1‑2获取所有划分数据集之间的相似性结果后,再根据提前设定的相似度阈值δ判断是否需要进行相似项合并。
3.根据权利要求2所述基于MapReduce的并行频繁项集增量数据挖掘方法,其特征在于,所述S1‑1包括:
S1‑1‑1,对需要进行相似性评估的数据集中的数据项进行合并,然后按序排列,求出各相邻数据的差值总和sum;令数据项数为n,那么求得的平均差为:avg=sum/(n‑1);
S1‑1‑2,求得平均差avg后,即可将排序后的数据集根据avg进行划分;
所述将排序后的数据集根据avg进行划分包括:设划分数为d,如果相邻的数据值之差小于平均差值,那么就将前一个划分获得的数据与当前的数据之间的所有数据项归为一个分区,重复执行比较与分区操作直至所有数据都被划分到对应的数据分区。
4.根据权利要求2所述基于MapReduce的并行频繁项集增量数据挖掘方法,其特征在于,所述S1‑2的相似性评估公式SAF包括:条件熵:H(S|C)=‑∑c∈Cp(c)∑s∈Sp(s|c)log(p(s|c)) (1)信息熵:
相似性:
A、B为两个相似性待判断的数据集,S为决策模式属性集,C为不确定匹配模式关系集,C与S交集为空;H(·|·)为条件熵函数,H(·)为信息熵函数,sim(·,·)为相似性函数;c、s分别为集合C、S中的项,p(c)为c发生的概率,p(s|c)为c发生的条件下s发生的概率,log(·)为对数函数;n为s中的事务数量,p(xi)为s中事务xi发生的概率。
5.根据权利要求2所述基于MapReduce的并行频繁项集增量数据挖掘方法,其特征在于,所述S1‑3包括:
将经过计算求得的相似度数值sim(A,B)与相似度阈值δ进行比较,若sim(A,B)≥δ,则进行相似项合并,同时对相似项合并后的全局概率值进行计算并更新;
S1‑3‑1,获取所有的相似项并循环合并这些项集,将所有的数据元组放入同一个数据表;
S1‑3‑2,从合并后的项集中获取具有相同数据的元组,保留一个元组并删除其他重复项;
S1‑3‑3,通过概率合并公式PM‑DCR对相似项的概率进行合并计算,得到删除重复项之后的项集的全局概率值;
所述概率合并公式PM‑DCR包括:p1、p2分别为项集S1、S2的全局概率,p1*p2为S1、S2相交的概率,p1*(1‑p2)、(1‑p1)*p2均为S1、S2不相交的概率。
6.根据权利要求1所述基于MapReduce的并行频繁项集增量数据挖掘方法,其特征在于,所述S2包括:
S2‑1,构造支持度函数SF;
S2‑2,利用遗传算法的收敛性与不失一般性,对其进行迭代优化运算用于求得最优解,即相对最优动态支持度阈值;
所述构造支持度函数SF包括:
其中,m为数据集D的总项目数,P(xi)表示项目xi在D中出现的概率,Weight(xi)表示xi的权重,r(x1,x2,...,xm)为修正函数,|·|表示集合中元素数量,xi为第i个数据项。
7.根据权利要求6所述基于MapReduce的并行频繁项集增量数据挖掘方法,其特征在于,所述S2‑2的相对最优动态支持度阈值包括:S2‑2‑1,根据极值定理可求得连续的支持度函数在其定义域内的极小值ξ1与极大值ξ2;
S2‑2‑2,多次循环迭代运算后收敛得到特定值;
S2‑2‑3,将遗传算法应用于支持度函数的极值问题求解过程中,提出求解动态阈值的minSF公式将这一迭代优化过程具象化,经过多次迭代后最终ξ1、ξ2的差值趋近为0,最终结果收敛于特定值,即相对最优动态支持度阈值;
所述动态阈值的minSF公式包括:其中,fi(x)为支持度函数,m为数据集D的总项目数, 为求解非线性极大极小值问题的通用形式。
8.根据权利要求1所述基于MapReduce的并行频繁项集增量数据挖掘方法,其特征在于,所述S3包括:
S3‑1,Map阶段:扫描合并相似项后的原始数据集或新增数据集的所有数据项,并根据具体的集群节点配置情况对数据进行分块,最后将划分好的数据块映射到每个计算节点进行Map运算;
S3‑2,数据压缩阶段:将Map阶段的输出数据使用并行LZO数据压缩算法进行压缩;
S3‑3,Reduce阶段:在初始挖掘时,根据Map阶段的输出数据并行构造Can树,并使用Hash表记录所有数据项在树结构中的相对位置,最后根据动态支持度阈值从Can树中挖掘频繁项集;在增量挖掘时,根据Map阶段的输出数据对Can树以及存储数据项位置信息的Hash表进行更新,根据更新后的Can树和动态支持度阈值并行挖掘频繁项集。
9.根据权利要求8所述基于MapReduce的并行频繁项集增量数据挖掘方法,其特征在于,所述S3‑2的数据压缩包括:S3‑2‑1,扫描MapReduce集群,用于获取处于空闲状态的计算节点,基于负载均衡策略将Map端输出的数据分配给所有可用节点进行处理;
S3‑2‑2,在内存中创建三种线程:主控线程、压缩线程以及重构线程,使用信号量保护的共享内存进行三种线程间的信号交流;
S3‑2‑3,将数据分块并输入内存,通过主控线程控制数据流向并初始化压缩线程,将所有的压缩线程相对均衡的分布到可用的处理器核心中,然后使用压缩线程各自独立地对数据块进行并行压缩;
S3‑2‑4,使用重构线程获取各个压缩线程中生成的压缩数据块,并按输入顺序输出所有的压缩数据;最后在压缩数据输出到磁盘后进行解压供Reduce任务调用。