Apriori算法

表1

TID Itermset
1 A,B,C,D
2 B,C,E
3 A,B,C,E
4 B,D,E
5 A,B,C,D

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

1.求最大频繁项目集

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

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

  • L1生成

    L C(表1中L出现的次数)
    A 3
    B 5
    C 4
    D 3
    E 3

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

  • L2生成

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

    L C
    AB 3
    AC 3
    AD 2
    AE 1
    BC 4
    BD 3
    BE 3
    CD 2
    CE 2
    DE 1

    挑出支持数(表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列

    L C
    ABC 3

    ABD

    2
    ACD 2
    BCD 2
    BCE 2
    BDE 1
    CDE 0

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

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

L C
ABCD 2
BCDE 0

挑出支持数(表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%

序号 结果 条件 自信度 是否为强关联
1 ABCD ABC 67%
2 ABCD AB 67%
3 ABCD A 67%
4 ABCD B 40%
5 ABCD AC 67%
6 ABCD C 50%
7 ABCD BC 50%
8 ABCD ABD 100%
9 ABCD AD 100%
10 ABCD D 67%
11 ABCD BD 67%
12 ABCD ACD 100%
13 ABCD CD 100%
14 ABCD BCD 100%
15 BCE BC 50%
16 BCE B 40%
17 BCE C 50%
18 BCE BE 67%
19 BCE E 67%
20 BCE CE 100%
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐