关联规则学习(Association Rule Learning)

关联规则学习(英语:Association rule learning)是一种在大型数据库中发现变量之间的有趣性关系的方法。它的目的是利用一些有趣性的量度来识别数据库中发现的强规则。基于强规则的概念,Rakesh Agrawal等人引入了关联规则以发现由超市的POS系统记录的大批交易数据中产品之间的规律性。例如,从销售数据中发现的规则 {洋葱, 土豆}→{汉堡} 会表明如果顾客一起买洋葱和土豆,他们也有可能买汉堡的肉。此类信息可以作为做出促销定价或产品植入等营销活动决定的根据。除了上面购物篮分析中的例子以外, 关联规则如今还被用在许多应用领域中,包括网络用法挖掘、入侵检测、连续生产及生物信息学中。与序列挖掘相比,关联规则学习通常不考虑在事务中、或事务间的项目的顺序。

根据关联规则所处理的值的类型

如果考虑关联规则中的数据项是否出现,则这种关联规则是布尔关联规则(Boolean association rules)。例如上面的例子。如果关联规则中的数据项是数量型的,这种关联规则是数量关联规则(quantitative association rules)。例如年龄(“20-25”)=>购买(“网球拍”),年龄是一个数量型的数据项。在这种关联规则中,一般将数量离散化(discretize)为区间。根据关联规则所涉及的数据维数

如果关联规则各项只涉及一个维,则它是单维关联规则(single-dimensional association rules),例如购买(“网球拍”)=>购买(“网球”)只涉及“购买”一个维度。如果关联规则涉及两个或两个以上维度,则它是多维关联规则(multi-dimensional association rules),例如年龄(“20-25”)=>购买(“网球拍”)涉及“年龄”和“购买”两个维度。根据关联规则所涉及的抽象层次

如果不涉及不同层次的数据项,得到的是单层关联规则(single-level association rules)。在不同抽象层次中挖掘出的关联规则称为广义关联规则(generalized association rules)。例如年龄(“20-25”)=>购买(“HEAD网球拍”)和年龄(“20-25”) =>购买(“网球拍”)是广义关联规则,因为"HEAD网球拍"和"网球拍"属于不同的抽象层次。

关联规则学习(Association Rule Learning) 的应用算法:

  • 先验算法(Apriori Algorithm)

  • Eclat算法(Eclat Algorithm)

  • FP-growth算法(FP-Growth Algorithm)

原文:https://github.com/KeKe-Li/tutorial