数据挖掘—关联规则理论介绍与R实现

Apriori algorithm是关联规则里一项基本算法。是由Rakesh Agrawal和Ramakrishnan Srikant两位博士在1994年提出的关联规则挖掘算法。关联规则的目的就是在一个数据集中找出项与项之间的关系,也被称为购物蓝分析 (Market Basket analysis),因为"购物蓝分析"很贴切的表达了适用该算法情景中的一个子集。

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

  • 图解

  • 关联规则概念介绍

资料库(Transaction Database):存储着二维结构的记录集。定义为:D

所有项集(Items):所有项目的集合。定义为:I。

记录 (Transaction ):在资料库里的一笔记录。定义为:T,T ∈ D

项集(Itemset):同时出现的项的集合。定义为:k-itemset(k项集),k-itemset ? T。除非特别说明,否则下文出现的k均表示项数。

支持度(Support):定 义为 supp(X) = occur(X) / count(D) = P(X)。

1. 解释一:比如选秀比赛,那个支持和这个有点类似,那么多人(资料库),其中有多少人是选择(支持)你的,那个就是支持度;

2. 解释二:在100个人去超市买东西的,其中买苹果的有9个人,那就是说苹果在这里的支持度是 9,9/100;

3. 解释三:P(X),意思是事件X出现的概率;

4. 解释四:关联规则当中是有绝对支持度(个数)和相对支持度(百分比)之分的。

置信度(Confidence/Strength): 定义为 conf(X->Y) = supp(X ∪ Y) / supp(X) = P(Y|X)。

候选 集(Candidate itemset):通过向下合并得出的项集。定义为C[k]。

频繁集(Frequent itemset):支持度大于等于特定的最小支持度(Minimum Support/minsup)的项集。表示为L[k]。注意,频繁集的子集一定是频繁集。

提升比率(提升度Lift):lift(X -> Y) = lift(Y -> X) = conf(X -> Y)/supp(Y) = conf(Y -> X)/supp(X) = P(X and Y)/(P(X)P(Y))

经过关联规则分析后,针对某些人推销(根据某规则)比盲目推销(一般来说是整个数据)的比率,这个比率越高越好,我们称这个规则为强规则;

剪枝步

只有当子集都是频繁集的候选集才是频繁集,这个筛选的过程就是剪枝步;

  • More information about the concepts of arules!

1、项集(Itemset):是一组项,而每一个项都是一个属性值。在购物篮分析示例中,项集包含一组产品,例如Cake、Pepsi、Milk。在研究客户的人口统计信息示例中,项集包含一组属性值,比如{Gender=‘Male‘,Education=‘Bachelor‘}。每个项集都有一个大小,该大小表示项集中包含的项的数目。项集{Cake、Pepsi、Milk}的大小是3。

频繁项集是在数据集中出现频率相当高的那些项集。项集出现频率的阈值是用"支持度"来定义的。

2、支持度(Support):支持度用来度量一个项集的出现频率。项集{A,B}的支持度是同时包含A和B的事务的总个数。即:

Support({A,B})=NumberofTransactions(A,B)

Minimum_Support是一个阈值参数,必须在处理关联模型之前指定该参数。该参数表示用户只对某些项集和规则感兴趣,这些规则表示数据集的最低支持度。它是用于对项集进行限制,而不是对规则进行限制。

3、概率(Probability):也叫置信度(Confidence),是关联规则的属性。规则A=>B要概率是使用{A}的支持度除项集{A,B}的支持度来计算的。公式如下:

Probability(A=>B)=Probability(B|A)=Support(A,B)/Support(A)

也等于NumberofTransactions(A,B)/TotalNumberofTransactions

Minimum_Probability是一个阈值参数,必须在运行算法之前指定该参数.它表用户只对某些规则感兴趣,这些规则摇拥有比较高的概率,而不是最小的概率.Minimum_Probability对项集没有任何影响,它影响的是规则.

3、重要性(Importance):在一些文献中也称为兴趣度分数或者增益。重要性可以用于度量项集和规则。

项集的重要性是使用以下公式来定义的:

如果Importance=1,刚A和B是独立的项,它表示购买A和购买B是两个独立的事件。如果Importance<1,刚A和B是负相关的,这表求如果一个客户购买A了,刚他购买B是不太可能发生的。如果Importance>1,刚A和B是正相关的。这表示如果一个客户购买了A,刚他也可能购买B。

规则的重要性是使用以下公式计算的:

Importance(A=>B)=Log(P(B|A)/P(B|not A))

重要性为0,表示A和B之间没有任何关联。正的重要性分数表示当A为真时,B的概率会上升。负的重要性分数表示,当A为真时,B的概率会下降。

  • 简单例子

  • R实现
时间: 2024-08-04 23:13:52

数据挖掘—关联规则理论介绍与R实现的相关文章

CloudStack(一)简介及相关理论介绍

简介 CloudStack(cloudstack.apache.org)是IaaS类型云计算的一种开源解决方案,同类的解决方案有OpenStack.OpenNebula等,CloudStack是以java语言所研发并具有高可用性.可扩展性.丰富的UI功能.Hypervisor 的多样性等等..(更多请见http://www.cloudstack-china.org/2013/11/2702.html),它可以帮助用户利用自己的硬件提供类似于Amazon EC2那样的公共云服务.CloudStac

实例学习SSIS(五)--理论介绍SSIS

原文:实例学习SSIS(五)--理论介绍SSIS 导读: 实例学习SSIS(一)--制作一个简单的ETL包 实例学习SSIS(二)--使用迭代 实例学习SSIS(三)--使用包配置 实例学习SSIS(四)--使用日志记录和错误流重定向 实例学习SSIS(五)--理论介绍SSIS    一.概述 Integration Services 是用于生成高性能数据集成和工作流解决方案(包括针对数据仓库的提取.转换和加载 (ETL) 操作)的平台. Integration Services 包括: a)生

数据挖掘与机器学习介绍

数据挖掘 1.定义: 数据挖掘(Data Mining)是有组织有目的地收集数据,通过分析数据使之成为信息,从而在大量数据中寻找潜在规律以形成规则或知识的技术. 2.数据挖掘与机器学习的关系: 机器学习可以用来作为数据挖掘的一种工具或手段: 数据挖掘的手段不限于机器学习,譬如还有诸如统计学等众多方法: 但机器学习的应用也远不止数据挖掘,其应用领域非常广泛,譬如人工智能: 机器学习 1.定义: 机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论.统计学.逼近论.凸

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

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

简单介绍一下R中的几种统计分布

统计学上分布有很多,在R中基本都有描述.因能力有限,我们就挑选几个常用的.比较重要的简单介绍一下每种分布的定义,公式,以及在R中的展示. 下面先列举各种分布: rnorm(n, mean=0, sd=1) 高斯(正态)分布rexp(n, rate=1) ?指数分布rgamma(n, shape, scale=1) γ分布 rpois(n, lambda) Poisson分布rweibull(n, shape, scale=1) Weibull分布 rcauchy(n, location=0, s

Tomcat理论介绍

在介绍Tomcat之前我们再来好好回顾一下Servlet和JSP Servlet是一种CGI技术,能实现让Java开发动态的Web资源,并通过CGI技术与前端的Web服务器进行通信,但其对HTML文档的定义都要有JAVA程序来实现,任何静态资源以发生修改都要重新编译整个Java页面程序,非常的麻烦,并且Java程序员必须了解前端HTML的展示方式 servlet也可以被认为是服务器端的applet.servlet被Web服务器加载和执行,就如同applet被浏览器加载和执行一样.servlet从

iOS开发多线程理论介绍

前言 线程是用来执行任务的,线程彻底执行完任务A才能去执行任务B.为了同时执行两个任务,产生了多线程. 就我们日常生活的例子来说: (1)我打开一个视频软件,我开辟一个线程A让它执行下载任务,我开辟一个线程B,用来播放视频.我开辟两个线程后,这两个任务能同时执行,如果我开辟一个线程,只有下载任务完成,才能去执行播放任务. (2)线程相当于店里的服务员,一个服务员同时只能做一件事情,多顾几个服务员,就能同时做很多事情. 在了解多线程之前我们先来介绍一下进程和线程 进程 进程是操作系统中运行的程序专

(转)shiro权限框架详解02-权限理论介绍

http://blog.csdn.net/facekbook/article/details/54893042 权限管理解决方案 本文主要介绍权限管理的解决方法: 粗颗粒度和细颗粒度 基于url拦截 使用权限管理框架 粗颗粒度和细颗粒度 什么是粗颗粒度和细颗粒度 在上一文中提到粗颗粒度和细颗粒度,但是没有细讲. 对资源类型的管理称为粗颗粒度权限管理,既只控制到菜单.按钮.方法,粗颗粒度的例子比如:用户具有用户管理的权限,具有导出订单的权限.对资源实例的控制称为细颗粒度权限管理,既控制到数据级别,

算法学习笔记:knn理论介绍

阅读对象:了解指示函数,了解训练集.测试集的概念. 1.简介 knn算法是监督学习中分类方法的一种.所谓监督学习与非监督学习,是指训练数据是否有标注类别,若有则为监督学习,若否则为非监督学习.所谓K近邻算法,即是给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例,这K个实例的多数属于某个类(加权),就把该输入实例分类到这个类中. 最初的近邻法是由Cover和Hart于1968年提出的,随后得到理论上深入的分析与研究,是非参数法中最重要的方法之一,它在论文Nearest