Apriori算法

本文详细解析了关联分析中的Apriori算法,介绍了频繁项集和关联规则的概念,展示了如何通过Apriori算法挖掘规则并应用在实际例子中。探讨了原始的蛮力方法与优化策略,以及Apriori算法的特点和注意事项。
摘要由CSDN通过智能技术生成

1.1关联分析

▶关联分析用于发现隐藏在大型数据集中的令人感兴趣的联系,所发现的模式通常用关联规则或频繁项集的形式表示。
▶关联规则反映一个事物与其它事物之间的相互依存性和关联性。如果两个或多个事物之间存在一定的关联关系,那么其中一个事物发生就能够预测与它相关联的其它事物的发生。

1.2频繁项集

▶项集:包含0个或多个项的集合。例如,{Milk,Bread,Diaper}
▶k-项集:包含k个项的项集。
▶事务与事务集:一个事务T是一个项集,每个事务均与一个唯一标识符Tid相联系。不同的事务一起组成了事务集D,它构成了关联规则发现的事务数据库个数。例如,D=5
▶支持度计数:包含特定项集的事务个数,σ({Milk,Bread,Diaper})=2
▶支持度:包含项集事务数与总事务数的比值。例如,s({Milk,Bread,Diaper})=2/5
▶频繁项集:满足最小支持度阈值(minsup)的所有项集。
▶最大频繁项集:它的直接超集都不是频繁的频繁项集。

1.3关联规则

▶关联规则:关联规则是形如X→Y的蕴含表达式,其中X和Y是不相交的项集。例如:{Milk,Diaper}→{Beer}
▶关联规则的强度:
支持度(s):确定项集的频繁程度
置信度(c):确定Y在包含X的事务中出现的频繁程度
{Milk,Diaper}→{Beer}
s=σ({Milk,Beer,Diaper})/|T|=2/5=0.4
c=σ({Milk,Diaper,Beer})/σ({Milk,Diaper})=2/3

TIDItems
1Bread,Milk
2Bread,Diaper,Beer,Eggs
3Milk,Diaper,Beer,Coke
4Bread,Milk,Diaper,Beer
5Bread,Milk,Diaper,Coke

1.4关联规则挖掘问题

关联规则挖掘问题:
给定事务的集合T,关联规则发现是指找出支持度大于等于最小支持度阈值(minsup)并且置信度大于等于最小置信度阈值(minconf)的所有规则。
例如:

事务ID项集合
10A,B,C
20A,C
30A,D
40B,E,F

指定最小支持度为50%,最小置信度为50%。
①根据最小支持度找频繁项集。

频繁项集支持度
{A}75%
{B}50%
{C}50%
{A,C}50%

②置信度通常考虑频繁二项集及以上,根据最小置信度找关联规则
规则A→C
支持度:50%
置信度:s({A,C})/s({A})=50%/75%=66.7%
规则C→A
支持度:50%
置信度:s({A,C})/s({C})=50%/50%=100%

1.5挖掘关联规则

大多数关联规则挖掘算法通常采用的一种策略是,将关联规则挖掘任务分解为如下两个主要的子任务:
①频繁项集产生:
其目标是发现满足最小支持度阈值的所有项集,这些项集称作频繁项集。
②规则的产生:
其目标是从上一步发现的频繁项集中提取所有高置信度的规则,这些规则称作强规则。

1.6关联规则原始方法

挖掘关联规则最原始也是最暴力的方法称为蛮力法:
计算每个可能规则的支持度和置信度。这种方法计算代价过高,因为可以从数据集提取的规则的数量达指数级。
降低产生频繁项集计算复杂度的方法:
①减少候选项集的数量:先验原理:Apriori算法
②减少比较的次数:替代将每个候选项集与每个事务相匹配,可以使用更高级的数据结构,或存储候选项集或压缩数据集来减少比较次数(FPGrowth)

2.1Apriori算法

先验原理:
如果一个项集是频繁的,则它的所有子集一定也是频繁的;相反,如果一个项集是非频繁的,则它的所有超集也一定是非频繁的。
在这里插入图片描述
使用Apriori算法找出最大频繁项集的过程如下:
在这里插入图片描述

2.2Apriori算法注意问题

1.项的字典序
尽管集合具有无序性,但为了快速连接操作,通常对所有商品做一个默认的排序。
2.项的连接
对于任何两个需要连接的项集去掉第一个项集的尾项,去掉第二个项集的尾项。若剩下的项一样则可连接,若剩下的项不一样则不可连接。
A,B,C
A,B,E
两个项集去掉尾项,都剩下A,B,可连接为A,B,C,E
A,B,D
B,C,E
两个项集去掉尾项,剩下的项不一样,不可连接。
项的连接准则的优点是降低候选项的生成。

2.3Apriori算法特点

多次扫描数据库
候选项规模庞大
计算支持度开销大
缺点:需要反复的生成候选项,如果项的数目比较大,候选项的数目将达到组合爆炸式的增长。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值