在上一篇数据挖掘入门算法整理中提到,Apriori算法是关联规则算法中使用最为广泛的算法,这次我们就来学习下该算法的基本知识。

一、算法概述

Apriori 算法是一种最有影响力的挖掘布尔关联规则的频繁项集的 算法,它是由Rakesh Agrawal 和RamakrishnanSkrikant 提出的。它使用一种称作逐层搜索的迭代方法,k- 项集用于探索(k+1)- 项集。首先,找出频繁 1- 项集的集合。该集合记作L1。L1 用于找频繁2- 项集的集合 L2,而L2 用于找L2,如此下去,直到不能找到 k- 项集。每找一个 Lk 需要一次数据库扫描。为提高频繁项集逐层产生的效率,一种称作Apriori 性质的重 要性质 用于压缩搜索空间。其运行定理在于一是频繁项集的所有非空子集都必须也是频繁的,二是非频繁项集的所有父集都是非频繁的。

二、应用场景

Apriori算法应用广泛,可用于消费市场价格分析,猜测顾客的消费习惯;网络安全领域中的入侵检测技术;可用在用于高校管理中,根据挖掘规则可以有效地辅助学校管理部门有针对性的开展贫困助学工作;也可用在移动通信领域中,指导运营商的业务运营和辅助业务提供商的决策制定。
三、基本概念
    Apriori算法最重要的两个概念为支持度(support)和置信度(confidence):

  • 支持度:support({A,B})=P(AB),即事件A、B同时发生的概率
  • 置信度:confidence(A=>B)=support({A,B})/support({A}),即在A发生的事件中同时发生B的概率,计算中A到B的置信度即为{A,B}的支持度/{A}的支持度。
  • 最小置信度:预定值,一般由多次尝试算法结果得出,用来排除每次候选集中的元素,已得到下一层的频繁项集。
  • 最小置信度,预设值,用来判断置信度
  • 强规则:同时满足最小支持度和最小置信度的规则称为强规则

三、实现原理

算法分为两个阶段:计算各层支持度和根据支持度计算置信度。这里直接通过一个例子来说明,初始集合有5条记录,根据条记录中的商品组合,我们可以逐级算出每一层的支持度,计算过程如下图:

支持度计算过程

    可以看到,最终可以得到3层支持度:L1,L2,L3,接下来,我们可以直接通过支持度计算各层的置信度,这里我们以L3为例:

置信度计算过程

置信度计算比较简单,就是根据K层集合中K-1个元素到另外一个元素的置信度,直接套用上边公式即可。这里我们其实可以得出规则,当BC或CE出现的时候,E或B必然出现。当然,这里只是个简单的例子,实际中必须要有足够的样本,结果才更可靠。

四、结语

从上边看Apriori算法基本原理还是比较简单的,但是实际过程中如果按照这样来计算,对于N个商品会有2^N−1个组合,但N稍大点计算量就非常大了,所以实际算法实现中,要利用开头提到Apriori算法的性质进行剪枝,以减少计算量。此外,关联规则算法还有FP-Growth和Eclat等更为高效的算法,这里不再介绍,可自行了解。

参考: Apriori算法详解、使用Apriori算法和FP-growth算法进行关联分析

数据挖掘算法——Apriori的更多相关文章

  1. 数据挖掘算法-Apriori Algorithm(关联规则)

    http://www.cnblogs.com/jingwhale/p/4618351.html Apriori algorithm是关联规则里一项基本算法.是由Rakesh Agrawal和Ramak ...

  2. 数据挖掘算法——Apriori算法

    Apriori算法  首先,Apriori算法是关联规则挖掘中很基础也很经典的一个算法. 转载来自:链接:https://www.jianshu.com/p/26d61b83492e 所以做如下补充: ...

  3. 【十大经典数据挖掘算法】Apriori

    [十大经典数据挖掘算法]系列 C4.5 K-Means SVM Apriori EM PageRank AdaBoost kNN Naïve Bayes CART 1. 关联分析 关联分析是一类非常有 ...

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

    一.本课程是怎么样的一门课程(全面介绍) 1.1.课程的背景           “大数据”作为时下最火热的IT行业的词汇,随之而来的数据仓库.数据分析.数据挖掘等等围绕大数据的商业价值的利用逐渐成为 ...

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

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

  6. 详解十大经典数据挖掘算法之——Apriori

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是机器学习专题的第19篇文章,我们来看经典的Apriori算法. Apriori算法号称是十大数据挖掘算法之一,在大数据时代威风无两,哪 ...

  7. 【十大经典数据挖掘算法】PageRank

    [十大经典数据挖掘算法]系列 C4.5 K-Means SVM Apriori EM PageRank AdaBoost kNN Naïve Bayes CART 我特地把PageRank作为[十大经 ...

  8. 【十大经典数据挖掘算法】EM

    [十大经典数据挖掘算法]系列 C4.5 K-Means SVM Apriori EM PageRank AdaBoost kNN Naïve Bayes CART 1. 极大似然 极大似然(Maxim ...

  9. 【十大经典数据挖掘算法】AdaBoost

    [十大经典数据挖掘算法]系列 C4.5 K-Means SVM Apriori EM PageRank AdaBoost kNN Naïve Bayes CART 1. 集成学习 集成学习(ensem ...

随机推荐

  1. 对jvm虚拟机 内存溢出的思考

    java内存溢出:当新产生对象时,新生代空间不够,导致无法申请到足够的空间,报内存溢出 内存泄漏:一些静态集合,静态常量没有被gc清理,越来越多,占用内存,最后导致无法申请到新的空间

  2. java 通用查询框架Querydsl 简介

    Querydsl 是一个通用的查询框架,专注于通过JavaAPI构建类型安全的SQL查询说说Querydsl的优势吧: 1. Querydsl支持代码自动完成,因为才纯Java API编写查询,因此主 ...

  3. JAVA代码之斗地主发牌

    理解很好理解,关键是思路 按照斗地主的规则,完成洗牌发牌的动作: 具体规则: 1. 组装54张扑克牌 2. 将54张牌顺序打乱 3. 三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌. ...

  4. Java基本语法和变量

    1基本语法 1.1 标识符.关键字 在程序中用于定义名称的都为标识符,如文件名称.类名称.方法名称或变量名称等. 在Java中标识符的定义格式由字母.数字._(下划线),$所组成,不能以数字开头, 不 ...

  5. Java基础语法(自定义类、ArrayList集合)

    Java基础语法 今日内容介绍 u 自定义类 u ArrayList集合 第1章 引用数据类型(类) 1.1 引用数据类型分类 提到引用数据类型(类),其实我们对它并不陌生,如使用过的Scanner类 ...

  6. vue-cli3脚手架的配置以及使用

    Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统,提供: 通过 @vue/cli 搭建交互式的项目脚手架. 通过 @vue/cli + @vue/cli-service-global  ...

  7. 安装ubuntu出现BUG soft lockup的解决方法(16.04 14.04)

    对于16.04而言,当时用的是UtrISO 安装的,导致安装过程用会出现 “not a com32r image” 的错误,解决方法见上文的: boot: live 华硕Z9主板安装16.04以上系统 ...

  8. javaSe-字符型和布尔型

    其实java数据类型一节就可以全部写完了,为什么还需要字符型和布尔型呢,原因是这俩个都很重要: 字符型用char表示,字符分三种: 普通字符:char a = 'a',普通字符表示一个普通的字符,没有 ...

  9. Jquery库插件大全(工作中遇到总结)

    Jquery UI所有插件下载:http://jqueryui.com/download/all/ Jquery layer灯箱等演示与帮助:http://sentsin.com/jquery/lay ...

  10. 使用HelpProvide组件调用帮助文件

    实现效果: 知识运用: HelpProvider组件的HelpNameSpace属性 //于对象关联的帮助文件名 public virtual string HelpNameSpace {get; s ...