FPGrowth(频繁模式增长)是一种关联规则分析算法,本文通过代码演示用spark运行FPGrowth算法的一个小例子。
1 关联规则简介
举例说明:假如10000个消费者购买了商品,购买尿布1000个,购买啤酒2000个,购买面包500个,同时购买了尿布和啤酒800个,同时购买了尿布和面包100个。
支持度:在所有项集中出现的可能性,即项集同时含有x与y的概率。是第一道门槛,衡量量是多少,可以理解为“出镜率”,一般通过设定最小支持度,过滤掉“出镜率”较低的无意义规则。
如设定最小阈值为5%,尿布和啤酒的支持度为:800/10000=8% ,保留;尿布和面包的支持度为100/10000=1%,剔除。置信度:在X发生的条件下,Y发生的概率。这是第二道门槛,衡量的是“质”,设置最小的置信度筛选可靠的规则。
如设定最小阈值为70%,尿布->啤酒的置信度为:800/1000=80%,保留;啤酒->尿布的置信度为:800/2000=40%,剔除。
2 运行步骤
2.1 数据说明
1 | [xuqm@cu01 mllib]$ cat sample_fpgrowth.txt |
2.2 代码及说明
1 | package nwpuhpc.antirisk.ml |
3 结果展示
频繁项集及次数:
推荐规则: