- 什么是关联规则
- 关联规则中的必须知道的概念
- 关联规则的实现过程
- 关联规则的核心点——如何生成频繁项集(Apriori算法)
- 关联规则的核心点——如何生成频繁项集(FP-Growth算法)
- 注意点
- 误导我们的强关联规则-关联规则评价准则(必看)
一、什么是关联规则Association Rule
所谓数据挖掘就是以某种方式分析源数据,从中发现一些潜在的有用的信息,即数据挖掘又可以称作知识发现。而机器学习算法则是这种“某种方式”,关联规则作为十大经典机器学习算法之一,因此搞懂关联规则(虽然目前使用的不多)自然有着很重要的意义。顾名思义,关联规则就是发现数据背后存在的某种规则或者联系。关联规则挖掘的目的就是找出强关联规则,从而指导商家的决策。
经典例子是尿布和啤酒,除此之外,举个简单的例子:通过调研超市顾客购买的东西,可以发现30%的顾客会同时购买床单和枕套,而在购买床单的顾客中有80%的人购买了枕套,这就存在一种隐含的关系:床单→枕套,也就是说购买床单的顾客会有很大可能购买枕套,因此商场可以将床单和枕套放在同一个购物区,方便顾客购买。
一般,关联规则可以应用的场景有:
-
- 优化货架商品摆放或者优化邮寄商品的目录
- 交叉销售或者捆绑销售
- 搜索词推荐或者识别异
二、必备概念
- 项目:交易数据库中的一个字段,对超市的交易来说一般是指一次交易中的一个物品,如:牛奶
- 事务:某个客户在一次交易中,发生的所有项目的集合:如{牛奶,面包,啤酒}
- 项集:包含若干个项目的集合(一次事务中的),一般会大于0个
- 支持度:项集{X,Y}在总项集中出现的概率
- 频繁项集:某个项集的支持度大于设定阈值(人为设定或者根据数据分布和经验来设定),即称这个项集为频繁项集。
- 置信度:在先决条件X发生的条件下,由关联规则{X->Y }推出Y的概率(见下面的例子)
- 提升度:表示含有X的条件下同时含有Y的概率,与无论含不含X含有Y的概率之比。
支持度和提升度示例:
假如有一条规则:牛肉—>鸡肉,那么同时购买牛肉和鸡肉的顾客比例是3/7,而购买牛肉的顾客当中也购买了鸡肉的顾客比例是3/4。这两个比例参数是很重要的衡量指标,它们在关联规则中称作支持度(support)和置信度(confidence)。
提升度示例:
1000名顾客,购买年货,A组有500人购买茶叶,有450人购买咖啡;B组有0人购买茶叶,有450人购买咖啡。
购买茶叶 | 购买咖啡 | |
A组(500人) | 500 | 450 |
B组(500人) | 0 | 450 |
茶叶->咖啡的支持度=450/1000=45%
茶叶->咖啡的置信度=450/500=90%
茶叶->咖啡的提升度=90%/90%=1
说明:
(1)由于lift(茶叶X->咖啡Y)=1,所以说明X与Y相互独立,即是否有X对于Y的出现没有影响。虽然支持度和置信度都高,但它们之间没有必然的关联关系。
(2)满足最小支持度和最小置信度的关联关系叫做强关联关系
-
- 如果lift>1,叫做有效的强关联关系,
- 如果lift<=1,叫做无效的强关联关系
- 特别的如果lift(X->Y)=1,则称X与Y相互独立
三、实现过程
从以上的分析可以得知,关联规则是从事务集合中挖掘出这样的关联规则{X->Y}:它的支持度和置信度要大于最小阈值(minSup,minConf),当然这个最小阈值是由用户指定的,可以根据数据分布和经验;同时他的提升度最好是大于1的(具体值根据实际情况设定,例如:3、5均可),即是有效强关联规则。
使用关联规则的过程主要包含以下三个步骤:
(1)数据筛选,首先对数据进行清洗,清洗掉那些公共的项目,比如:热门词,通用词(此步依据具体项目而定)
(2)根据支持度(support),从事务集合中找出频繁项集(使用算法:Apriori算法,FP-Growth算法)
(3)根据置信度(confidence),从频繁项集中找出强关联规则(置信度阈值需要根据实验或者经验而定)
(4)根据提升度(lift),从强关联规则中筛选出有效的