应该是上周写的,补一下。
Apriori
算法流程:
- 扫描 k项集 支持度
- 去除那些少于最低支持度的项集
- 如果数量少于两个,返回
- join,通过 1项集 和 k项集 生成 k+1项集
Apriori.h
FP-Growth
流程是:
- 排个序,剪枝
- 生成一个 Trie,并用一个 table 记录每个结点的出现
- 对于所有不同的 key,生成它的 条件FP树
- 合成频繁项集
递归终止条件: recursively mine get_cond_FP()
: when branch is empty, add (_to_be_added * support
).- after
get_cond_FP()
has been pruned, if set is empty, immdiately add. - if sub-FP is non-single,
temp_to_be_added
must be added for*rit.size()
. combine()
: when branch is non-empty, add ((2^N sets + _to_be_added) * su