数据挖掘 第五章 关联分析 要点例题总结

1.定义

关联分析(Association Analysis)用于发现隐藏在大型数据集中的令人感兴趣的联系。联系的表示方式一般为关联规则或频繁项集,例:{尿布}→{啤酒}

2.关联分析的应用

在医学领域:发现某些症状与某种疾病之间的关联,为医生进行疾病诊断和治疗提供线

索;

在商业领域:发现商品间的联系,为商场进行商品促销及摆放货架提供辅助决策信息;

在地球科学领域:揭示海洋、陆地和大气过程之间的关系。

3.关联分析的基本概念

项集:一个包含 k 个数据项的项集就称为 k−项集

支持度计数:包含该项集的事务数 频繁项集:满足minsupport的n项集 关联规则:形如 X –> Y 的蕴涵式,{可乐,尿布}->{啤酒}

支持度: 该项集出现次数/总事务数 置信度: c(X->Y)=σ(XUY)/σ(X)

4.找关联分析的方法

(1)穷举法

产生2^k-1个候选项集,如1项集有a,b,c,d,e五个,那么就要产生32-1=31个候选项集

(2)Apriori算法

广度优先算法自底向上地搜索整个事务数据库,产生候选项集,再测试所产生的项集是否频

繁项集。Apriori算法是经典的广度优先算法

Apriori算法是第一个关联规则挖掘算法,通过多次遍历事务数据库,使用基于支持度的剪枝

技术来有效减少候选项集搜索的时间,利用Apriori性质减少候选项集的数量。

性质(先验原理)

为提高频繁项集逐层产生的效率,控制候选项集的指数增长,Apriori算法利用两个重要性质(Apriori性质)来压缩搜索。

空间。

性质1 若x是频繁项集,则x的所有子集都是频繁项集。

性质2 若x是非频繁项集,则x的所有超集都是非频繁项集。

即 一个项的支持度永远不会超过其子集的支持度。

具体算法

首先找出频繁1-项集的集合,根据频繁1-项集得到候选2-项集并确定频繁2-项集。重复找频繁

项集过程,直到不能找到频繁k-项集。

具体算法流程如下:

设定k=1

扫描事务数据库一次,生成频繁的1-项集

如果存在两个或以上频繁k-项集,重复下面过程:

[候选产生] 由长度为k的频繁项集生成长度为(k+1)的候选项集

[候选前剪枝] 对每个候选项集,若其具有非频繁的长度为k的子集,则删除该候选项集

[支持度计算] 扫描事务数据库一次,统计每个余下的候选项集的支持度

[候选后剪枝] 删除非频繁的候选项集,仅保留频繁的(k+1)-项集

设定k = k+1

根据最小支持度阈值,提取频繁k-项集

产生强规则关联

(3)FP-growth算法

不同于Apriori等算法的“产生-测试”范型,深度优先算法不产生频繁项集,而采用模式增长

方式产生关联规则。FP-growth是典型的深度优先算法

FP-growth算法使用一种FP树的紧凑数据结构组织数据,经过一次扫描后,将数据库中的事

务压缩到一棵频繁模式树中,采用分而治之的策略,对频繁模式树进行处理,减少I/O次数,

提高了效率。

5.规则的评估标准

关联规则的评估通常有 2 种方式:一种通过统计论据来评估, 支持度、置信度、提升度;另一

种通过主观论据来评估。

关联规则算法倾向于产生太多规则,但许多规则是使人不感兴趣的或者冗余的,例如 {黄油}

->{面包},尽管有很高的支持度和置信度,但是它表示的关系显而易见。

所以需要建立一组广泛接受的评价关联模式质量的标准

第一组标准是通过统计论据建立,主要基于支持度-置信度框架的客观度量。例如通过支持

度、置信度、相关性等来评价挖掘出的关联模式是否是令人感兴趣的。

第二组标准是通过主观论据建立的主观度量。有些模式虽然具有高支持度和高置信度等,但

在具备经验值后的主观评价看来,可能不是有趣的。

(1)基于支持度-置信度框架的客观度量
①支持度

反映了关联规则是否具有普遍性。支持度高说明这条规则可能适用于数据集中的大部分事

务。

②置信度

反映了关联规则的可靠性。置信度高说明如果满足了关联规则的前件,同时满足后件的可能

性也非常大。

存在问题

支持度过高会导致一些潜在的有价值的关联规则被删去。

置信度有时也不能正确反映前件和后件之间的关联。

例子:

③提升度lift

提升度是一种简单的相关性度量。对于规则A=>B或者B=>A,lift(A,B) = P(A∩B) / (P(A)*P(B))。如果lift(A,B)>1表示A、B呈正相关,规则前件的出现对后件的出现有积极影响;如果lift(A,B)<1表示A、B呈负相关,规则前件的出现对后件的出现有负面影响;lift(A,B)=1表示A、B不相关(独立),规则前件的出现对后件的出现几乎没有影响。 针对表5-7得到的规则“购买牛奶=>购买咖啡”,该规则的提升度为:

当然,我可以为您提供一个关联规则 Apriori 算法的例题。假设我们有一个超市的交易数据集,其中包含了顾客购买的商品清单。以下是一个简化的例子: | 交易ID | 商品清单 | |--------|-------------------------------| | 1 | 牛奶, 蛋糕, 面包 | | 2 | 蛋糕, 面包 | | 3 | 牛奶, 蛋糕, 面包, 鸡蛋 | | 4 | 牛奶, 面包 | | 5 | 牛奶, 蛋糕, 面包, 鸡蛋, 啤酒 | 现在我们想要找出频繁项集和关联规则。 首先,我们需要设置最小支持度和最小置信度的阈值。假设我们设置最小支持度为40%,最小置信度为60%。 1. 计算频繁1-项集:对于每个商品,计算其支持度(在所有交易中出现的次数除以总交易数),并保留支持度大于等于最小支持度阈值的项集。 | 商品 | 支持度 | |---------|----------| | 牛奶 | 4/5 = 80%| | 蛋糕 | 4/5 = 80%| | 面包 | 5/5 = 100%| | 鸡蛋 | 2/5 = 40% | | 啤酒 | 1/5 = 20% | 根据最小支持度阈值,我们保留频繁1-项集:{牛奶, 蛋糕, 面包} 2. 根据频繁1-项集,计算频繁2-项集:对于每对频繁1-项集,计算其支持度,并保留支持度大于等于最小支持度阈值的项集。 | 项集 | 支持度 | |--------------|----------| | {牛奶, 蛋糕} | 3/5 = 60%| | {牛奶, 面包} | 4/5 = 80%| | {蛋糕, 面包} | 4/5 = 80%| 根据最小支持度阈值,我们保留频繁2-项集:{牛奶, 蛋糕},{牛奶, 面包},{蛋糕, 面包} 3. 根据频繁2-项集,计算关联规则:对于每个频繁2-项集,生成所有可能的关联规则,并计算其置信度。保留置信度大于等于最小置信度阈值的关联规则。 对于 {牛奶, 蛋糕}: - 关联规则:{牛奶} => {蛋糕} - 置信度:支持度({牛奶, 蛋糕}) / 支持度({牛奶}) = 3/5 / 4/5 = 0.75 对于 {牛奶, 面包}: - 关联规则:{牛奶} => {面包} - 置信度:支持度({牛奶, 面包}) / 支持度({牛奶}) = 4/5 / 4/5 = 1 对于 {蛋糕, 面包}: - 关联规则:{蛋糕} => {面包} - 置信度:支持度({蛋糕, 面包}) / 支持度({蛋糕}) = 4/5 / 4/5 = 1 根据最小置信度阈值,我们保留关联规则:{牛奶} => {面包},{蛋糕} => {面包} 以上就是使用 Apriori 算法找出频繁项集和关联规则的步骤和结果。希望对您有所帮助!如果您还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值