【发布时间】:2014-09-23 15:44:02
【问题描述】:
我将 arules::apriori 与二进制矩阵一起使用,并且只想创建在 RHS 上具有一个特定列的规则。这是在文档中指定的,但似乎不起作用。事后过滤它很容易得到这个,但我首先浪费了很多计算时间来计算所有规则。
例子:
library(arules)
data = data.frame(matrix(rbinom(10000,1, 0.6), nrow=1000))
for(i in 1:ncol(data)) data[,i] = as.factor(data[,i])
dsRules = as(data, "transactions")
rules = apriori(dsRules,
parameter=list(support = 0.1, minlen = 3, maxlen = 3, target= "rules", confidence = 0.7),
appearance = list(rhs = c("X1=1")))
规则现在包含 3378 条规则
rules.sub = subset(rules, subset = (rhs %pin% "X1=1"))
rules.sub 包含 172 条规则
在我的实际数据中,我从数百万个结果增加到 ~4000 个,这是一个巨大的差异。
【问题讨论】: