FP-growth频繁模式增长方法
先进行数据库投影,得到频繁项然后通过构造一个压缩的数据库结构–FP树来对它们进行挖掘
首先扫描数据库,得到频繁项的列表,频繁项集按支持度计数的递减顺序排序,
创建树的根部,第二次扫描数据库,对第一个事务的扫描可以得到树的第一个分支,只有那些在频繁项集中的项才会被选中,分支中节点的计数代表了树中该节点项所出现的次数,增加计数
节点排列顺序按照项集列表中的顺序
id | 项集 |
---|---|
1 | f,a,c,d,g,i,m,p |
2 | a,b,c,f,l,m,o |
3 | b,f,h,j,o |
4 | b,c,k,s,p |
5 | a,f,c,e,l,p,m,n |
得L = {(f,4),(c,4),(a,3),(b,3),(m,3),(p,3)}
插入两个样本之后的FP树:
最终FP树
程序相关错误及其修正
AttributeError: ‘dict’ object has no attribute ‘iteritems’
Python3.5中:iteritems变为items
dictionary changed size during iteration
list(dict)
AttributeError: ‘dict’ object has no attribute ‘has_key’
key in dict