关联规则挖掘(一)
来源:互联网 发布:淘宝上的东西是高仿吗 编辑:程序博客网 时间:2024/05/29 05:13
关联规则挖掘是一种常用的数据挖掘手段,本文作为关联规则挖掘的第一篇文章,将主要介绍关联规则挖掘的来历与目的,以购物篮分析的一个简单例子熟悉基本概念,以及从多维度对关联规则挖掘进行分类。
一、概述
相信大家都听过啤酒与尿布的故事,这就是一个最典型的关联规则挖掘的例子:购物篮分析。通过发现顾客放入其购物篮中不同商品之间的联系,分析顾客的购买习惯,进而了解哪些商品频繁地被顾客同时购买,这种关联规则的发现可以帮助零售商制定营销策略。例如,在同一次去超市,如果顾客购买牛奶,他也购买面包的可能性有多大?通过帮助零售商有选择地经销和安排货架,这种信息可以引导销售。例如,将牛奶和面包尽可能放近一些,可以进一步刺激一次去商店同时购买这些商品;亦或者将牛奶和鸡蛋放在商店的两端,可能诱发买这些商品的顾客一路挑选其它商品。
关联规则挖掘的目的是发现大量数据中项集之间有趣的关联或相关联系。随着大量数据不停地收集和存储,许多业界人士对于从他们的数据库中挖掘关联规则越来越感兴趣。从大量商务事务记录中发现有趣的关联关系,可以帮助许多商务决策的制定,如分类设计、交叉购物和贱卖分析。
二、基本概念
以一个简单的例子来理解基本概念:
t1: 牛肉、鸡肉、牛奶t2: 牛肉、奶酪t3: 奶酪、靴子t4: 牛肉、鸡肉、奶酪t5: 牛肉、鸡肉、衣服、奶酪、牛奶t6: 鸡肉、衣服、牛奶t7: 鸡肉、牛奶、衣服
任务相关的数据D是数据库事务的集合,其中每个事务T是项的集合,使得
A 是一个项集,如
关联规则是形如
支持度:
置信度:
强规则:同时满足最小支持度阈值和最小置信度阈值的规则。
项集:项的集合。
k-项集:包含 k 个项的项集。
项集的频率:包含项集的事务数。
频繁项集:项集满足最小支持度。频繁 k-项集的集合通常记作
提升度lift:
值得注意的是:当右手边的项集的支持度已经很显著时,即使规则的confidence较高,这条规则也是无效的。
举个例子:
在所分析的10000个事务中,6000个事务包含计算机游戏,7500个包含游戏机游戏,4000个事务同时包含两者。
关联规则(计算机游戏,游戏机游戏) 支持度为0.4,看似很高,但其实这个关联规则是一个误导。
在用户购买了计算机游戏后有4000/6000=0.667的概率的去购买游戏机游戏,而在没有任何前提条件时,用户反而有7500/10000=0.75的概率去购买游戏机游戏,也就是说设置了购买计算机游戏这样的条件反而会降低用户去购买游戏机游戏的概率,所以计算机游戏和游戏机游戏是相斥的。
提升度的意义在于度量项集{X}和项集{Y}的独立性,如果提升度=1,说明两个条件没有任何关联;如果<1,说明A条件(或者说A事件的发生)与B事件是相斥的,一般在数据挖掘中当提升度大于3时,我们才承认挖掘出的关联规则是有价值的。
关联规则的挖掘是一个两步的过程:
(1)找出所有频繁项集:根据定义,这些项集出现的频繁性至少和预定义的最小支持计数一样。
(2)由频繁项集产生强关联规则:根据定义,这些规则必须满足最小支持度和最小置信度。
这两步中,第二步较容易,挖掘关联规则的总体性能由第一步决定。
三、关联规则的分类
购物篮分析只是关联规则挖掘的一种形式。事实上,有许多种关联规则。根据下面的标准,关联规则有多种分类方法:
1.根据规则中所处理的值类型:
- 如果规则考虑的关联是项的在与不在,则它是布尔关联规则。如:
buy(X,牛肉)⇒buy(X,鸡肉) 。 - 如果规则描述的是量化的项或属性之间的关联,则它是量化关联规则。如:
age(X,"30…39")∪income(X,"42K…48K")⇒buys(X,high_resolution_TV) ,其中,X 是代表顾客的变量。
2.根据规则中涉及的数据维:
- 如果关联规则中的项或属性每个只涉及一个维,则它是单维关联规则。如:
buy(X,牛肉)⇒buy(X,鸡肉) 。 - 如果规则涉及两个或多个维,则它是多维关联规则。如:
age(X,"30…39")∪income(X,"42K…48K")⇒buys(X,high_resolution_TV) ,其中,X 是代表顾客的变量。
3.根据规则集所涉及的抽象层:
- 如果关联规则在不同的抽象层发现,则它是多层关联规则。例如,假定挖掘的关联规则集包含下面规则:
age(X,”30…39”)⇒buys(X,”laptopcomputer”) age(X,”30…39”)⇒buys(X,”computer”) 在上述规则中,购买的商品涉及不同的抽象层,即computer在比laptop computer高的抽象层。 - 如果关联规不涉及不同的抽象层,则它是单层关联规则。
4.根据关联挖掘的各种扩充:
- 可以扩充到相关分析,进而可以识别项是否相关。
- 可以扩充到挖掘最大模式(即最大的频繁模式)和频繁闭项集。最大模式是频繁模式 p,使得 p的任何真超模式 都不是频繁的;频繁闭项集是一个频繁的、闭的项集,其中项集 c 是闭的,如果不存在 c 的真超集 c’,使得每个包含 c 的事务也包含 c’。使用最大模式和频繁闭项集可以显著地压缩挖掘所产生的频繁项集数。
参考资料:
【1】数据挖掘概念与技术
【2】浅谈数据挖掘中的关联规则挖掘
- 关联规则挖掘(一)
- 关联规则挖掘(一):基本概念
- 关联规则挖掘(一):基本概念
- 基于海量数据的关联规则挖掘(一)
- 数据挖掘算法之关联规则挖掘(一)apriori算法
- 数据挖掘算法之关联规则挖掘一apriori算法
- 关联规则(一)
- [数据挖掘]关联规则挖掘
- Apriori算法-关联规则挖掘(freemind)
- 关联规则挖掘(二):Apriori算法
- 数据挖掘(3):关联规则评价
- 数据挖掘(3):关联规则评价
- 关联规则挖掘(二)-- Apriori 算法
- 数据挖掘--关联规则
- Weka --- 关联规则挖掘
- 关联规则挖掘
- 关联规则挖掘评述
- 关联规则挖掘
- SSR搭建、配置、提速,免流
- Python基础篇之dict
- 基于Token的WEB后台认证机制
- js合并两个数组的方法
- 查看Android的appPackage和Activity的多种方法
- 关联规则挖掘(一)
- showdoc部署问题汇总
- python自学笔记(9)--《用python写网络爬虫》之网站背景调研
- Qt实现多国语言动态切换
- 第三章 Django基础知识回顾
- 同时使用clipboard和layer时遇到的坑
- Intellij IDEA 2017.3注册server
- Android View 基础知识
- c#从入门到精通最全笔记——基础理论篇