关联规则是什么 ?

2024-05-12 01:29

1. 关联规则是什么 ?

关联规则是形如X→Y的蕴涵式,其中, X和Y分别称为关联规则的先导(antecedent或left-hand-side, LHS)和后继(consequent或right-hand-side, RHS) 。其中,关联规则XY,存在支持度和信任度。
关联规则最初提出的动机是针对购物篮分析(Market Basket Analysis)问题提出的。假设分店经理想更多的了解顾客的购物习惯。特别是,想知道哪些商品顾客可能会在一次购物时同时购买;
为回答该问题,可以对商店的顾客事物零售数量进行购物篮分析。该过程通过发现顾客放入“购物篮”中的不同商品之间的关联,分析顾客的购物习惯。这种关联的发现可以帮助零售商了解哪些商品频繁的被顾客同时购买,从而帮助他们开发更好的营销策略。

关联规则研究
由于许多应用问题往往比超市购买问题更复杂,大量研究从不同的角度对关联规则做了扩展,将更多的因素集成到关联规则挖掘方法之中,以此丰富关联规则的应用领域,拓宽支持管理决策的范围。
如考虑属性之间的类别层次关系,时态关系,多表挖掘等。围绕关联规则的研究主要集中于两个方面,即扩展经典关联规则能够解决问题的范围,改善经典关联规则挖掘算法效率和规则兴趣性。

关联规则是什么 ?

2. 关联规则

关联规则是形如X→Y的蕴涵式,其中, X和Y分别称为关联规则的先导(antecedent或left-hand-side, LHS)和后继(consequent或right-hand-side, RHS) 。其中,关联规则XY,存在支持度和信任度。
  
 关联规则的经典案例是购物篮分析(basket relationships)。
  
 婴儿尿不湿 → 啤酒
  
 这是发生在美国沃尔玛连锁店超市的真实案例,并一直为商家所津津乐道。沃尔玛拥有世界上最大的数据仓库系统,为了能够准确了解顾客在其门店的购买习惯,沃尔玛对其顾客的购物行为进行购物篮分析,想知道顾客经常一起购买的商品有哪些。沃尔玛数据仓库里集中了其各门店的详细原始交易数据。在这些原始交易数据的基础上,沃尔玛利用数据挖掘方法对这些数据进行分析和挖掘。一个意外的发现是:"跟尿布一起购买最多的商品竟是啤酒!经过大量实际调查和分析,揭示了一个隐藏在"尿布与啤酒"背后的美国人的一种行为模式:在美国,一些年轻的父亲下班后经常要到超市去买婴儿尿布,而他们中有30%~40%的人同时也为自己买一些啤酒。产生这一现象的原因是:美国的太太们常叮嘱她们的丈夫下班后为小孩买尿布,而丈夫们在买尿布后又随手带回了他们喜欢的啤酒。
  
 关联规则数据挖掘主要目的是为了找出数据集中的频繁模式(frequent pattern)和并发关系(cooccurrence relationships)。但是事件A和事件B一起发生了一定次数,并不一定代表着其中有很强的关联性,也有可能是偶发性的事件。是商业事件中,偶发性的事件是不具有价值的。要评估A和B是偶发性事件还是关联性事件,则需要更多的指标来衡量。
  
 支持度主要衡量规则的有用性
  
 X→Y的支持度指: 包含XUY的事件数 / 事件全集数 *100%
  
 置信度衡量规则的确定性(可预测性)
  
 X→Y的置信度指:X和Y共同发生的事件数量/包含X的事件数量* 100%
  
 关于支持度指标的使用,我一直存在一些疑问的地方。
  
 首先,从定义来讲,支持度指 X和Y同时发生的事件占全部事件集的比例。例如:X→Y的支持度,按照定义应该是指商品X和Y一起下单的订单量,除以当天店铺的全量订单数。但是我也有看到csdn上一些文章使用支持度的时候是用XY的交集/ XY的并集,也就是X和Y同时发生的概率,除以X或Y发生的概率。包括我所举的的案例中的支持度“连带人数/关联支付买家数”也是属于后者。
  
 在计算关联规则常用的Apriori算法中(对算法感兴趣的可以搜索一下),支付度是用来筛选频繁项级的,也就是说,“频繁”出现的事件,我们认为其关联规则是有效的。在Apriori算法步骤中,我们先试根据“频繁项级的所有子集也是频繁项级”的原则,将所有可能的事件集合中,发生频率小于支持度的事件组合过滤掉。这样可以加快计算过程,节约计算资源。如果一天中,有且仅有一个用户购买了X和Y商品,同时没有其他任何客户购买X和Y商品。在用上述第二种用法时,支持度=100%,但是显然,这个案例完全不具有普适性,这个关联规则属于偶发性事件的概率很高。
  
 我们也可以换一个角度理解第二种定义,X和Y同时发生的概率 / X或Y发生的概率,得到的结果越大,可以看出,在X和Y的关联性越高。

3. 关联规则

关联规则挖掘可以让我们从数据集中发现项与项(item 与 item)之间的关系 ,它在我们的生活中有很多应用场景,“购物篮分析”就是一个常见的场景。
  
 下面是几名客户购买的商品列表:
                                          
     支持度是个百分比,它指的是 某个商品组合出现的次数与总次数之间的比例 。支持度越高,代表这个组合出现的频率越大。
  
 在这个例子中,我们能看到“牛奶”出现了 4 次,那么这 5笔订单中“牛奶”的支持度就是 4/5=0.8。
  
 同样“牛奶 + 面包”出现了 3 次,那么这 5 笔订单中"牛奶 + 面包”的支持度就是 3/5=0.6。
  
 
  
  
   
  
 以此类推,如果我们有三个想分析关联性的数据X,Y和Z,则对应的支持度为:
  
   
  
     它指的就是当你购买了商品 X,会有多大的概率购买商品 Y,在上面这个例子中:
  
 置信度(牛奶→啤酒)=2/4=0.5,代表如果你购买了牛奶,有多大的概率会购买啤酒?
  
 置信度(啤酒→牛奶)=2/3=0.67,代表如果你购买了啤酒,有多大的概率会购买牛奶?
  
 我们能看到,在 4 次购买了牛奶的情况下,有 2 次购买了啤酒,所以置信度 (牛奶→啤酒)=0.5,而在 3 次购买啤酒的情况下,有 2 次购买了牛奶,所以置信度(啤酒→牛奶)=0.67。
  
 所以说置信度是个条件概念,就是说 在 X 发生的情况下,Y 发生的概率是多少 。
  
   
  
 也可以以此类推到多个数据的关联置信度,比如对于三个数据X,Y,Z,则X对于Y和Z的置信度为:
  
   
  
     我们在做商品推荐的时候,重点考虑的是提升度,因为提升度代表的是 “商品 A 的出现,对商品 B 的出现概率提升的”程度 。
  
 提升度表示含有Y的条件下,同时含有X的概率,与X总体发生的概率之比,即:
  
   
  
 提升度>1:强关联规则,代表有提升
  
 提升度<=1:无效强关联规则,代表无提升
  
 提升度=1:X和Y相互独立

关联规则

最新文章
热门文章
推荐阅读