AprioriSome算法
上一节
下一节
AprioriSome算法
AprioriSome算法可以看作是AprioriAll算法的改进,它们的主要查找序列的思路是基本一致的,仅在策略上有所差异,AprioriSome算法主要在于将具体过程分为以下两个阶段:
①前推阶段(或前半部分):此阶段只对指定长度的序列进行计数。
②回溯阶段(或后半部分):此阶段跳过已经计数过的序列。
在前推阶段中,只对特定长度的序列进行计数。比如,前推阶段对长度为1、2、4和6的序列计数(计算支持度),而长度为3和5的序列则在回溯阶段中计数。
next函数以上次遍历的序列长度作为输入,返回下次遍历中需要计数的序列长度。该函数确定了哪一个序列将被计数,在对非最大序列计数时间的浪费和计算扩展小候选序列之间作出权衡。
当next(k)=k+1(k是最后计数候选者的长度)时,这时所有的子序列都被计算,而候选序列集合最小,此时退化为AprioriAll算法。
当next(k)远大于k,如next(k)=100×k时,这时几乎所有的子序列都不被计算,但候选序列数却大大增加。

