Association rule mining 是数据挖掘中最活跃的研究方法之一,能够用来发现事情之间的联系,最先是为了发现超市交易数据库中不一样的商品之间的关系。web
这里有一则沃尔玛超市的趣闻。沃尔玛曾今对数据仓库中一年多的原始交易数据进行了详细的分析,发现与尿布一块儿被购买最多的商品居然是啤酒。借助数据仓库和关联规则,发现了这个隐藏在背后的事实:美国的妇女常常会嘱咐丈夫下班后为孩子买尿布,而30%~40%的丈夫在买完尿布以后又要顺便购买本身爱喝的啤酒。根据这个发现,沃尔玛调整了货架的位置,把尿布和啤酒放在一块儿销售,大大增长了销量。算法
这里借用一个引例来介绍关联规则挖掘[1]。数据库
表1 某超市的交易数据库ide
交易号TID | 顾客购买的商品 | 交易号TID | 顾客购买的商品 |
T1 | bread, cream, milk, tea | T6 | bread, tea |
T2 | bread, cream, milk | T7 | beer, milk, tea |
T3 | cake, milk | T8 | bread, tea |
T4 | milk, tea | T9 | bread, cream, milk, tea |
T5 | bread, cake, milk | T10 | bread, milk, tea |
定义一:设I={i1,i2,…,im},是m个不一样的项目的集合,每一个ik称为一个项目。项目的集合I称为项集。其元素的个数称为项集的长度,长度为k的项集称为k-项集。引例中每一个商品就是一个项目,项集为I={bread, beer, cake,cream, milk, tea},I的长度为6。spa
定义二:每笔交易T是项集I的一个子集。对应每个交易有一个惟一标识交易号,记做TID。交易全体构成了交易数据库D,|D|等于D中交易的个数。引例中包含10笔交易,所以|D|=10。.net
定义三:对于项集X,设定count(X⊆T)为交易集D中包含X的交易的数量,则项集X的支持度为: orm
定义四:最小支持度是项集的最小支持阀值,记为SUPmin,表明了用户关心的关联规则的最低重要性。支持度不小于SUPmin 的项集称为频繁集,长度为k的频繁集称为k-频繁集。若是设定SUPmin为0.3,引例中{bread, milk}的支持度是0.5,因此是2-频繁集。 blog
定义五:关联规则是一个蕴含式:R:X⇒Yip
其中X⊂I,Y⊂I,而且X∩Y=⌀。表示项集X在某一交易中出现,则致使Y以某一律率也会出现。用户关心的关联规则,能够用两个标准来衡量:支持度和可信度。 ci
定义六:关联规则R的支持度是交易集同时包含X和Y的交易数与|D|之比。即:
support(X⇒Y)=count(X⋃Y)/|D|
支持度反映了X、Y同时出现的几率。关联规则的支持度等于频繁集的支持度。
定义七:对于关联规则R,可信度是指包含X和Y的交易数与包含X的交易数之比。即:
confidence(X⇒Y)=support(X⇒Y)/support(X)
可信度反映了若是交易中包含X,则交易包含Y的几率。通常来讲,只有支持度和可信度较高的关联规则才是用户感兴趣的。
定义八:设定关联规则的最小支持度和最小可信度为SUPmin和CONFmin。规则R的支持度和可信度均不小于SUPmin和CONFmin ,则称为强关联规则。关联规则挖掘的目的就是找出强关联规则,从而指导商家的决策。
这八个定义包含了关联规则相关的几个重要基本概念,关联规则挖掘主要有两个问题:[1] 韩慧等。数据仓库与数据挖掘。清华大学出版社,2009。
[2] Association rule mining. http://en.wikipedia.org/wiki/Association_rule_mining, 2011.
Cited from: http://blog.csdn.net/opennaive/article/details/7047823