subset.matrix[lower.tri(subset.matrix,diag=TRUE)]<-NA #可以将下三角矩阵修改成NA,然后计算矩阵的colSums值,如果该值>=1,则意味着该制定规则是冗余的
Warning message:
In `[<-`(`*tmp*`, as.vector(i), value = NA) :
x[.] <- val: x is “ngTMatrix”, val not in {TRUE, FALSE} is coerced; NA |--> TRUE.
我的一些程序如下:
data(Groceries)
itemFrequencyPlot(Groceries,support=0.1,cex.name=0.8,topN=5)#检验项集的相关项集频繁度
rules<-apriori(Groceries,parameter=list(supp=0.01,conf=0.5,target="rules",minlen=2))
inspect(head(rules)) #查看前面一部分的规则
rules<-sort(rules,by="confidence",decreasing = TRUE) #根据置信度对规则排序并查看前面的部分规则
inspect(head(rules))
rules.sorted<-sort(rules,by="lift")
subset.matrix<-is.subset(rules.sorted,rules.sorted)#调用is.subset函数找到已排序规则的子集,is.subset函数会产生一个itemMatrix对象
subset.matrix[lower.tri(subset.matrix,diag=TRUE)]<-NA #可以将下三角矩阵修改成NA,然后计算矩阵的colSums值,如果该值>=1,则意味着该制定规则是冗余的
redundant<-colSums(subset.matrix,na.rm=T)>=1