在Arules中,从许多规则中返回最小的支持项目

时间:2017-08-16 23:33:17

标签: r arules bigdata

我正在处理一个产生大量规则的庞大数据集。我只需要高升力低支持规则,但我已经超过1500万(这是在设置min / maxlen并清理我的源数据之后)

我现在要做的是创建一个数百万的头,并从所有规则中减去它。我希望最终剩下的就是枪管的底部。

代码:

basket_rules2 <- apriori(ttk, parameter = list(sup = 0.03, conf = 0.25, target="rules", minlen=4, maxlen=4, maxtime=0), appearance = list(rhs = "Fail: Generator Boot-up", default ="lhs"))

rules <- sort(basket_rules, by = "sup")
head1 <- head(rules, 2000000)
head2 <- rules[ !(rules %in% head1), ]
> summary(head2)
>set of 0 rules

我也尝试过:

rules <- sort(basket_rules, by = "sup")
head1 <- head(rules, 2000000)
head2 <- rules[-head1,]
>Error in -head1 : invalid argument to unary operator

我在采样时使用了类似的语法,我不确定为什么这不起作用。我真正需要的是达到低支持aprori规则,我觉得我可能会使这种方式变得比它需要的更复杂。有关我的代码无效的原因,或者我如何获得真正低的sup / conf规则的任何建议?

1 个答案:

答案 0 :(得分:2)

我希望我能正确理解你的问题。我想你可以做到这一点

library(arules)
data(Groceries)

rules <- apriori(Groceries, parameter = list(support= 0.0002))

这产生了大约200万条规则。现在,您可以使用tail获得支持率最低的100条规则:

low_support_rules <- tail(rules, by = "support", n = 100)

现在,您可以使用升力对低支持规则进行排序。