基于频繁项集的数据挖掘

频繁项集的定义

一.一些概念

商场购物车事务:
TID Items
1 Bread, Milk
2 Bread, Diaper, Beer, Eggs
3 Milk, Diaper, Beer, Coke
4 Bread, Milk, Diaper, Beer
5 Bread, Milk, Diaper, Coke
关联规则的例子:
{Diaper} → {Beer},
{Milk, Bread} → {Eggs,Coke},
{Beer, Bread} → {Milk}

1.项集(Itemset):一个或多个项(Item)组成的集合.例如:{Milk, Bread, Diaper}
2.支持计数(Support count (σ)):一个项集在事务中出现的次数.
3.支持度(Support):项集在事务中出现的次数除以事务的总数.
s= σ ( Milk , Diaper, Beer )/ | T |
4.置信度(Confidence):
c= σ ( Milk, Diaper, Beer )/ σ ( Milk , Diaper )
5.频繁项集(Frequent Itemset):支持度大于阈值Minsup threshold的项集.
6.关联规则(Association Rule):例如:{Milk, Diaper} → {Beer}被称为关联规则.

二.Apriori算法

我们进行关联规则挖掘的主要任务就是根据给定的事务,在事务中寻找支持度和置信度均大于阈值的关联规则来满足我们的需求.
还是上面的例子:
{Milk,Diaper} → {Beer} (s=0.4, c=0.67)
{Milk,Beer} → {Diaper} (s=0.4, c=1.0)
{Diaper,Beer} → {Milk} (s=0.4, c=0.67)
{Beer} → {Milk,Diaper} (s=0.4, c=0.67)
{Diaper} → {Milk,Beer} (s=0.4, c=0.5)
{Milk} → {Diaper,Beer} (s=0.4, c=0.5)
由例子可以看到,上面所有的关联规则的支持度都是相同的,但他们的置信度不同,所以我们在计算分析过程中可以将支持度和置信度分开,因此,提出了如下方法:
第一步:生成频繁项集:找到所有支持度大于阈值的频繁项集.
第二步:产生规则:在频繁项集中生成置信度大的关联规则.
我们可以注意到,即使这样,我们产生频繁项集时还会有很大的计算花销,假设我们有d个item,则所需要判断的项集有2的d次方个.这是很吓人的一个数字,会给计算机的计算带来非常大的压力.所以基于以上的原因,我们提出了Apriori算法用来降低算法的复杂度
Apriori算法的核心思想就是任何频繁项集的子集也一定是频繁的,换言之,如果我们能判断出一个项集是非频繁的,那所有以它为子集的父集合都是非频繁的,我们就可以删除这部分从而减少计算量.
具体的算法过程如下:
1.令k=1.
2.产生长
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值