有一个叫 Apriori 的算法可以解决我们的问题。 可以理解为连坐算法: 如果一个组合是频繁组合,则它所有的非空子集也是频繁组合——连坐,一家子都是明星组合,任何跳出来两个人也都是明星组合;
如果一个非空组合是非频繁组合,则其所有的父集也是非频繁组合——连坐,如果有一个人不是明星,他和谁组合都不会是明星组合。
例如,如果 123 是频繁组合,则 12、13、23 也是频繁组合;若 12 是非频繁组合,则 123 也是非频繁组合,即其他数据集里只要含 12 都可直接判定其为非频繁组合。
这种方法能够帮我们去掉很多没有必要测试的组合。
Apriori 算法的优点是可以产生相对较小的候选集,而它的缺点是要重复扫描数据库,且扫描的次数由最大频繁项目集中项目数决定,因此 Apriori 适用于最大频繁项目集相对较小的数据集中。后续的 FP-growth 算法修正了这些问题。
这样我们再去分析余下组合的支持度和置信度,就可以得到我们的最终要的规则了。
此文章为4月Day15学习笔记,内容来源于极客时间《gk.link/a/122Hy》