解题思路
本题要求按 Apriori 挖掘全部频繁项集,输出带支持计数的项集列表。算法核是「逐层生成候选 → 子集剪枝 → 扫描计数」。
- 把每条记录看成集合。扫描全部记录,统计每个单项编号的出现次数,次数 ≥min_cnt 的单项组成频繁 1-项集 G1。
- 对 k≥2,用 Gk−1 两两连接生成 k-项候选:两项的前 k−2 个元素相同,且第一项末元素小于第二项末元素。若候选的某个 (k−1) 元子集不在 Gk−1 中,则丢弃(Apriori 性质:非频繁项集的超集必非频繁)。
- 候选 X 的支持计数为包含它的记录条数sup(X)={R∣X⊆R}
满足 sup(X)≥min_cnt 的进入 Gk。Gk 为空时停止。