赞
踩
目录
- item_sets = [
- ['f', 'a', 'c', 'd', 'g', 'i', 'm', 'p'],
- ['a', 'b', 'c', 'f', 'l', 'm', 'o'],
- ['b', 'f', 'h', 'j', 'o', 'w'],
- ['b', 'c', 'k', 's', 'p'],
- ['a', 'f', 'c', 'e', 'l', 'p', 'm', 'n']
- ]
这篇文章的出现都是这个数据集惹的祸
自己写FP-Growth算法在测试这个数据集的时候(最小支持度计数设置为3)出现了漏掉一些频繁项集的问题,于是就去看了一下pyfpgrowth 1.0 版本 的源码,但是在用的时候(最小支持度计数设置为3)也出现了漏掉频繁项集的问题 所以自己结合 pyfpgrowth 1.0 版本的源码与一篇博客
FP-growth 算法与Python实现_蕉叉熵的博客-CSDN博客_fp-growth自己写了一份代码。本文主要说明代码的实现,以及pyfpgrowth库的一个问题,具体原理请看FP-growth 算法与Python实现_蕉叉熵的博客-CSDN博客_fp-growth
- import itertools
- import time
-
-
- def get_time(func):
- """
- 一个装饰器函数用于计算代码运行时间
- :param func:
- :return:
- """
- def fun(*args, **kwargs):
- start = time.time()
- ret = func(*args, **kwargs)
- end = time.time()
- t = end - start
- print('花费时间:', t)
- return ret
- return fun
-
-
- class FPNode(object):
- """
- FP树节点,
- 与pyfpgrowth库中基本一致
- """
-
- def __init__(self, value, count: int, parent):
-
- self.value = value
- self.count = count
- self.parent = parent
- self.next = None
- self.children = []
-
- def has_child(self, value) -> bool:
-
- for child in self.children:
- if value == c
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。