在R中的aRules包中,如何有效地找到封闭的关联规则?即具有封闭LHS项集的规则
项目集是关闭的当且仅当添加任何项目减少了支持。
该包提供了以下挖掘选项:
目标:表示所挖掘的关联类型的字符串。其中之一
似乎没有“封闭规则”的选择。有两个明显的工作-周遭:
这可能会很慢。对于5k项的交易,aPriori在10s中生成了800万条规则。关闭过滤器用了20分钟,从而产生了~3k的封闭规则。
还没有实现,但这似乎是一种实现简单得多的方法。
如果有人知道其他实现(其他R包,甚至是R以外的东西)可以做到这一点,指针将是非常有用的。例如:SPMF库似乎支持它,想知道是否有人有使用它的经验。
发布于 2017-02-19 01:48:52
在arules包中,支持是项目集的组合LHS和RHS中包含所有项的事务的百分比。换句话说,LHS和RHS项目的合并。
这意味着在您的itemsets/rules调用中使用参数target = 'closed frequent itemsets'将解决您的第一个问题,并且只会基于闭包项集生成封闭的apriori()。
同样,要回答您问题的第二部分,在生成规则之前,存在通过置信度和升力进行过滤的参数。这样,在规则生成之后,您将不必过滤出规则,并且您将获得与您正在寻找的结果相同的结果。
此外,过滤关闭的项目集,信心,提升等在您的apriori()调用将加快采矿过程。
发布于 2017-01-08 22:59:56
函数ruleInduction()可以用来创建Pei等人定义的封闭规则。(2000)作为规则X -> Y,其中X和Y都是封闭的频繁项集。以下摘自手册页(略有增强):
data("Adult")
## find all closed frequent itemsets
closed <- apriori(Adult,
parameter = list(target = "closed", support = 0.4))
## use rule induction to produce all closed association rules
closed_rules <- ruleInduction(closed, Adult)
## X&Y are already closed, check that X is also closed
closed_rules[is.element(lhs(closed_rules), items(closed))]
## inspect the resulting closed rules
summary(closed_rules)
inspect(head(closed_rules, by = "lift"))https://stackoverflow.com/questions/38967723
复制相似问题