码迷,mamicode.com
首页 > 编程语言 > 详细

FP_Growth算法python实现

时间:2015-07-04 09:40:50      阅读:562      评论:0      收藏:0      [点我收藏+]

标签:fp-tree   fp-growth   python   

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进行频繁项集的挖掘

它主要实现三个动作:

  1. 输入事务数据集routines;
  2. 调用tree_builder,构造FP-tree;
  3. 调用tree_miner,从FP-tree提取频繁项集;


FP-tree的构造请见:FP-Growth算法python实现之 FP-tree的构造
频繁项集的挖掘请见:FP-Growth算法python实现之频繁项集的挖掘



FP-Growth算法python实现(完整代码)
备注:该代码是在 Python2.7+eclipse 环境下编写的。可在eclipse中导入项目,也可在命令行窗口用python命令执行“__init__.py”文件。

版权声明:转载请注明出处,谢谢!

FP_Growth算法python实现

标签:fp-tree   fp-growth   python   

原文地址:http://blog.csdn.net/bone_ace/article/details/46746727

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!