关于(Python/Orange)Apriori 关联算法的问题

数据挖掘 数据挖掘 Python 橘子
2021-10-02 22:25:38

我试图围绕Association 规则和频繁项集所以我把我的数据扔进去,而不是样本一个,有时它有效,有时它不起作用。

rules = Orange.associate.AssociationRulesSparseInducer(data, support = 0.3)

print "%5s   %5s" % ("supp", "conf")
for r in rules:
    print "%5.3f   %5.3f   %s" % (r.support, r.confidence, r)

inducer = Orange.associate.AssociationRulesSparseInducer(support = 0.2, store_examples = True)
itemsets = inducer.get_itemsets(data)
print itemsets
print data.domain
print [data.domain[i].name for i in itemsets[4][0]]

通常,itemsets[4][0] 会显示IndexError: list index out of range错误。所以我开始玩 support = 0.3、support = 0.5、support = 0.2 和 itemsets[2][0] 或 items[3][0]。

从文档:

support
对规则的最小支持。根据数据集,应将其设置为足够高的值以避免耗尽工作内存(默认值:0.3)。

是的 - 我尝试了 0.2,它很快就在 800 行数据文件上炸毁了我的记忆。

知道我应该在那里做得最好,或者哪些是购物车分析的可行值吗?

800 行数据(800 个订单
)每个订单 1 到 x 个项目(
-类别)文件中有 15 个不同的项目类别,所以我的数据如下所示:

ItemCat1
ItemCat2, ItemCat2, ItemCat2, ItemCat2, ItemCat7, ItemCat7, ItemCat7,     ItemCat7, ItemCat7
ItemCat1, ItemCat1, ItemCat1, ItemCat1, ItemCat1, ItemCat1, ItemCat1,     ItemCat2
ItemCat4, ItemCat4
ItemCat1, ItemCat1, ItemCat1, ItemCat1, ItemCat1, ItemCat1, ItemCat1,     ItemCat1, ItemCat2
ItemCat5
2个回答

如果 Python 3 是一个选项,Orange 3在其Orange3-Associate 附加组件中具有 FP-growth

pip3 install Orange3-Associate

它有据可查: http: //orange3-associate.readthedocs.org/

正如您所注意到的,Apriori 由于其缓慢和资源需求,实际上不再是需要考虑的算法。

它在 Orange 中不可用,但我会尝试 FP-Growth。结合低支持值比先验更快!