将规则的先验输出从二进制交易矩阵限制为分配值为1的项目

时间:2018-09-09 16:03:30

标签: r transactions rules apriori binary-matrix

我正在尝试将rhs和lhs上的所有项目都设置为1,但这是行不通的。我还有其他方法可以确保我在规则的LHS和RHS上的项目都全为“ 1”吗?我使用了以下代码。

rules = apriori(cosdat1, parameter=list(support=0.28, confidence=0.3, minlen=2, target="rules"))
summary(rules)

    rules.sub <- subset(rules, subset = lhs %in% c("Bag=1","Blush=1","Nail.Polish=1","Brushes=1","Concealer=1","Eyebrow.Pencils=1","Bronzer=1","Lip.liner=1","Mascara=1","Eye.shadow=1","Foundation=1","Lip.Gloss=1","Lipstick=1","Eyeliner=1"));
    rules.sub

    rules.sub1 <- subset(rules, subset = rhs %in% c("Bag=1","Blush=1","Nail.Polish=1","Brushes=1","Concealer=1","Eyebrow.Pencils=1","Bronzer=1","Lip.liner=1","Mascara=1","Eye.shadow=1","Foundation=1","Lip.Gloss=1","Lipstick=1","Eyeliner=1"));
    rules.sub1

1 个答案:

答案 0 :(得分:0)

由于您没有提供数据,因此很难确认,但是我相信您已经快到了。您的第一个子集语句给出了lhs仅包含=1的规则(对rhs没有限制)。您的第二个子集语句给出的规则的rhs仅包含=1(对lhs无限制)。为了使限制适用于双方,请将第二条语句应用于第一条语句的结果。

rules.sub1 <- subset(rules.sub, subset = rhs %in% c("Bag=1","Blush=1",
      "Nail.Polish=1","Brushes=1","Concealer=1","Eyebrow.Pencils=1","Bronzer=1",
      "Lip.liner=1","Mascara=1","Eye.shadow=1","Foundation=1",
      "Lip.Gloss=1","Lipstick=1","Eyeliner=1"));