关联规则学习(Association Rule Learning )是学习和发现大型数据库中变量之间的有意义关系的技术。这种技术擅长购物篮分析(Market Basket Analysis),也可以在其它很多领域使用,比如入侵检测、搜索引擎优化(SEO)和生物信息学等领域。关联规则学习方法能够提取出对数据中的变量之间的关系的最佳解释。比如说一家超市的销售数据中存在规则 {洋葱,土豆}=> {汉堡},那说明当一位客户同时购买了洋葱和土豆的时候,他很有可能还会购买汉堡肉。
[描述来源:机器学习算法集锦:从贝叶斯到深度学习及各自优缺点|机器之心]
一个简单的例子说明。下表是顾客购买记录的数据库D,包含6个事务。项集I={网球拍,网球,运动鞋,羽毛球}。考虑关联规则:网球拍网球,事务1,2,3,4,6包含网球拍,事务1,2,6同时包含网球拍和网球,支持度support=0.5,置信度confident=0.6。若给定最小支持度\alpha,最小置信度\beta,关联规则网球拍-->网球是有趣的,认为购买网球拍和购买网球之间存在强关联。
TID | 网球拍 | 网球 | 运动鞋 | 羽毛球 |
1 | 1 | 1 | 1 | 0 |
2 | 1 | 1 | 0 | 0 |
3 | 1 | 0 | 0 | 0 |
4 | 1 | 0 | 1 | 0 |
5 | 0 | 1 | 1 | 1 |
6 | 1 | 1 | 0 | 0 |
关联规则有以下常见分类:
根据关联规则所处理的值的类型
- 如果考虑关联规则中的数据项是否出现,则这种关联规则是布尔关联规则(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网球拍"和"网球拍"属于不同的抽象层次。
[描述来源:维基百科 URL:https://en.wikipedia.org/wiki/Association_rule_learning]
可以执行关联规则学习的常用算法有 Apriori 算法、FP-Growth/FP-tree (频繁模式挖掘-Frequent Pattern mining)、Eclat算法、AIS算法、SETM算法和序列模式挖掘等。
发展历史
最早的关联规则的概念应当是Petr Hájek等学者与1966年介绍的,不过当时并没有得到重视。直到1993年,Agrawal等学者普及了关联规则的概念,有关关联学习的研究逐渐变得流行。1994年,Agrawal等学者提出Apriori 算法,这是一种基于交易数据库进行频繁项集挖掘和关联规则学习的算法。算法识别数据库中经常出现的频繁项,并将它们扩展为更大的频繁项集。1995年Houtsma, M., & Swami, A.提出setm 算法,Mohammed Javeed Zak等学者于1997年在一系列论文中发表了Eclat算法,是一种使用集合交集的深度优先搜索算法。 这是一个自然优雅的算法,适用于连续执行和并行执行以及局部增强属性。 2000年,针对Apriori算法的固有缺陷,J. Han等提出了不产生候选挖掘频繁项集的方法:FP-growth (frequent pattern growth)。实验表明,FP-growth对不同长度的规则都有很好的适应性,同时在效率上较之Apriori算法有巨大的提高。
关联规则学习/挖掘通常用在各种数据库中,用于检测数据之间的潜在关系。因为自从「啤酒和尿布」一起买的故事以来,关联规则学习已经在购物篮分析中应用了很长时间了,所以它被划入了应用阶段。这项技术的其它应用领域还包括 SEO、入侵检测、生产和健康信息分析。
主要事件
年份 | 事件 | 相关论文/Reference |
1966 | Petr Hájek et al. 的研究成果中出现了关联规则的概念 | Hájek, P.; Havel, I.; Chytil, M. (1966). The GUHA method of automatic hypotheses determination. Computing. 1(4): 293–308. |
1993 | Agrawal et al. 普及了关联规则的概念 | Agrawal, R.; Imieliński, T.; Swami, A. (1993). Mining association rules between sets of items in large databases.Proceedings of the 1993 ACM SIGMOD international conference on Management of data - SIGMOD '93. p. 207. |
1994 | Agrawal et al. 提出Apriori 算法 | Agrawal, R. and Srikant, R. (1994).Fast algorithms for mining association rules in large databases,Proceedings of the 20th International Conference on Very Large Data Bases (VLDB), pp 487-499. |
1995 | Houtsma, M., & Swami, A.提出setm 算法 | Houtsma, M., & Swami, A. (1995, March). Set-oriented mining for association rules in relational databases. In Data Engineering, 1995. Proceedings of the Eleventh International Conference on (pp. 25-33). IEEE. |
1997 | Mohammed Javeed Zak等学者在一系列论文中发表了Eclat算法 | Zaki, M. J.; Parthasarathy, S.; Ogihara, M.; Li W. (1997). New Algorithms for Fast Discovery of Association Rules. KDD 1997.//Zaki, M. J.; Parthasarathy, S.; Ogihara, M.; Li W. (1997). Parallel Algorithms for Discovery of Association Rules. Data Min. Knowl. Discov. 1(4): 343-373. |
2000 | J. Han等提出了不产生候选挖掘频繁项集的方法:FP-growth | Han, J., Pei, J., & Yin, Y. (2000). Mining frequent patterns without candidate generation.international conference on management of data, 29(2), 1-12. |
发展分析
瓶颈
关联规则学习需要足够的数据才能发现规则。在现实世界中,要完全取得所需的数据可不容易,而且当数据有偏差时,也会很容易得到错误的结果。寻找挖掘算法的适当参数设置可能很困难,而且有时候还可能生成太多无用的规则。
未来发展方向
该技术可能会与其它学习技术结合,并在大数据的基础上得到进一步发展。大数据和深度学习也许能发现更有趣的规则。
Contributor:Yuanyuan LI, Mos Zhang