关联规则分析也是一种比较常见的推荐算法,主要是根据历史数据统计不同规则出现的关系,比如: X − > Y X->Y X−>Y,表示 X X X事件发生后, Y Y Y事件也会有一定概率发生。
关联规则分析最著名的就是“啤酒-尿布”的经典案例,沃尔玛的超市管理人员通过数据发现,很多买尿布的人大概率事件会去购买啤酒。这是因为在美国很多妈妈在家带孩子,所以去超市买尿布的任务就交给了爸爸,而一般爸爸都会在买尿布的时候顺手买一罐啤酒喝,所以明明是不相关的两个东西就有了很大的关联。
关联规则分析的最终目标就是要找出强关联规则。一般使用 A p r i o r i Apriori Apriori、 F P − G r o w t h FP-Growth FP−Growth、 E c l a t Eclat Eclat算法。这里我们主要分析一下 A p r i o r i Apriori Apriori。
- A p r i o r i Apriori Apriori算法
A p r i o r i Apriori Apriori主要包含两个步骤:- 首先找出数据集中所有的频繁项集,这些项集出现的频繁性要大于或等于最小支持度
- 根据频繁项集产生强关联规则,这些规则必须满足最小支持度和最小置信度
假设存在规则 X − > Y X->Y X−>Y,则称 X X X为前项, Y Y Y为后项:
S u p p o r t ( X − > Y ) = 同 时 包 含 X Y 的 数 据 数 数 据 总 数 Support(X - > Y) = \frac{
{同时包含XY的数据数}}{数据总数} Support(X−>Y)=数据总数同时包含XY的数据数
C o n f ( X − > Y ) = 同 时 包 含 X Y 的 数 据 数 包 含 X 的 数 据 数 Conf(X - > Y) = \frac{
{同时包含XY的数据数}}{包含X的数据数} Conf(X−>Y)=包含X的数据数同时包含XY的数据数
- 实例分析
假设用户会同时购买多个手机,我们就不管手机用途了,送人也好,买了摔也行,我们搜集了下面四个用户的购买记录:
uesr | phone |
---|---|
A | { M i x 3 , X R , m a t e 20 } \{Mix3, XR, mate20\} { Mix3,XR,mate20} |
B | { M i x 3 , P 20 , n e x s } \{Mix3, P20, nexs\} { Mix3,P20,nexs} |
C | { M i x 3 , P 20 , n e x s , m a t e 20 } \{Mix3, P20, nexs, mate20\} |