0
我试图让R apriori算法允许我在lhs中同时指定多个属性。关于R Apriori的lhs的多个条件
rules <- apriori(Data, parameter=list(supp = 0.0001, conf = 0.001, minlen = 2), appearance = list(lhs = c("DiagnoseTekst=Acuut hartfalen"), default="rhs"))
上面一行将筛选只是在一定DiagnoseTekst的LHS(在我的数据列是“MedicatieTekst”,“Geslacht”和“DiagnoseTekst”) 不过,我想这两个DiagnoseTekst过滤和Geslacht。当我投入
rules <- apriori(Data, parameter=list(supp = 0.0001, conf = 0.001, minlen = 2), appearance = list(lhs = c("DiagnoseTekst=Acuut hartfalen", "Geslacht=M"), default="rhs"))
我得到了一些只有DiagnoseTekst和一些只与Geslacht规则。 (在这种情况下,大多数情况下都应该具有这两个属性)。有什么方法可以筛选搜索或结果,以便能够为lhs列指定多个条件?
的完整代码是明确的:输出的
Data <- as(data, "transactions")
str(Data)
rules <- apriori(Data, parameter=list(supp = 0.0001, conf = 0.001, minlen = 2), appearance = list(lhs = c("DiagnoseTekst=Acuut hartfalen"), default="rhs"))
top.conf <- sort(rules, decreasing = TRUE, na.last = NA, by = c("confidence","lift"))
set <- inspect(head(subset(top.conf), 30))
例子:
> set <- inspect(head(subset(top.conf), 30))
lhs rhs support confidence lift count
[1] {DiagnoseTekst=Acuut hartfalen} => {Geslacht=V} 0.066477566 0.525500378 1.1539592 30561
[2] {DiagnoseTekst=Acuut hartfalen} => {Geslacht=M} 0.060025798 0.474499622 0.8712635 27595
[3] {DiagnoseTekst=Acuut hartfalen} => {MedicatieTekst=FUROSEMIDE} 0.017917467 0.141636289 2.9290550 8237
[4] {DiagnoseTekst=Acuut hartfalen} => {MedicatieTekst=METOPROLOL} 0.006279923 0.049642341 0.9877311 2887
[5] {DiagnoseTekst=Acuut hartfalen} => {MedicatieTekst=PARACETAMOL} 0.005201003 0.041113557 0.6085413 2391