数据挖掘之关联规则

一、基本概念

  1. 频繁项:在多个集合中,频繁出现的元素/项,就是频繁项
  2. 频繁项集:有一系列集合,这些集合有些相同的元素,集合中同时出现频率高的元素形成一个子集,满足一定阈值条件,就是频繁项集。
  3. 极大频繁项集:元素个数最多的频繁项集合,即其任何超集都是非频繁项集。
  4. k项集:k项元素组成的一个集合
  5. 支持度: 包含频繁项集F的集合的数目
  6. 可信度:频繁项F与某项j的并集 (即F U {j})的支持度 与 频繁项集F的支持度的比值,
  7. 兴趣度:F U {j} 可信度 与 包含{j}的集合比率之间的差值。若兴趣度很高,则 频繁项集F会促进 j 的存在, 若兴趣度为负值,且频繁项集会抑制 j 的存在;若兴趣度为0,则频繁项集对 j 无太大影响。
    频繁项集 与 某项 j 的关系就是 关联规则。
二、 关联规则
关联规则分两步:
  • 找出所有频繁项集(满足最小支持度的项集),称所有是之全部的一项、二项、多项频繁集
  • 由频繁项集找出强关联规则(满足最小支持度和最小可信度的项集)
关联规则的整体性能有第一步决定,给定D项,可能有2的D次方个候选项
三、 Aprior算法

是一种筛选频繁项集的优化算法。

频繁项集两个定理:

1)频繁项子集定理:频繁项集的子集都是频繁项集,而非频繁项的超集都是非频繁项集。

2)频繁项集的合并/连接定理:由k-1项集,向k项集进行合并。当两个k-1项集,拥有k-2个相同元素时,才能合并成k项集。

基本步骤

  1. Lk-1:所有 频繁 (k - 1)- 项集 的集合 
  2.  Ck :所有 候选 k- 项集 的集合 
  3. 连接:  由Lk-1自连接得到Ck 
  4.  修剪: 对Ck中的任意一个k- 项集 ,如果它的任一(k - 1)- 项集 不是频繁的,那么它本身也不可能是频繁的 
四、算法优化

PCY算法

当频繁项对的数量比较大时,内存放不下,而这时对频繁项对进行计数时,可能会产生内存抖动,即内存页面频繁换入换出,因为不同的频繁项对计数器可能放在不同的页面上。


对Aprior进行改进。

在第一步扫描时,为频繁项对 创建一张hash表,hash表只是统计 hash到本桶的项对的个数。第二步,统计哪些是频繁桶,并对桶内的两个频繁项进行计数处理。这样,每个频繁桶内代表的频繁项集比较少,这样,计算更大频繁项集的计算量就大大降低了。


 多hash算法

PCY的形变算法,采用多个hash表和hash函数,只要桶的平均计数不小于阈值,分频繁桶的数目任然比较多。这样,一个非频繁对同时hash到两个hash表的频繁桶内的概率就更低。减少了第二遍扫描的运算量。


 随机化算法

前提: 当数据量非常大,整个购物篮数据无法放入内存,这时,进行统计会有一定困难

解决方法:对购物篮进行随机抽样,只要样本数据足够大,还是能够提取出逼近真实情况的频繁项集的。

由于是抽样,涉及概率p,所以频繁项支持度的阈值s也需要降低,但是由于概率的乘法定理,抽样的频繁项集肯定是小于实际的数目,所以,需要降低阈值,可以将新的阈值设置的更小点,如0.9*p*s。


抽样带来的新问题: 伪正例(非频繁项集被统计成频繁项集)、伪反例(频繁项集没有提取出来)。伪正例可以通过后续的处理,排除掉,但是无法消除伪反例的情况。


SON算法

对随机抽样的算法进行改进。

将所有购物篮划分成相对比较小的小组,这样每个小组都能放进内存进行处理,每个小组内的项进行统计。处理完所有小组,然后,统计项对的频率,找出频繁项集。这个算法比较适合map-reduce的处理方式。


在统计每个小组的频繁项集时,其阈值仍然是需要降低的,类似于随机抽样算法。


Toivonen 算法

在给给定足够内存的情况下:

刚开始,类似于随机抽样算法,对购物篮抽样,降低阈值,找出频繁项集,除此之外,还要检测反例边界,反例边界的构成:非频繁集,但去掉任何一个元素就是频繁集。

在完整的数据集中,对反例边界上的项集进行检测,若这个反例边界的项集 没伪反例,即在完整数据集中,仍然是非频繁项集,则接收此次抽样结果;若找到了伪反例,那么就再次抽样,直至成功。






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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值