匹配关联规则到源记录

Matching association rule to source records

我使用以下代码并接收适当的关联规则:

library("arules")
data("Adult")
    rules <- apriori(Adult,parameter = list(supp = 0.5, conf = 0.9, target = "rules"))
  labels(rules)

有 50 条规则。 我要返回源数据:

Adult3<-as.data.frame(as(Adult,"matrix"))

并向 Adult3$RUL_NUM 添加新列。此列将包括记录符合的相关规则的值(在本例中为 1 到 50)(针对每条记录)。如果每条记录有多个规则,我想添加记录符合它的最后一条规则。

您可能想查看 is.superset 函数。例如

is.superset(Adult, lhs(rules))

将为您提供一个逻辑矩阵,指示每个交易的规则是 "relevant"(即 LHS 中的所有项目都存在的位置)。

编辑: 如果您想匹配整个规则,请使用下面建议的代码 Avi:

is.superset(Adult, lhs(rules))

要获取匹配的最后一条规则的 ID(编号),您可以(或多或少)在超集矩阵上使用直接的 R 代码:

w <- sapply(apply(is.superset(Adult, rules), MARGIN = 1, which), tail, n = 1)

此代码查找每一行中所有的列索引,然后 returns 最后一个。