我试图围绕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