【问题标题】:Why does FP-Growth return more than one Consequent?为什么 FP-Growth 会返回多个结果?
【发布时间】:2019-01-12 03:28:01
【问题描述】:

我正在使用Orange3-Associate 中的fpgrowth 模块从文件中的事务中查找rules。我正在使用这个脚本:

from orangecontrib.associate.fpgrowth import *

transactions = [[1, 2, 5],
                [2, 4],
                [2, 3],
                [1, 2, 4],
                [1, 3],
                [2, 3],
                [1, 3],
                [1, 2, 3, 5],
                [1, 2, 3]]

itemsets = dict(frequent_itemsets(transactions, .2))
rules = [(list(P), list(Q), supp, conf) for P, Q, supp, conf in association_rules(itemsets, .5)]

但是,当我 print(rules) 时,结果 Q 显示为 2 个或更多项目的列表。输出:

[3, 5], [1, 2], 1, 1.0

为什么会这样?结果不是应该只有一项吗?

【问题讨论】:

    标签: python python-3.x data-mining fpgrowth


    【解决方案1】:

    不,结果不限于单个项目。

    如果您的所有交易都包含 A、B,那么规则 emptyset -> A, B 是所需的输出,以指示“无论交易包含 A 和 B”。

    【讨论】:

    • 我在相同的数据集上运行了 Apriori,但我从未得到结果包含多个项目的输出。 apriori 和 FP-growth 的输出不一样吗?
    • 可能是 Apriori 实现不好?
    • 我正在使用apyori 包,它似乎没有一个糟糕的实现。
    • 其实这太糟糕了,甚至不是 Apriori。这是对 Apriori 的幼稚解释,错过了所有聪明的想法。
    • Pyfim 在我看来非常彻底。
    猜你喜欢
    • 1970-01-01
    • 2012-12-26
    • 1970-01-01
    • 2019-11-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多