如何寻找频繁模式呢?(apriori和fp-growth算法对应的两篇论文的最核心思路总结)
1.最原始的方法:各个项进行排列组合,即找出所有的候选集,然后再一一判断这些候选集是否是频繁项集。
2.apriori算法:1)核心思想就是集合的超集的支持度一定小于或者集合本身的支持度。
2)候选集的产生过程的一个技巧:例如两个频繁k-项集(按字典顺序排好的)去组合产生一个(k+1)-项。
集的候选集---->保证两个k-项集的钱k-1的元素相等,只有最后一个元素不同。
3)生成(k+1)-项候选集之后,算法会有一个初步的筛选过程,先判断(k+1)项集的所有真子集(从1-项集到
k-项集之间所有的)是否出现过--->其实就是上面1)的核心思想的实际运用。
3.fp-growth算法:
1)构造紧凑的fp树这个数据结构进行数据的存储,树的构造也是有原则的,降序排列,最不频繁的作为后缀。(并不总是最优的即节点并不总是最少)。(只需要扫描两次数据库)
2)模式挖掘,利用模式片段生长方法,避免了大量的候选集的产生
3)结合条件模式基采用递归,根据实际分为单路径,多路径等技巧