FP_Growth算法是关联分析中比较优秀的一种方法,它通过构造FP_Tree,将整个事务数据库映射到树结构上,从而大大减少了频繁扫描数据库的时间。
FP_Growth算法主要分成两个步骤,第一步是构造FP-Tree,第二步是从FP-Tree中提取频繁项集。
更多关联分析和FP_Growth的介绍以及伪代码请见:什么是关联分析、FP-Growth算法的介绍。
本文主要目的是介绍python实现FP_Growth算法的代码。
FP_Growth项目目录有四个文件:
>FP_Growth
? __init__.py
? tree_builder.py
? tree_building.py
? tree_miner.py
其中,tree_builder.py和tree_building.py文件主要负责FP-tree的构造,而tree_miner.py则是用来从构造好的FP-tree上提取频繁项集。
主程序所在的文件“\__init__.py”代码如下:
#coding=utf-8
import tree_builder
import tree_miner
routines = [
[‘Cola‘,‘Egg‘,‘Ham‘],
[‘Cola‘,‘Diaper‘,‘Beer‘],
[‘Cola‘,‘Beer‘,‘Diaper‘,‘Ham‘],
[‘Diaper‘,‘Beer‘]
] #事务数据集
min_sup = 2 #最小支持度计数
headerTable = {} #头结点表,用来存放各个项的索引
treeBuilder = tree_builder.Tree_builder(routines=routines, min_sup=min_sup, headerTable=headerTable) #建造FP_Tree
tree_miner.Tree_miner(Tree=treeBuilder.tree, min_sup=min_sup, headerTable=headerTable) #对FP_Tree进行频繁项集的挖掘
它主要实现三个动作:
FP-tree的构造请见:FP-Growth算法python实现之 FP-tree的构造
频繁项集的挖掘请见:FP-Growth算法python实现之频繁项集的挖掘
备注:该代码是在 Python2.7+eclipse 环境下编写的。可在eclipse中导入项目,也可在命令行窗口用python命令执行“__init__.py”文件。
版权声明:转载请注明出处,谢谢!
原文地址:http://blog.csdn.net/bone_ace/article/details/46746727