如何约束R中的Apriori函数仅考虑LHS中的特定值项?

如何约束R中的Apriori函数仅考虑LHS中的特定值项?,r,data-mining,apriori,arules,R,Data Mining,Apriori,Arules,在R中,我尝试使用apriori函数进行关联规则学习 我有这样一个数据集: A B C D E 1 0 0 1 0 1 0 1 0 1 1 1 1 0 1 0 0 0 1 0 我对E=1的情况感兴趣,我可以通过以下方式获得: inspect( subset( rules.sorted, subset = rhs %pin% "E=1" )) 但我也只对LHS包含'=1'条件而不是'=0'的情况感兴趣 所以,我不想要这样的规则: {A=1,D=0} => {E=1} 我只想要

在R中,我尝试使用apriori函数进行关联规则学习

我有这样一个数据集:

A B C D E 

1 0 0 1 0

1 0 1 0 1

1 1 1 0 1

0 0 0 1 0
我对
E=1
的情况感兴趣,我可以通过以下方式获得:

inspect( subset( rules.sorted, subset = rhs %pin% "E=1" ))
但我也只对
LHS
包含
'=1'
条件而不是
'=0'
的情况感兴趣

所以,我不想要这样的规则:

{A=1,D=0} => {E=1}
我只想要像这样的规则

{A=1,C=1} => {E=1}

如何在
LHS
侧实现这一点?我只能收集如何约束它在特定列中查找规则,但不能查找任何具有特定值的列

如您所述,如果您想在右侧显示
E=1
,只需过滤数据即可

默认情况下,关联规则挖掘应该只提供正向规则,即
A=>B

通常,如果您想拥有否定规则,则必须向数据中添加否定符号,即
ANOT=1
A=0


你确定你没有误解输出吗?

我也有同样的问题。当您将数据转换为一个因子时(如对另一个答案的评论中提到的两个人),就会出现问题。当我将data.frame转换为矩阵,然后转换为事务时,我的输出中只有正规则。

Hi我也会得到负规则,例如在上面的例子中,类似于:{D=0}=>{E=1}。lhs上的这些“=0”部分是我希望避免的规则。我第一次使用apriori,但我从不同的地方读到了它。我从未发现关联规则只给出积极的规则。你指的是先验的R函数吗?还是您使用的软件/功能默认排除了这些负面规则?据我所知,原始APRIORI并没有这样做。您是否检查了实现的选项?我不使用R,所以我没有手册。它也可能是R进行的数据转换的一部分,以生成项目集。。。也就是说,它不将“1”视为存在,“0”视为不存在,而是将“A=1”和“A=0”视为两个不同的项目。是的,我选中了选项。我找不到这样的选项来控制相等值。函数要求我的数据是类因子。因此,我也认为R将0和1视为两个不同的项目。我从没想过解决这个问题能解决我的问题。我会设法修好它,看看它是否管用。谢谢。也可以考虑使用不同的软件。我相信这是一个很好的FIM软件页面:-我不喜欢R,质量差异太大。这是一个很好的链接。谢谢,谢谢。我正在尝试,但将数据帧转换为矩阵将意味着我丢失所有变量名。你是怎么处理的?因为我有数百个变量。