Spark 关联规则挖掘

Spark 关联规则挖掘

关联分析基本概念

关联分析的任务就是从数据集中挖掘出频繁项集,然后从频繁项集中提取出事物之间的强关联规则,辅助决策。

在这里插入图片描述
假设上表为某超时用户的购物数据,*TID代表交易流水号,Items代表一次交易的商品。*关联规则中的重要名词定义:

1、事务:每一条交易称为一个事务,例如示例中的数据集就包含四个事务。

2、:交易的每一个物品称为一个项,例如Cola、Egg等。

3、项集:包含零个或多个项的集合叫做项集,例如{Cola, Egg, Ham}。

4、 k−项集:包含k个项的项集叫做k-项集,例如{Cola}叫做1-项集,{Cola, Egg}叫做2-项集。

5、支持度计数:一个项集出现在几个事务当中,它的支持度计数就是几。例如{Diaper, Beer}出现在事务002、003和004中,所以它的支持度计数是3。

6、支持度:支持度计数除于总的事务数。例如上例中总的事务数为4,{Diaper, Beer}的支持度计数为3,所以它的支持度是3÷4=75%,说明有75%的人同时买了Diaper和Beer。

7、频繁项集:支持度大于或等于某个阈值的项集就叫做频繁项集。例如阈值设为50%时,因为{Diaper, Beer}的支持度是75%,所以它是频繁项集。

8、前件和后件:对于规则{Diaper}→{Beer},{Diaper}叫做前件,{Beer}叫做后件。

9、置信度:对于规则{Diaper}→{Beer},{Diaper, Beer}的支持度计数除于{Diaper}的支持度计数,为这个规则的置信度。例如规则{Diaper}→{Beer}的置信度为3÷3=100%。说明买了Diaper的人100%也买了Beer。

10、强关联规则:大于或等于最小支持度阈值和最小置信度阈值的规则叫做强关联规则。关联分析的最终目标就是要找出强关联规则。

得到的强关联规则并不一定为真:此时需要计算规则中样本的相关性系数:即提升度。

11、提升度

Lift(A->B)=Confidence(A->B)/support(B)=support(A,B)/(support(A)support(B)) =lift(B->A) =(AB同时出现的次数X总的订单数)/(包含A的订单数X包含B的订单数)

提升度表示了一条关联规则是否有效,如果提升度大于1,说明规则为有效的强关联规则,提升度小于1,表示规则为无效的强关联规则。如果提升度为1,则表示两事件相互独立。

频繁模式挖掘

了解到上述重要概念以后,关联规则挖掘的重点便在于如何找到频繁模式。以下分别介绍两种频繁模式挖掘的算法。由于本文旨在通过实践的方式,帮助大家使用spark进行关联规则全流程的认知,此外关于频繁模式挖掘算法方面的讲解,也有非常多非常细致的讲解资料,所以本章附上作者认为比较好的讲解文章,便不再赘述

Apriori

https://www.cnblogs.com/pinard/p/6293298.html

FP-growth

https://blog.csdn.net/javastart/article/details/50521453

使用SPARK进行频繁模式挖掘以及关联规则计算

SPARK中有实现好的FPgrowth算法,帮助我们进行频繁模式的挖掘,但是需要我们从挖掘出的频繁模式中,生成规则,并计算规则的置信度与提升度。

首先来看下如何使用spark挖掘出频繁项集:

我们假设有如下的数据:

r z h k p
z y x w v u t s
s x o n r
x z y m t s q e
z
x z y r q t p

每一行代表一个事务,接下来看spark代码:

from pyspark.mllib.fpm import FPGrowth
from pyspark import SparkContext,SparkConf
import itertools
import os
conf=SparkConf().setMaster("local").setAppName("local_test")
sc=SparkC
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值