关联规则(Apriori、FP-grpwth)

什么是关联规则

     关联规则(Association Rules)是反映一个事物与其他事物之间的相互依存性和关联性,是数据挖掘的一个重要技术,用于从大量数据中挖掘出有价值的数据项之间的相关关系。
     所谓数据挖掘就是以某种方式分析源数据,从中发现一些潜在的有用的信息 。即数据挖掘又可以称作知识发现,而机器学习算法则是这种“某种方式”。

     举个简单的例子(尿布和啤酒太经典):通过调研超市顾客购买的东西,可以发现30%的顾客会同时购买床单和枕套,而在购买床单的顾客中有80%的人购买了枕套,这就存在一种隐含的关系:床单→枕套,也就是说购买床单的顾客会有很大可能购买枕套,因此商场可以将床单和枕套放在同一个购物区,方便顾客购买。

关联规则中的概念

项目:交易数据库中的一个字段,对超市的交易来说一般是指一次交易中的一个物品,如:牛奶

事务:某个客户在一次交易中,发生的所有项目的集合,如(牛奶,面包,啤酒)

项集:包含若干个项目的集合(一次事务中的),一般会大于0个

支持度(Support):项集(X,Y)在总项集中出现的概率

频繁项集(Frequent item Sets):某个项集的支持度大于设定阈值(人为设定或者根据数据分布或者经验来设定),即称这个项集为频繁项集

置信度(Confidence):在先决条件X发生的条件下,由关联规则(X->Y)推出Y的概率

提升度:表示含有X的条件下同事含有Y的概率,与无论含不含有Y的

Apriori算法简介

    Apriori算法:使用候选项集找频发项集

    Apriori算法是一种罪有影响的挖掘布尔关联规则频繁项集的算法。其核心是基于两阶段频集思想的递推算法。该关联规则在分类上属于单维、单层、布尔关联规则。在这里,所有支持度大于最小支持度的项集称为频繁项集,简称频集。

Apriori原理:如果某个项集是频繁的,那么它的所有子集也是频繁的。该定理的逆反定理为:如果某一个项集是非频繁的,那么它的所有超集(包含该集合的集合)也是非频繁的。Apriori原理的出现,可以在得知某些项集是非频繁之后,不需要计算该集合的超集,有效地避免项集数目的指数增长,从而在合理时间内计算出频繁项集。

在图中,已知阴影项集{2,3}是非频繁的。利用这个知识,我们就知道项集{0,2,3},{1,2,3}以及{0,1,2,3}也是非频繁的。也就是说,一旦计算出了{2,3}的支持度,知道它是非频繁的后,就可以紧接着排除{0,2,3}、{1,2,3}和{0,1,2,3}。

算法思想

    ①找出所有的频集,这些项集出现的频繁性至少和预定义的最小支持度一样。

    ②由频集产生强关联规则,这些规则必须满足最小支持度和最小可信度。

    ③使用第1步找到的频集产生期望的规则,产生只包含集合的项的所有规则,其中每一条规则的右部只有一项,这里采用的是中规则的定义。

    ④一旦这些规则被生成,那么只有那些大于用户给定的最小可信度的规则才被留下来。为了生成所有频集,使用了递推的方法。

在这里插入图片描述

算法步骤

在这里插入图片描述
FP-growth算法

     Apriori算法是关联规则的基本算法,很多用于发现关联规则的算法都是基于Apriori算法,但Apriori算法需要多次访问数据库,具有严重的性能问题。FP-Growth算法只需要两次扫描数据库,相比于Apriori减少了I/O操作,克服了Apriori算法需要多次扫描数据库的问题。

    算法步骤:

构建FP树

从FP树中挖掘频繁项集

    实现流程:

在这里插入图片描述

第一步:创建FP树

在这里插入图片描述

第二步:挖掘频繁项集

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值