高效生成Apriori频繁项集

问题描述

我正在尝试使用 Apriori 主体有效地生成频繁项集。我目前的尝试是使用 itertool 中的组合,但它生成了不必要数量的项集。我需要在生成它们时遵循 Apriori 原则,即

如果一个项集不频繁,那么它的所有超集也必须是不频繁的。

我目前的尝试非常低效。

import itertools as it
def generateItemsets(Lk,k):

    comb = sum(Lk.keys(),tuple())
    Ck = set(it.combinations(comb,k))
    return Ck

解决方法

您可能会考虑 FPgrowth / FPMax,用户指南可能对您有所帮助。 仅供参考:http://rasbt.github.io/mlxtend/user_guide/frequent_patterns/fpmax/

此外,可能有大量的单行项目,例如:便利店,您可能只购买可乐或咖啡。您可能会考虑添加行总数并使用行总数 > 1,这样会筛选出很多无关紧要的数据。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...