数据挖掘之Apriori频繁项集挖掘

本文的代码文件原件可以在我们的 "数据臭皮匠" 中输入"第六章1" 拿到

1.基本概念介绍

频繁项集和关联规则的挖掘首先需要了解一些概念, 如支持度, 置信度, 事务,事务集,项,项集, 频繁项集等, 首先介绍下基本的概念定义(以下为笔者的简单化理解, 更严谨的定义请参考书中内容):

首先假设我们有一个由多行多列组成的表格

事务: 可以将事务简单理解为表格的其中一行

事务集:一个表格会有多行, 这个包括多个事务的集合就叫事务集

项:表格中每一行会包括多个值, 每一个值就是一个项

项集:多个项组成一个集合, 这个由多个项组成的集合就叫项集

k项集: 包含k个项的项集为k项集 , 如{I1,I2} 为一个2项集

支持度:假设有A项集, 表格共有N行, 其中包括A项集的有m行, 则绝对支持度为m, 相对支持度为m/N

置信度:表格中, 包括项集A的行有n1行, 同时包括项集A和B的有n2行, 置信度c = n2/n1

频度: 表格中有n1行包括项集A, n1即为A的频度

频繁项集: 如果项集的A的相对支持度满足预设的最小支持度阈值, 则项集A为频繁项集

规则: 假设有A,B两个项集, 由A出现可以推出B也出现(即A=>B) 这就是一条规则

强规则: 同时满足最小支持度阈值和最小置信度阈值的规则为强规则

 

2.闭频繁项集和极大频繁项集定义

从大型数据集中挖掘频繁项集的主要挑战是: 这种挖掘常常产生大量满足最小支持度阈值的项集, 这是因为如果一个项集是频繁的, 则它的每个子集也是频繁的(回忆下支持度的定义,N行的表格中有m行包括项集A, 则A的相对支持度为m/N)。如果一个包括100个项的项集为频繁项集{a1,a2,...a100} , 则它有100个频繁1项集, C_{100}^{2} =4950个频繁2项集{a1,a2}, {a1,a3}, ...{a99,a100} , 因此, 该100项的频繁项集共可以产生1.23*10^{30}  个频繁项集, 对于任何计算机, 这个项集都太大了, 大到无法计算和存储。

真超项集:假设X,Y为项集, 如果X是Y的真子项集, 则Y是X的真超项集。(X中每个项都包含在Y中, Y中至少有一个项不包含在X中)

闭的项集: 对于X项集, 如果表格中不存在与其拥有相同支持度的它的真超项集,则项集X为闭的。

闭频繁项集:如果项集X是闭的且频繁的, 则项集X为闭频繁项集。

极大频繁项集:对于频繁项集X,如果表格中不存在它的频繁的超项集, 则X为极大频繁项集

 

3.Apriori(先验)算法

Apriori算法使用一种称为逐层搜索的迭代方法, 首先通过扫描数据库,累计每个项的计数,并收集频繁1项集的集合。该集合记为L1,然后使用L1找出频繁2项集的集合L2, 使用L2找出L3, 如此下去,直到不能再找到频繁k项集。

为了提高频繁项集逐层产生的效率, 一种称为先验性质的重要性质用于压缩搜索空间。

先验性质:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值