apriori算法实例(牛奶与面包)

2,176 阅读3分钟

「这是我参与11月更文挑战的第6天,活动详情查看:2021最后一次更文挑战

关联规则挖掘可以让我们从数据集中发现项与项之间的关系,它在我们的生活中有很多应用场景,关联规则挖掘是个非常有用的技术。下面就让我们通过一个实例来学习此算法

首先我们需要了解两个概念

1.支持度
支持度是个百分比,它指的是某个商品组合出现的次数与总次数之间的比例。支持度越高,代表这个组合出现的频率越大。

2.置信度
置信度是个条件概念,就是说在 A 发生的情况下,B 发生的概率是多少。它指的就是当你购买了商品 A,会有多大的概率购买商品 B。

题目如下

使用如下事务数据库,该数据库具有9个事务,设最小支持度为2,频繁项集的极大长度为3。

(1)使用Apriori算法挖掘下表中的事务数据库中的频繁项集。

(2){面包,牛奶,可乐}是否为最大频繁项目集?求出该最大频繁项目集中可以得到的关联规则,设最小置信度为50%。

TIDItems
1面包,可乐,麦片
2牛奶,可乐
3牛奶,面包,麦片
4牛奶,可乐
5面包,鸡蛋,麦片
6牛奶,面包,可乐
7牛奶,面包,鸡蛋,麦片
8牛奶,面包,可乐
9面包,可乐

一、寻找频繁项目集的过程

(1) 先扫描数据可,统计所有1候选项集L1

项集支持度
牛奶6
面包7
可乐6
鸡蛋2
麦片4

(2)剪除支持度小于2的项集C1

项集支持度
牛奶6
面包7
可乐6
鸡蛋2
麦片4

(3) 统计C1中的所有项集的2候选项集L2

项集支持度
牛奶,面包4
牛奶,可乐4
牛奶,鸡蛋1
牛奶,麦片2
面包,可乐4
面包,鸡蛋2
面包,麦片4
可乐,鸡蛋0
可乐,麦片1
鸡蛋,麦片2

(4)剪除支持度小于2的项集C2

项集支持度
牛奶,面包4
牛奶,可乐4
牛奶,麦片2
面包,可乐4
面包,鸡蛋2
面包,麦片4
鸡蛋,麦片2

(5)统计C2中的所有项集的3候选项集L3

项集支持度
面包,牛奶,可乐2
面包,牛奶,麦片2
面包,鸡蛋,麦片2
牛奶,鸡蛋,麦片1

(6)剪除支持度小于2的项集C3

项集支持度
面包,牛奶,可乐2
面包,牛奶,麦片2
面包,鸡蛋,麦片2

二、所有频繁项的置信度为

{牛奶} => {面包,可乐} ,置信度 = 2/6 = 33%

{面包} => {牛奶,可乐} ,置信度 = 2/7 = 29%

{可乐} => {面包,牛奶} ,置信度 = 2/6 = 33%

{面包,牛奶} => {可乐} ,置信度 = 4/6 = 50%

{牛奶,可乐} => {面包} ,置信度 = 4/6 = 50%  

若最小置信度为50%,则得到的关联规则如下:

{面包,牛奶} => {可乐} ,置信度 = 4/6 = 50%

{牛奶,可乐} => {面包} ,置信度 = 4/6 = 50%