匹配关联规则到源记录
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 最后一个。
我使用以下代码并接收适当的关联规则:
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 最后一个。