【数据挖掘技术】关联规则(Apriori算法)

一、关联规则中的频繁模式  

关联规则(Association Rule)是在数据库和数据挖掘领域中被发明并被广泛研究的一种重要模型,关联规则数据挖掘的主要目的是找出:

【频繁模式】:
Frequent Pattern,即多次重复出现的模式和并发关系(Cooccurrence Relationships),即同时出现的关系,频繁和并发关系也称为关联(Association).

二、应用关联规则的经典案例:沃尔玛超市中“啤酒和尿不湿”的经典营销案例

  • 购物篮分析(Basket Analysis):通过分析顾客购物篮中商品之间的关联,可以挖掘顾客的购物习惯,从而帮助零售商可以更好地制定有针对性的营销策略。

    以下列举一个最简单也最经典的关联规则的例子:婴儿尿不湿—>啤酒[支持度=10%,置信度=70%]

这个规则表明,在所有顾客中,有10%的顾客同时购买了婴儿尿不湿和啤酒,而在所有购买了婴儿尿不湿的顾客中,占70%的人同时还购买了啤酒。发现这个关联规则后,超市零售商决定把婴儿尿不湿和啤酒摆在一起进行销售,结果明显提高了销售额,这就是发生在沃尔玛超市中“啤酒和尿不湿”的经典营销案例。

三、支持度(Support)和置信度(Confidence)

事实上,支持度和置信度是衡量关联规则强度的两个重要指标,他们分别反映着所发现规则有用性确定性

【支持度】
        规则X->Y的支持度:事物全集中包含X U Y的事物百分比。Support(A B)= P(A B)

        支持度主要衡量规则的有用性,如果支持度太小,则说明相应规则只是偶发事件,在商业实践中,偶发事件很可能没有商业价值。

【置信度】
        规则X->Y的置信度:既包括X又包括Y的事物占所有包含了X的事物数量的百分比。Confidence(A B)= P(B|A)

        置信度主要衡量规则的确定性(可预测性),如果置信度太低,那么从X就很难可靠的推断出Y来,置信度太低的规则在实践应用中也没有太大用途。

四、Apriori算法

【基本概念】
1 【资料库(Transaction Database)】:存储着二维结构的记录集(D);
2 【所有项集(Items)】:所有项目的集合(I);
3 【记录 (Transaction )】:在资料库里的一笔记录(T,T属于D);
4 【项集(Itemset)】:同时出现的项的集合。定义为:k-itemset(k项集),k-itemset ? T。除非特别说明,否则下文出现的k均表示项数;
5 【候选 集(Candidate itemset)】:通过向下合并得出的项集。定义为C[k];
6 【强规则】:经过关联规则分析后,针对某些人推销(根据某规则)比盲目推销(一般来说是整个数据)的比率,这个比率越高越好;
7 【剪枝步】只有当子集都是频繁集的候选集才是频繁集,这个筛选的过程就是剪枝步;

Apriori算法是众多的关联规则数据挖掘算法中最著名的算法,其核心是基于两阶段频集思想的递推算法。该关联规则在分类上属于单维、单层、布尔关联规则。

该算法具体分为以下两步进行:

  1. 生成所有的频繁项目集。一个频繁项目集(Frequent Itemset)是一个支持度高于最小支持度阀值(min-sup)的项目集。
  2. 从频繁项目集中生成所有的可信关联规则。这里可信关联规则是指置信度大于最小置信度阀值(min-conf)的规则。

然后使用第1步找到的频集产生期望的规则,产生只包含集合的项的所有规则,其中每一条规则的右部只有一项,这里采用的是中规则的定义。一旦这些规则被生成,那么只有那些大于用户给定的最小可信度的规则才被留下来。为了生成所有频集,使用了递归的方法。

 【Apriori算法】      Apriori算法使用频繁项集的先验知识,使用一种称作逐层搜索的迭代方法,k项集用于探索(k+1)项集。
      step1: 通过扫描事务(交易)记录,找出所有的频繁1项集,该集合记做L1;      step2: 利用L1找频繁2项集的集合L2;      step3: L2找L3,      ...      stepn: 如此下去,直到不能再找到任何频繁k项集。      最后再在所有的频繁集中找出强规则,即产生用户感兴趣的关联规则。

其中,Apriori算法具有这样一条性质:任一频繁项集的所有非空子集也必须是频繁的。因为假如P(I)< 最小支持度阈值,当有元素A添加到I中时,结果项集(A∩I)不可能比I出现次数更多。因此A∩I也不是频繁的。

然而,可能产生大量的候选集,以及可能需要重复扫描数据库,是Apriori算法的两大缺点。

五、关联规则算法的用途

关联规则算法不但在数值型数据集的分析中有很大用途,而且在纯文本文档和网页文件中,也有重要作用。比如发现单词间的并发关系以及Web的使用模式等,这些都是Web数据挖掘、搜索及推荐的基础。

【数据挖掘技术】关联规则(Apriori算法),布布扣,bubuko.com

时间: 2025-01-17 07:57:09

【数据挖掘技术】关联规则(Apriori算法)的相关文章

关联规则——Apriori算法

Apriori算法是基于Apriori定律: 1.如果一个集合是频繁项集,则它的所有子集都是频繁项集. 2.如果一个集合不是频繁项集,则它的所有超集都不是频繁项集. Apriori是由a priori合并而来的,它的意思是后面的是在前面的基础上推出来的,即先验推导,怎么个先验法,其实就是二级频繁项集是在一级频繁项集的基础上产生的,三级频繁项集是在二级频繁项集的基础上产生的,以此类推. Apriori算法的过程如下: 1.抄来的php示例代码,有改动 1 <?php 2 3 4 /** 5 * *

数据挖掘:关联规则的apriori算法在weka的源码分析

相对于机器学习,关联规则的apriori算法更偏向于数据挖掘. 1) 测试文档中调用weka的关联规则apriori算法,如下 try { File file = new File("F:\\tools/lib/data/contact-lenses.arff"); ArffLoader loader = new ArffLoader(); loader.setFile(file); Instances m_instances = loader.getDataSet(); Discre

大数据挖掘技术在电网状态监测与诊断中的应用

大数据挖掘技术在电网状态监测与诊断中的应用 吴振扬( 国网吉林省电力有限公司 , 吉林 长春 130000)[ 摘要 ] 大数据是目 前国内外各个领域的一个研究应用热点. 本文基于大数据技术, 阐述了 大数据技术对于电网发展的重要意义,大数据挖掘技术的发展状况: 分析了 大数据挖掘技术的几种算法特点, 并通过比较选择聚类方法作为在电网状态监测与诊断中应用的方法: 运用聚类算法展望将大数据挖掘技术应用于电网状态监测中的可能.[ 关键词 ] 大数据: 电网: 挖掘: 数据: 监测: 预警: 诊断[

Apriori 算法 理论

关联规则的基本模型-规则 关联规则的基本模型-置信度 关联规则的基本模型-支持度 关联规则基本概念 频繁项集举例 关联规则举例 Apriori的步骤 Apriori的重要性质 Apriori算法实例-产生频繁项集 Apriori算法实例-产生关联规则 Apriori算法思想总结 Apriori算法代码 由L(k-1)生成候选集Ck 从频繁项集中挖掘关联规则 由频繁项集产生关联规则--频繁项集性质 由频繁项集产生关联规则

数据挖掘算法之关联规则挖掘(一)---apriori算法

关联规则挖掘算法在生活中的应用处处可见,几乎在各个电子商务网站上都可以看到其应用 举个简单的例子 如当当网,在你浏览一本书的时候,可以在页面中看到一些套餐推荐,本书+有关系的书1+有关系的书2+...+其他物品=多少¥ 而这些套餐就很有可能符合你的胃口,原本只想买一本书的你可能会因为这个推荐而买了整个套餐 这与userCF和itemCF不同的是,前两种是推荐类似的,或者你可能喜欢的商品列表 而关联规则挖掘的是n个商品是不是经常一起被购买,如果是,那个n个商品之中,有一个商品正在被浏览(有被购买的

玩转大数据:深入浅出大数据挖掘技术(Apriori算法、Tanagra工具、决策树)

一.本课程是怎么样的一门课程(全面介绍) 1.1.课程的背景 “大数据”作为时下最火热的IT行业的词汇,随之而来的数据仓库.数据分析.数据挖掘等等围绕大数据的商业价值的利用逐渐成为行业人士争相追捧的利润焦点. “大数据” 其实离我们的生活并不遥远,大到微博的海量用户信息,小到一个小区超市的月销售清单,都蕴含着大量潜在的商业价值. 正是由于数据量的快速增长,并且已经远远超过了人们的数据分析能力.因此,科学.商用等领域都迫切需要智能化.自动化的数据分析工具.在这样的背景下,数据挖掘技术应用而生,使得

数据挖掘关联规则之Apriori算法

Apriori algorithm是关联规则里一项大数据基本算法.是由Rakesh Agrawal和Ramakrishnan Srikant两位博士在1994年提出的关联规则挖掘算法.关联规则的目的就是在一个数据集中找出项与项之间的关系,也被称为购物蓝分析 (Market Basket analysis),因为“购物蓝分析”很贴切的表达了适用该算法情景中的一个子集. 关于这个算法有一个非常有名的故事:"尿布和啤酒".故事是这样的:美国的妇女们经常会嘱咐她们的丈夫下班后为孩子买尿布,而丈

数据挖掘十大算法--Apriori算法

一.Apriori 算法概述 Apriori 算法是一种最有影响力的挖掘布尔关联规则的频繁项集的 算法,它是由Rakesh Agrawal 和RamakrishnanSkrikant 提出的.它使用一种称作逐层搜索的迭代方法,k- 项集用于探索(k+1)- 项集.首先,找出频繁 1- 项集的集合.该集合记作L1.L1 用于找频繁2- 项集的集合 L2,而L2 用于找L2,如此下去,直到不能找到 k- 项集.每找一个 Lk 需要一次数据库扫描.为提高频繁项集逐层产生的效率,一种称作Apriori

Apriori算法--关联规则挖掘

我的数据挖掘算法代码:https://github.com/linyiqun/DataMiningAlgorithm 介绍 Apriori算法是一个经典的数据挖掘算法,Apriori的单词的意思是"先验的",说明这个算法是具有先验性质的,就是说要通过上一次的结果推导出下一次的结果,这个如何体现将会在下面的分析中会慢慢的体现出来.Apriori算法的用处是挖掘频繁项集的,频繁项集粗俗的理解就是找出经常出现的组合,然后根据这些组合最终推出我们的关联规则. Apriori算法原理 Aprio