-3

我在 R 中使用 arules 包。我有以下规则。我想知道如何A,B,D=>C从我的规则中删除主规则的子集。

e.g :   
A,B=>C  
A,D=>C    
A,B,D=>C  

我只能进入A,B,D => C我的名单。

我不希望它采用封闭或最大格式,但希望它采用先验规则格式。

4

2 回答 2

2

我能够通过这个源代码解决我的问题。基本上,它所做的是使用源代码的大小对整个规则进行排序,并找到特定目标的所有规则子集。一旦我们有了一个包含子集的矩阵,我就会删除所有规则项在多个规则中重复的规则。

quality(rules_ZCQ1)<-cbind(quality(rules_ZCQ1),size=size(rules_ZCQ1)) rules_ZCQ1<-sort(sort(rules_ZCQ1,decreasing=TRUE,by="support"),decreasing=TRUE,by="size") superset.matrix <- is.subset(rules_ZCQ1@lhs,y=NULL,sparse=FALSE) superset <- rowSums(superset.matrix, na.rm=T) ==1 which(superset) rules.pruned <- rules_ZCQ1[superset]

于 2015-05-15T05:10:25.947 回答
0

我认为,如果您的规则仅包含有关 A、B、D 及其子集的规则,那么您可以使用以下公式:

result = subset(ABD_rules,subset = lhs %ain% c("A","B","D"))
于 2019-10-30T08:00:48.900 回答