在机器学习的无监督问题中,常使用关联分析法来发现存在于大量数据集中的关联性或相关性。关联分析是从大量数据中发现项集之间的关联和相关联系,从而描述一个事物中某些属性同时出现的规律和模式。
关联分析的一个典型例子是超市购物分析,通过分析顾客购物车中的不同商品之间的联系、哪些商品会被频繁地同时购买,即“哪些商品经常被同时购买?”,来制定超市商品的营销策略等。经典的关联分析方法有Apriori算法和FP-growth算法。
目录
1、关联分析
关联分析是指从大规模数据集中训练物品间的隐含关系,也称为关联规则学习。关联分析的目标包括发现以下两点:① 频繁项集 ② 关联规则
① 频繁项集:经常一起出现的物品集合
② 关联规则:暗示两种物品之间可能存在很强的关系
举一个例子:
交易号码 | 商品 |
1 | 豆奶,面包 |
2 | 面包,尿布,啤酒,甜菜 |
3 | 豆奶,尿布,啤酒,橙汁 |
4 | 面包,豆奶,尿布,啤酒 |
5 | 面包,豆奶,尿布,橙汁 |
- 频繁项集 (frequent item sets):经常出现在一起的商品集合。
- 关联规则 (rule):先决条件->结果。如上例中的{啤酒,尿布},可以推断如果这名顾客买了尿布,那么也可能购买啤酒。
- 支持度 (support):定义数据集中包含该项集的记录所占的比例。如上例中{豆奶}的支持度为
,{豆奶,尿布}的支持度为
。
- 可信度或置信度 (confidence):针对关联规则定义的,X发生时Y也发生的概率,即条件概率。比如,规则{尿布}->{啤酒}的可信度为
。意思是,{尿布,啤酒}的支持度为
,{尿布}的支持度为
,那么顾客买了尿布后可能会一起买啤酒的可信度为
。
2. Apriori算法
Apriori算法是一个很经典的数据挖掘算法,很多算法都是基于Apriori产生的,如FP-Tree、GSP、CBA等。
2.1 Apriori原理
可以通过枚举法列出所有的可能子集,但当数据集很大时,枚举法并不是个高效的方法。如图1所示,对于一个有4个项(假设超市卖4种商品),那么共有15个项集。