关联规则主要去学习不同物体之间的联系。每个物体称之为一个项,有关联的物体组成一个项集。一般假设X为先决条件,Y为相应的关联结果。而关联性的强度通过支持度、置信度和提升度来评价。
支持度表示项集中同时含有XY的概率,衡量所考察关联规则在量上的多少,通过设定最小阈值剔除出镜率小得到无意义规则,保留出现较为平凡的规则。
置信度表示在先决条件X发生的条件下,关联Y发生的概率。衡量关联规则在质上的可靠性。通过阈值进行筛选。而提升度则是置信度除以支持度。计算规则为?
常用的关联规则算法有Apriori算法和FPGrowth算法。
(1)Apriori算法
(2)FPGrowth算法
FPGrowth (频繁模式增长)算法。其分治策略是:将频繁项集的数据库压缩到一棵频繁模式树(FP树),但任保留项集关联信息。与Apriori算法最大的不同是,该算法不产生候选集,只需要两次遍历数据库,提高了算法效率。
首先构造FP树:扫描事务数据库,收集频繁项的集合和他们的支持度,并按照支持度的大小排序。得到结果频繁项表。顺序构建FP树。
计算时分别统计频繁项和频繁集项。使用类为
val model = new FPGrowth().
setMinSupport(XXX).
setNumpartitions(XXX).
run(example).
最后将关联集项分别输出。