在各种数据挖掘算法中,关联规则挖掘算是比較重要的一种,尤其是受购物篮分析的影响,关联规则被应用到非常多实际业务中,本文对关联规则挖掘做一个小的总结。

首先,和聚类算法一样,关联规则挖掘属于无监督学习方法,它描写叙述的是在一个事物中物品间同一时候出现的规律的知识模式,现实生活中,比方超市购物时,顾客购买记录经常隐含着非常多关联规则。比方购买圆珠笔的顾客中有65%也购买了笔记本。利用这些规则。商场人员能够非常好的规划商品摆放问题;
为叙述方便。设R= { I1,I2 ......Im} 是一组物品集,W 是一组事务集。W 中的每一个事务T 是一组物品,T是R的子集。

如果有一个物品集A,一个事务T,关联规则是例如以下形式的一种蕴含:A→B,当中A、B 是两组物品,A属于I子集,B属于I子集。

在关联规则中设计4个经常使用关键指标
1.置信度(confidence)

定义:设W中支持物品集A的事务中。有c %的事务同一时候也支持物品集B,c %称为关联规则A→B 的可信度。

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

实例说明:上面所举的圆珠笔和笔记本的样例。该关联规则的可信度就回答了这样一个问题:假设一个顾客购买了圆珠笔,那么他也购买笔记本的可能性有多大呢?在上述样例中,购买圆珠笔的顾客中有65%的人购买了笔记本, 所以可信度是65%。

概率描写叙述:物品集A对物品集B的置信度confidence(A==>B)=P(A|B)

2.支持度(support)

定义:设W 中有s %的事务同一时候支持物品集A 和B,s %称为关联规则A→B 的支持度。

支持度描写叙述了A 和B 这两个物品集的并集C 在全部的事务中出现的概率有多大。

通俗解释:简单地说。A==>B的支持度就是指物品集A和物品集B同一时候出现的概率。

实例说明:某天共同拥有1000 个顾客到商场购买物品,当中有150个顾客同一时候购买了圆珠笔和笔记本,那么上述的关联规则的支持度就是15%。

概率描写叙述:物品集A对物品集B的支持度support(A==>B)=P(A n B)

3.期望置信度(Expected confidence

定义:设W 中有e %的事务支持物品集B,e %称为关联规则A→B 的期望可信度度。

通俗解释:期望可信度描写叙述了在没有不论什么条件影响时,物品集B 在全部事务中出现的概率有多大。

实例说明:假设某天共同拥有1000 个顾客到商场购买物品,当中有250 个顾客购买了圆珠笔,则上述的关联规则的期望可信度就是25
%。

概率描写叙述:物品集A对物品集B的期望置信度为support(B)=P(B)

4.提升度(lift)

定义:提升度是可信度与期望可信度的比值

通俗解释:提升度反映了“物品集A的出现”对物品集B的出现概率发生了多大的变化。

实例说明:上述的关联规则的提升度=65%/25%=2.6

概率描写叙述:物品集A对物品集B的期望置信度为lift(A==>B)=confidence(A==>B)/support(B)=p(B|A)/p(B)

总之,可信度是对关联规则的精确度的衡量,支持度是对关联规则重要性的衡量。支持度说明了这条规则在全部事务中有多大的代表性。显然支持度越大,关联规则越重要。

有些关联规则可信度尽管非常高,但支持度却非常低。说明该关联规则有用的机会非常小,因此也不重要。

在关联规则挖掘中。满足一定最小置信度以及支持度的集合成为频繁集(frequent itemset),或者强关联。关联规则挖掘则是一个寻找频繁集的过程。



关联规则挖掘的相关算法

1.Apriori算法:使用候选项集找频繁项集

Apriori算法是一种最有影响的挖掘布尔关联规则频繁项集的算法。其核心是基于两阶段频集思想的递推算法。该关联规则在分类上属于单维、单层、布尔关联规则。在这里。全部支持度大于最小支持度的项集称为频繁项集,简称频集。

该算法的基本思想是:首先找出全部的频集,这些项集出现的频繁性至少和提前定义的最小支持度一样。然后由频集产生强关联规则,这些规则必须满足最小支持度和最小可信度。然后使用第1步找到的频集产生期望的规则。产生仅仅包括集合的项的全部规则,当中每一条规则的右部仅仅有一项。这里採用的是中规则的定义。一旦这些规则被生成。那么仅仅有那些大于用户给定的最小可信度的规则才被留下来。

为了生成全部频集,使用了递推的方法。

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

2.基于划分的算法

Savasere等设计了一个基于划分的算法。这个算法先把数据库从逻辑上分成几个互不相交的块,每次单独考虑一个分块并对它生成全部的频集。然后把产生的频集合并。用来生成全部可能的频集,最后计算这些项集的支持度。这里分块的大小选择要使得每一个分块能够被放入主存,每一个阶段仅仅需被扫描一次。而算法的正确性是由每一个可能的频集至少在某一个分块中是频集保证的。该算法是能够高度并行的,能够把每一分块分别分配给某一个处理器生成频集。产生频集的每一个循环结束后。处理器之间进行通信来产生全局的候选k-项集。通常这里的通信过程是算法运行时间的主要瓶颈;而还有一方面,每一个独立的处理器生成频集的时间也是一个瓶颈。

3.FP-树频集算法

针对Apriori算法的固有缺陷,J. Han等提出了不产生候选挖掘频繁项集的方法:FP-树频集算法。

採用分而治之的策略。在经过第一遍扫描之后,把数据库中的频集压缩进一棵频繁模式树(FP-tree),同一时候依旧保留当中的关联信息,随后再将FP-tree分化成一些条件库,每一个库和一个长度为1的频集相关,然后再对这些条件库分别进行挖掘。

当原始数据量非常大的时候,也能够结合划分的方法,使得一个FP-tree能够放入主存中。实验表明,FP-growth对不同长度的规则都有非常好的适应性。同一时候在效率上较之Apriori算法有巨大的提高。

数据挖掘算法之-关联规则挖掘(Association Rule)(购物篮分析)的更多相关文章

  1. 数据挖掘算法之-关联规则挖掘(Association Rule)

    在数据挖掘的知识模式中,关联规则模式是比较重要的一种.关联规则的概念由Agrawal.Imielinski.Swami 提出,是数据中一种简单但很实用的规则.关联规则模式属于描述型模式,发现关联规则的 ...

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

    关联规则挖掘算法在生活中的应用处处可见,几乎在各个电子商务网站上都可以看到其应用 举个简单的例子 如当当网,在你浏览一本书的时候,可以在页面中看到一些套餐推荐,本书+有关系的书1+有关系的书2+... ...

  3. 数据挖掘算法之关联规则挖掘(二)FPGrowth算法

    之前介绍的apriori算法中因为存在许多的缺陷,例如进行大量的全表扫描和计算量巨大的自然连接,所以现在几乎已经不再使用 在mahout的算法库中使用的是PFP算法,该算法是FPGrowth算法的分布 ...

  4. 数据挖掘系列 (1) 关联规则挖掘基本概念与 Aprior 算法

    转自:http://www.cnblogs.com/fengfenggirl/p/associate_apriori.html 数据挖掘系列 (1) 关联规则挖掘基本概念与 Aprior 算法 我计划 ...

  5. 数据挖掘进阶之关联规则挖掘FP-Growth算法

    数据挖掘进阶之关联规则挖掘FP-Growth算法 绪 近期在写论文方面涉及到了数据挖掘,需要通过数据挖掘方法实现软件与用户间交互模式的获取.分析与分类研究.主要涉及到关联规则与序列模式挖掘两块.关联规 ...

  6. (转载)微软数据挖掘算法:Microsoft 关联规则分析算法(7)

    前言 本篇继续我们的微软挖掘算法系列总结,前几篇我们分别介绍了:微软数据挖掘算法:Microsoft 决策树分析算法(1).微软数据挖掘算法:Microsoft 聚类分析算法(2).微软数据挖掘算法: ...

  7. 数据算法 --hadoop/spark数据处理技巧 --(5.移动平均 6. 数据挖掘之购物篮分析MBA)

    五.移动平均 多个连续周期的时间序列数据平均值(按相同时间间隔得到的观察值,如每小时一次或每天一次)称为移动平均.之所以称之为移动,是因为随着新的时间序列数据的到来,要不断重新计算这个平均值,由于会删 ...

  8. Apriori算法在购物篮分析中的运用

    购物篮分析是一个很经典的数据挖掘案例,运用到了Apriori算法.下面从网上下载的一超市某月份的数据库,利用Apriori算法进行管理分析.例子使用Python+MongoDB 处理过程1 数据建模( ...

  9. R语言和数据分析十大:购物篮分析

    提到数据挖掘,我们的第一个反应是之前的啤酒和尿布的故事听说过,这个故事是一个典型的数据挖掘关联规则.篮分析的传统线性回归之间的主要差别的差别,对于离散数据的相关性分析: 常见的关联规则: 关联规则:牛 ...

随机推荐

  1. poj--2186--Popular Cows (scc+缩点)

    Popular Cows Time Limit : 4000/2000ms (Java/Other)   Memory Limit : 131072/65536K (Java/Other) Total ...

  2. 框架-Java:Spring MVC

    ylbtech-框架-Java:Spring MVC Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面.Spring 框架提供了构建 We ...

  3. PDOHelper (原创)

    class PDOHelper{ public static $db =null;// new PDO('mysql:host=192.168.1.68;dbname=test','root','12 ...

  4. 几道leetcode不会做的题目

    1.set没有back()函数,今天想到用这个,才发现没有. 2. tuple的initialize_list construct好像不能使用,其实之前没使用过tuple,都是pair,复杂一点的自己 ...

  5. OpenCV+VS 2015开发环境配置

    最近跑C程序,头文件中用到了OpenCV中的文件,找了很多篇OpenCV+VS的环境配置,发现如下这篇写的最为详细,特转载来自己的博客中留存,并附上原博客地址如下 OpenCV学习笔记(一)——Ope ...

  6. WebDav协议基于HTTP 1

    首先第一篇提供配置WebDav的方式 网上找了两篇比较好的配置方式分别适用于Win7 Win2003,而且都经过测试配置可以正常使用 原文中保留了引用地址,这个纯属为了要尊重别人的劳动成果 在第二篇中 ...

  7. mysql Seconds_Behind_Master

    通过show slave status查看到的Seconds_Behind_Master,从字面上来看,他是slave落后master的秒数,一般情况下,也确实这样,通过Seconds_Behind_ ...

  8. smarty 3 + codeigniter 2 + hmvc

    参考资料 https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/src/fecd39ccdf56?at=defau ...

  9. Qt5 webview加载本地网页

    文件结构 qtchart.pro QT += core gui webkitwidgets greaterThan(QT_MAJOR_VERSION, 4): QT += widgets TARGET ...

  10. C++的Matlab接口

    与 原文 过程有些不同,根据具体环境自行配置即可! 转自于:http://blog.csdn.net/left_la/article/details/8206645 我的计算机环境是win7 64位系 ...