数据挖掘之关联规则挖掘(Association Rules Mining)

关联规则(Association Rules)是反映一个事物与其他事物之间的相互依存性和关联性,是数据挖掘的一个重要技术,用于从大量数据中挖掘出有价值的数据项之间的相关关系。

常见的购物篮分析

该过程通过发现顾客放人其购物篮中的不同商品之间的联系,分析顾客的购买习惯。通过了解哪些商品频繁地被顾客同时购买,这种关联的发现可以帮助零售商制定营销策略。其他的应用还包括价目表设计、商品促销、商品的排放和基于购买模式的顾客划分。

可从数据库中关联分析出形如“由于某些事件的发生而引起另外一些事件的发生”之类的规则


频繁项集评估标准

常用的频繁项集的评估标准有支持度,置信度和提升度三个

  • 支持度:几个关联的数据在数据集中出现的次数占总数据集的比重

数据挖掘之关联规则挖掘(Association Rules Mining)

  • 置信度:一个数据出现后,另一个数据出现的概率,或者说数据的条件概率。

数据挖掘之关联规则挖掘(Association Rules Mining)

  • 提升度:表示含有Y的条件下,同时含有X的概率,与X总体发生的概率之比

数据挖掘之关联规则挖掘(Association Rules Mining)

 


Apriori算法----发现频繁项集的一种方法

原理:如果一个项集是频繁项集,则它的所有子集都是频繁项集

           如果一个集合不是频繁项集,则它的所有父集(超集)都不是频繁项集

关联分析的目标:

  • 发现频繁项集:发现满足最小支持度的所有项集
  • 发现关联规则:从频繁项集中提取所有高置信度的规则

 

Apriori算法采用了迭代的方法

  1. 先搜索出候选1项集及对应的支持度,剪枝去掉低于支持度的1项集,得到频繁1项集。
  2. 对剩下的频繁1项集进行连接,得到候选的频繁2项集,筛选去掉低于支持度的候选频繁2项集,得到真正的频繁二项集,
  3. 以此类推,迭代下去,直到无法找到频繁k+1项集为止,对应的频繁k项集的集合即为算法的输出结果

下图来自博客:https://www.cnblogs.com/pinard/p/6293298.html

数据挖掘之关联规则挖掘(Association Rules Mining)

注:k项集的意思就是一个项集里面项的个数位k个,1项集就是指这个项集里面只有一个项。 L1->C2的过程是L1*L1笛卡尔连接,但是要去掉{1,1}这样的本质是1项集的集合,一共有组合数C(4,2)=6项。L2->C3的过程也类似,为了得到3项集,不应该是L2*L2自身的笛卡尔连接,而应该是L2*L1的笛卡尔连接,这样理论有4*4=16项,但是有大量的3项集里面都有项是相同的,比如{1,3,1}等等,这些实际上是一个2项集,去除之后剩下8个真正的3项集,接下来3项集之间又有重复一摸一样的,再去掉之后,得到了完全相异的3项集,这些是候选集,然后再去数据库查找各自的支持度,不过这里为了增快速度的话,比如{1,3,2},根据apriori算法的第二个原理,由于C2中{1,2}已经不是频繁项集,所以超集{1,3,2}也不是,这样,最终只剩下C3中的{2,3,5}。 最后,更正一下上图中的min_support=2。