r - 带有 arules/apriori 的 rhs 过滤器不起作用

标签 r apriori arules

我将 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 个结果,这是一个巨大的差异。

最佳答案

Nsfy,有一种更简单的方法可以做到这一点。您需要添加 default='lhs' ,如 appearance=list(rhs='X1=1',default='lhs') .这会将 rhs 限制为仅 X1=1 .

关于r - 带有 arules/apriori 的 rhs 过滤器不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25999330/

相关文章:

python - 无法正确安装rpy2 : undefined symbol omp_get_num_procs

R 规则,仅我的规则来自特定列

R arules - 匹配规则的交易子集

R arulesSequences - 事务中存在哪些频繁序列?

r - 如何直接在 purrr::accumulate2() 中编写自定义函数

python - python是否有等同于R语言中的符号对象?

r - 如何使用arules识别top n推荐商品及其规则?

scala - Apache Spark flatMap 时间复杂度

python - ModuleNotFoundError:没有名为 'pycaret.arules' 的模块

r - 在 R 中使用 dplyr 将 csv 导入 SQLite 数据库时,是否需要担心 SQL 注入(inject)?