Chapters2 数据关联分析——Apriori算法及FP-Growth算法

Chapters2 数据关联分析

一、数据关联分析基本概念
1.频繁项集和关联规则
I = I 1 , I 2 , . . . , I m I={I_{1},I_{2},...,I_{m}} I=I1,I2,...,Im:项的集合。
D D D:交易数据库——注意它是子集族
T T T:每次交易事务,是 I I I的非空子集,即 T ⊆ I T\subseteq I TI,且每个 T T T都与一个唯一的标识符 T I D TID TID对应。
2.一些定义
(1)项集:是指项的集合。包含 k k k个项的项集称为 k k k项集。例如集合 { 1 , 2 } \{1,2\} {1,2} 就是一个2项集。项集的出现频数是包含项集的事务数,简称为项集的频数、支持度或计数。
(2)支持度:简单的字面理解就是支持的程度,一般以百分比表示。设 A A A是一个项集,在数据挖掘的关联分析中,支持度表示在所有的事务中同时出现 A A A项的概率,计算公式如下:
s u p p o r t ( A ) = c o u n t ( A ⊆ T ) ∣ D ∣ support(A)=\frac{count(A\subseteq T)}{|D|} support(A)=Dcount(AT)
(3)频繁项集:在一个具体的数据分析任务中,用户或者专家可以自行设定最小支持度阈值,那么如果项集 A A A的支持度满足于定义的最小支持度阈值(即 A A A的支持度不小于最小支持度阈值),则 A A A是频繁项集。如果一个包含 k k k个项的项集的支持度大于等于最小支持度阈值,则该项集称为 k k k频繁集。
(4)关联规则:可以描述成一种蕴含式。比如 A → B A\rightarrow B AB,其中 A A A B B B分别称为关联规则的前件和后件。在事务集合 D D D中,对某条关联规则而言,其支持度 s s s表示在所有的事务中同时出现 A A A B B B的概率,即 P ( A B ) P(AB) P(AB),计算公式如下:
s u p p o r t ( A ⇒ B ) = c o u n t ( A ⋃ B ) ∣ D ∣ support(A\Rightarrow B)=\frac{count(A \bigcup B)}{|D|} support(AB)=Dcount(AB).
(5)置信度:又称为可信度,表示关联规则的前件出现时后件也会出现,如果出现,那么出现的概率多大。表示 A A A出现的同时 B B B出现的概率:
s u p p o r t ( A ⇒ B ) = c o u n t ( A ⋃ B ) s u p p o r t ( A ) support(A\Rightarrow B)=\frac{count(A \bigcup B)}{support(A)} support(AB)=support(A)count(AB)
同样在一个具体的数据分析中,用户或者专家课自行设定最小支持度阈值和最小置信度阈值,如果关联规则同时满足大于等于最小支持度阈值和最小置信度阈值,那么进行考虑。
(6)强关联规则:如果某关联规则 A → B A\rightarrow B AB满足 s u p p o r t ( A ⇒ B ) ≥ m i n _ s u p support(A\Rightarrow B)\geq min\_sup support(AB)min_sup c o n f i d e n c e ( A ⇒ B ) ≥ m i n _ c o n f confidence(A\Rightarrow B)\geq min\_conf confidence(AB)min_conf,则称该关联规则是强关联规则,否则为弱关联规则。
• 关联规则挖掘步骤:
• (1) 找出所有频繁项集, 这些项集的每一个出现的频繁性至少与预定义的最小支持度一样.
• (2)由频繁项集产生强关联规则, 这些规则必须满足最小支持度和最小置信度.
二、 A p r i o r i Apriori Apriori算法
1.反单调性原理:如果一个项集是频繁的,那么它的所有子集也是频繁的,也就是说如果一个项集是非频繁的,那么它的所有超集也一定是非频繁的。
2. A p r i o r i Apriori Apriori算法的核心思想:首先扫描数据集,统计数据集中交易的数量和各个不同的1项集出现的次数,进而根据最小支持度获得所有的频繁1项集,即 L 1 L_{1} L1,然后利用 L 1 L_{1} L1查找频繁2项集 L 2 L_{2} L2,如此继续,直到不再有新的频繁项集被找到为止。
示例:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
三、 FP-Growth算法
1.Apriori算法回顾
• 思想: 用频繁的(k–1)-项集生成候选的频繁 项集生成候选的频繁k-项集; 用数据库扫描和模式匹配计算候选集的支持度.
• 瓶颈:
(1) 巨大的候选集.
(2) 多次扫描数据库. 如果最长的频繁模式是n的话, 则需要 (n +1) 次数据库扫描.
• FP-Growth算法采用了模式段增长的方式分而治之地构建频繁项集. 当数据集比较稠密时, 本算法使用扩展的FP-Tree (Frequent (Frequent-Pattern Pattern Tree), 将全部的数据集压缩入主存, 对整体数据集的分析转化为对各个条件模式库分析的子任务, 显著减少了搜索空间.
2.频繁模式树, 简称为FP-tree。
(1)概念:它是指一棵将代表频繁项集的数据库压缩之后形成的树, 该树仍保留项集的关联信息. 其结构由一个根节点(值为null或 Φ \Phi Φ)、项前缀子树(作为子女)和一个频繁项头表组成.
(2)基本思想
• FP-Growth不同于Apriori的“试探”策略, 算法只需扫描原始数据两遍, 通过FP-tree数据结构对原始数据进行压缩, 效率较高.
• FP-Growth算法主要分为两个步骤: FP-tree构建, 挖掘频繁项集.
• FP树通过逐个读入事务, 并把事务映射到FP树中的一条路径来构造. 由于不同的事务可能会有若干个相同条路径来构造 由于不同的事务可能会有若干个相同的项, 因此它们的路径可能部分重叠. 重叠越多, 使用FP树结构获得的压缩效果越好. 如果FP树足够小, 能够存放在内存中, 就可以直接从这个内存中的结构提取频繁项集, 而不必重复地扫描存放在硬盘上的数据.
(3)FP-tree中的一些概念
• 项前缀子树: 该子树的每个节点包括3个域, item_name item_name,count, node_link node_link. 其中, item_name item_name记录节点表示的项的标识, count记录到达该节点的子路径的事务数,node_link用于连接树中相同标识的下一个节点(如果不存在相同标识下一个节点, 则值为null).
• 频繁项头表:本表中的每一个表项包括一个频繁项的标识(item name)和一个指向树中具有该频繁项标识((item_name )和一个指向树中具有该频繁项标识的第一个频繁项节点的指针(head of node_link node_link).
• 条件模式库: 也称为条件数据库(conditional (conditional data base).一种特殊类型的投影数据库, 是把上述频繁模式树(FP-tree)进行压缩后得到的数据库.
• 条件模式基: 在FP-树中, 每个任意的后缀模式可以形成各自的不同前缀子路径, 所有这些路径组成了该后缀的条件模式库(即该后缀的子数据库).
eg:在这里插入图片描述
• 条件模式树: 由某个后缀的条件模式基所构建的FP-树称为该后缀的条件模式树.
eg:
在这里插入图片描述
示例——构建 FP-tree
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
• 抽取条件模式基: 首先从FP-树头指针表中的单个频繁元素项开始(项头表最下面开始), 对于每一个元素项, 获得其对应的条件模式基. 条件模式基是以所查找元素项为结尾的路径集合 条件模式基是以所查找元素项为结尾的路径集合, 每一条路径其实都是一条前辍路径(perfix path). 简而言之, 一条前缀路径是介于所査找元素项与树根节点之间的所有内容.
在这里插入图片描述
在这里插入图片描述
• 创建条件FP-树: 由项头表的最后一项开始, 对每 个长度为 一 1的频繁集构造它的 的频繁集构造它的条件模式基(如前), 然后构造它的条件FP-tree,并递归地在该树上进行挖掘, 模式增长通过后缀模式与条件FP-tree产生的频繁模式连接实现.
• 以频繁项r为例, 构建关于r的条件FP树.r的三个前缀路径分别是{z}, {z, x, y,t},{x, s}. 如 果最小支持度 ( 计 数 )min_Support Support =2, 可以发现频繁项集{z, r: 2}.
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值