Apriori算法例题

Apriori算法

表1

TIDItermset
1A,B,C,D
2B,C,E
3A,B,C,E
4B,D,E
5A,B,C,D

最小支持度为40%,最小信任度为60%

1.求最大频繁项目集

首先找出频繁项目集L1,然后找出频繁项目集L2,直到不能再扩展频繁项目集的元素数目而算法停止。

最小支持数为40%*5(5是TID个数)=2

  • L1生成

    LC(表1中L出现的次数)
    A3
    B5
    C4
    D3
    E3

    挑出支持数(表2中C)>=2的项目集组成频繁项目集L1={A,B,C,D,E}

  • L2生成

    L1排列组合生成表3的L列

    LC
    AB3
    AC3
    AD2
    AE1
    BC4
    BD3
    BE3
    CD2
    CE2
    DE1

    挑出支持数(表3中C)>=2的项目集组成频繁项目集L2={AB,AC,AD,BC,BD,BE,CD,CE}

  • L3生成

    补充排列组合技巧

    前提:对项目集排序

    在前1到n个字母相同的情况下,最后一个字母不同的可以进行合并

    例如AB与AC合并成ABC,ABD与ABC合并成ABCD,ABC与ACD则不能合并

    L2排列组合生成表4的L列

    LC
    ABC3

    ABD

    2
    ACD2
    BCD2
    BCE2
    BDE1
    CDE0

    挑出支持数(表4中C)>=2的项目集组成频繁项目集L3={ABC,ABD,ACD,BCD,BCE}

  • L4生成 由L3排列组合生成表5的L列

LC
ABCD2
BCDE0

挑出支持数(表5中C)>=2的项目集组成频繁项目集L4={ABCD}

  • L5生成

由L4生成5-候选表C5=∅,L5=∅,算法停止

则所有频繁项目集为{A,B,C,D,E,AB,AC,AD,BC,BD,BE,CD,CE,ABC,ABD,ACD,BCD,BCE,ABCD}

补充超集

超集:若一个集合S2中的每一个元素都在集合S1中,且集合S1中可能包含S2中没有的元素,则集合S1 就是S2 的一个超集。S1是S2的超集,则S2 是S1的真子集,反之亦然。

最大项目集:最大频繁项集是各频繁k项集中符合无超集条件的频繁项集。

比如:

{A}的超集为{AB,AC,AD,AE,ABC,ABD,ABE,ACD,ACE,ABCD,ABCDE}

{ABC}的超集为{ABCD,ABCDE}

所以最大频繁项目集为{ABCD,BCE}

2.求强关联

自信度大于等于最小信任度为60%为强关联

求各自信度:条件=>结果,自信度=结果在表1出现的次数/条件在表1出现的次数

比如下表,序号1,ABC=>ABCD,自信度=ABCD在表1出现的次数/ABC在表1出现的次数=2/3=67%

序号结果条件自信度是否为强关联
1ABCDABC67%
2ABCDAB67%
3ABCDA67%
4ABCDB40%
5ABCDAC67%
6ABCDC50%
7ABCDBC50%
8ABCDABD100%
9ABCDAD100%
10ABCDD67%
11ABCDBD67%
12ABCDACD100%
13ABCDCD100%
14ABCDBCD100%
15BCEBC50%
16BCEB40%
17BCEC50%
18BCEBE67%
19BCEE67%
20BCECE100%
  • 44
    点赞
  • 269
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
对于Apriori算法例题,可以考虑以下数据集: 假设有一个超市销售记录的数据集,其中包含了顾客购买的产品信息。数据集的示例如下: Transaction ID | Items Purchased ---------------------------------- 1 | Milk, Bread, Eggs 2 | Bread, Cheese 3 | Milk, Juice 4 | Bread, Cheese, Juice 5 | Milk, Bread, Cheese 我们可以使用Apriori算法来发现频繁项集及其关联规则。首先,我们需要确定阈值来定义频繁项集的最小支持度,例如假设我们将最小支持度设置为2。 第一步,我们计算每个单个项的支持度。在这个例子中,我们可以得到以下结果: Item | Support Count ------------------------- Milk | 3 Bread | 4 Eggs | 1 Cheese | 3 Juice | 2 通过计算得到的支持度,我们可以发现Milk、Bread、Cheese是频繁项集。 第二步,根据频繁项集生成候选项集。首先,我们生成长度为2的候选项集。通过组合频繁项集中的项,我们可以得到以下候选项集: Candidate Itemset | Support Count --------------------------------- Milk, Bread | 2 Milk, Cheese | 2 Bread, Cheese | 3 然后,我们计算候选项集的支持度。根据计算得到的支持度,我们可以发现Milk, Bread和Milk, Cheese是频繁项集。 第三步,继续生成更长的候选项集。通过组合频繁项集中的项,我们可以得到长度为3的候选项集: Candidate Itemset | Support Count ----------------------------------- Milk, Bread, Cheese | 2 最后,我们可以得到频繁项集:Milk, Bread, Cheese。根据频繁项集,我们可以生成关联规则,例如: Milk, Bread => Cheese Cheese => Milk, Bread 这些关联规则可以帮助超市了解不同产品之间的购买关联性,从而进行商品摆放优化、促销策略制定等决策。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值