FPGrowth算法总结复习
摘要:
1.算法概述
2.算法推导
3.算法特性及优缺点
4.注意事项
5.实现和具体例子
6.适用场合
内容:
1.算法概述
关联规则(associatio rules):从大规模数据集中寻找物品建隐含关系被称作关联分析或关联规则学习
频繁项集(frequent itemsets):经常出现在一起的物品集合
FPgrowth是一个流行的频繁项集挖掘的算法(韩家炜等人在2000年);在算法中使用了一种称为频繁模式树(Frequent Pattern Tree)的数据结构(见算法推导)。
2.算法推导
2.1 几个基本概念
支持度(support):支持度表示项集{X,Y}在总项集里出现的概率。 Support(X→Y) = P(X,Y) / P(I) = num(XUY) / num(I),其中I为总项集;
可信度或置信度(confidence):置信度表示在先决条件X发生的情况下,由关联规则”X→Y“推出Y的概率;Confidence(X→Y) = P(Y|X) = num(XUY) / num(X)
提升度(Lift): Lift(X→Y) = P(Y|X) / P(Y)
强关联规则:满足最小支持度和最小置信度的规则
如果Lift(X→Y)>1,则规则“X→Y”是有效的强关联规则。
如果Lift(X→Y) <=1,则规则“X→Y”是无效的强关联规则。
特别地,如果Lift(X→Y) =1,则表示X与Y相互独立。(参考自)
2.2 几个基本原理
Aprori 原理:如果某条规则并不满足最小可信度,则该规则的所有子集也不满足最小可信度
3.算法特性及优缺点
优点:一般快于Apriori算法(只扫描两次数据集)
缺点:实现比较困难,在某些数据集上性能下降
4.注意事项
连续数据要进行离散化
5.实现和具体例子
Spark mllib实现(run方法);使用AssociationRules挖掘关联规则
应用:
交叉销售:电信行业针对用户已经使用的产品和业务,向其推荐他没有使用的
6.适用场合
支持大规模数据:是
特征维度:无
是否有 Online 算法:这个没必要吧?
特征处理:支持类别型数据或者离散型数据,连续数据要进行离散化