机器学习---Apriori

一、介绍

Apriori算法是经典的挖掘频繁项集和关联规则的数据挖掘算法。

关联规则的经典故事:美国的妇女们经常会嘱咐她们的丈夫下班后为孩子买尿布,而丈夫在买完尿布后又要顺手买回自己爱喝的啤酒,因此啤酒和尿布在一起被购买的机会很多。这个举措使尿布和啤酒的销量双双增加,并一直为众商家所津津乐道。

二、基本概念

项与项集:设itemset={item1, item_2, …, item_m}是所有项的集合,其中,item_k(k=1,2,…,m)称为项。项的集合称为项集(itemset),包含k个项的项集称为k项集(k-itemset)。

事务与事务集:一个事务T是一个项集,它是itemset的一个子集,每个事务均与一个唯一标识符Tid相联系。不同的事务一起组成了事务集D,它构成了关联规则发现的事务数据库。

关联规则:关联规则是形如A=>B的蕴涵式,其中A、B均为itemset的子集且均不为空集,而A交B为空。

支持度:一个项集或者规则在所有事物中出现的频率,确定规则可以用于给定数据集的频繁程度。σ(A):表示项集A的支持度计数

项集A的支持度:s(A)=σ(A) / n;
        例:{11}的支持度为6/9=0.67;{11,12}的支持度为4/9=0.44

规则A => B的支持度:s(A => B) = σ(A∪B) / n  
        例:{11,12} =>{13}的支持度为2/9=0.22;

简单地说,A=>B的支持度就是指物品集A和物品集B同时出现的概率。

置信度:确定B在包含A的事务中出现的频繁程度。c(A => B) = σ(A∪B)/σ(A)。

物品集A对物品集B的置信度confidence(A=>B)=P(A|B)
        例:{11} =>{12}的置信度为4/6=0.67;

简单地说,可信度就是指在出现了物品集A 的事务T 中,物品集B 也同时出现    的概率有多大。

支持度:就是概率(一项就是其出现的概率,多项就是其同时出现的概率)
置信度:条件概率(A出现后,B也出现的概率)

频繁项集:如果项集A的相对支持度满足事先定义好的最小支持度阈值(即A的出现频度大于相应的最小出现频度(支持度计数)阈值),则A是频繁项集。

强关联规则:满足最小支持度和最小置信度的关联规则,即待挖掘的关联规则。


支持度是一种重要的度量,因为支持度很低的规则可能只是偶然出现,低支持度的规则多半也是无意义的。因此,支持度通常用来删去那些无意义的规则;

置信度是度量通过规则进行推理的可靠性。对于给定的规则A → B,置信度越高,B在包含A的事物中出现的可能性就越大。即B在给定A下的条件概率P(B|A)越大。

总之,可信度是对关联规则的准确度的衡量,支持度是对关联规则重要性的衡量。
支持度说明了这条规则在所有事务中有多大的代表性,显然支持度越大,关联规则越重要。有些关联规则可信度虽然很高,但支持度却很低,说明该关联规则实用的机会很小,因此也不重要。

三、算法

1.先验原理
在上一小节的末尾,我们已经看到Brute-force在实际中并不可取。我们必须设法降低产生频繁项集的计算复杂度。此时我们可以利用支持度对候选项集进行剪枝,这也是Apriori所利用的第一条先验原理:

Apriori定律1:如果一个集合是频繁项集,则它的所有子集都是频繁项集。

例如:假设一个集合{A,B}是频繁项集,即A、B同时出现在一条记录的次数大于等于最小支持度min_support,则它的子集{A},{B}出现次数必定大于等于min_support,即它的子集都是频繁项集。

Apriori定律2:如果一个集合不是频繁项集,则它的所有超集都不是频繁项集。

举例:假设集合{A}不是频繁项集,即A出现的次数小于 min_support,则它的任何超集如{A,B}出现的次数必定小于min_support,因此其超集必定也不是频繁项集。

2.算法步骤

四、优缺点

优点

  • Apriori是一个迭代算法
  • 数据采用水平组织方式
  • 适合事务数据库的关联规则挖掘
  • 适合稀疏数据集

缺点

  • 多次扫描事务数据库,需要很大的I/Ofu负载
  • 可能产生庞大的候选集
  • 在频繁项目集长度变大的情况下,运算时间显著增加

 

https://blog.csdn.net/guoziqing506/article/details/60882713

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值