2016-06-01 3 views
-1

내 데이터 세트는 내가 열만해야 LHS와 RHS 만 A, B, C 및 D 열을 갖고 싶어이, 난 arules를 사용하여 연역적을 구현하기 위해 노력하고,

A   B  C  D PR1 PR2 PR3 PR4 
Values Values Values Values 0 1 0 0 
Values Values Values Values 1 0 0 0 
Values Values Values Values 0 0 1 0 
Values Values Values Values 0 0 0 1 
Values Values Values Values 0 1 0 0 
Values Values Values Values 1 0 0 0 
Values Values Values Values 0 0 1 0 
Values Values Values Values 0 0 0 1 
Values Values Values Values 0 1 0 0 
Values Values Values Values 1 0 0 0 
Values Values Values Values 0 0 1 0 
Values Values Values Values 0 0 0 1 
Values Values Values Values 0 1 0 0 
Values Values Values Values 1 0 0 0 

처럼 보인다 PR1는, PR2, PR3, PR4 내가왔다

lhs = {a,b}, RHS{PR1=1} 
lhs= {b,c,d}, RHS {PR3 =1} 

아래의 코드를 사용하여 값을 내가 기대하고있는 결과 1. 예입니다 포함하지만, 원하는 결과

r <- apriori(b, parameter = list(supp = 0.1, conf = 0.9),    
      appearance = list(lhs = c("A","B","C","D"))) 
01을 받고 있지 않다 23,516,

사람이

답변

1

을위한 솔루션을 제공시겠습니까 "원하는 결과를 얻지 못하고" 무엇이 잘못되었는지의 가장 좋은 설명이 아니다. 예를 들어, 필요한 최소 자신감을 내릴 때 나를 위해 작동하는 것 같다 :

library(arules) 
r <- apriori(b, parameter = list(supp = .2, conf = .2), 
           appearance=list(lhs=c("A","B","C","D"))) 
inspect(subset(r, rhs(r) %ain% "PR1" & lhs(r) %ain% c("A", "B"))) 
# lhs   rhs support confidence lift 
# 41 {A,B}  => {PR1} 0.2857143 0.2857143 1 
# 58 {A,B,C} => {PR1} 0.2857143 0.2857143 1 
# 59 {A,B,D} => {PR1} 0.2857143 0.2857143 1 
# 64 {A,B,C,D} => {PR1} 0.2857143 0.2857143 1 
inspect(subset(r, rhs(r) %ain% "PR1" & labels(lhs(r))=="{A,B}")) 
# lhs  rhs support confidence lift 
# 41 {A,B} => {PR1} 0.2857143 0.2857143 1 
inspect(subset(r, labels(rhs(r))=="{PR3}" & labels(lhs(r))=="{B,C,D}")) 
# 45 {B,C,D} => {PR3} 0.2142857 0.2142857 1 

데이터 :

b <- new("transactions" 
    , data = new("ngCMatrix" 
    , i = c(0L, 1L, 2L, 3L, 5L, 0L, 1L, 2L, 3L, 4L, 0L, 1L, 2L, 3L, 6L, 
0L, 1L, 2L, 3L, 7L, 0L, 1L, 2L, 3L, 5L, 0L, 1L, 2L, 3L, 4L, 0L, 
1L, 2L, 3L, 6L, 0L, 1L, 2L, 3L, 7L, 0L, 1L, 2L, 3L, 5L, 0L, 1L, 
2L, 3L, 4L, 0L, 1L, 2L, 3L, 6L, 0L, 1L, 2L, 3L, 7L, 0L, 1L, 2L, 
3L, 5L, 0L, 1L, 2L, 3L, 4L) 
    , p = c(0L, 5L, 10L, 15L, 20L, 25L, 30L, 35L, 40L, 45L, 50L, 55L, 60L, 
65L, 70L) 
    , Dim = c(8L, 14L) 
    , Dimnames = list(NULL, NULL) 
    , factors = list() 
) 
    , itemInfo = structure(list(labels = c("A", "B", "C", "D", "PR1", "PR2", "PR3", 
"PR4")), .Names = "labels", row.names = c(NA, -8L), class = "data.frame") 
    , itemsetInfo = structure(list(transactionID = c("1", "2", "3", "4", "5", "6", 
"7", "8", "9", "10", "11", "12", "13", "14")), .Names = "transactionID", row.names = c(NA, 
-14L), class = "data.frame") 
) 
+0

안녕하세요 루크, 당신의 대답을 주셔서 감사합니다. 예상 된 결과를 얻을 수있는 한계점을 낮춤으로써 이해합니다. 임계 값을 낮추지 않고도 솔루션을 기대할 수있는 방법이 있는지 알고 싶습니까? –

+0

아니, 나는 있다고 생각하지 않는다. – lukeA