2014-09-18 7 views
1

내가 bnlearn 패키지와 예측 모델을 할 노력하고있어하지만 난 나타내는 오류가 발생합니다 : "check.data의 오류 (데이터) : 데이터 를 찾을 수 없다".오류 동안 - 베이지안 네트워크

dat$birds<-as.numeric(dat$birds) 
dat$wolfs<-as.numeric(dat$wolfs) 
dat$snakes<-as.numeric(dat$snakes) 
training.set = dat[1:8,2:4 ] 
demo.set = dat[8:16,2:4 ] 
res <- hc(training.set) 
fitted = bn.fit(res, training.set) 

pred = predict(fitted, demo.set) # I get an error: "Error in check.data(data) : the data are missing." 

모든 아이디어 : 여기

dat <- read.table(text = " category birds wolfs  snakes 
        yes  3  9   7 
        no   3  8   4 
        no   1  2   8 
        yes  1  2   3 
        yes  1  8   3 
        no   6  1   2 
        yes  6  7   1 
        no   6  1   5 
        yes  5  9   7 
        no   3  8   7 
        no   4  2   7 
        notsure 1  2   3 
        notsure 7  6   3 
        no   6  1   1 
        notsure 6  3   9 
        no   6  1   1 ",header = TRUE) 

내가 예측을 얻기 위해 사용되는 코드의 라인은 다음과 같습니다 는 여기에 내가 예측 모델을 미리 형성하는 데 사용 내 예를 들어, 데이터 세트 및 코드의 라인 그것을 해결하는 방법?

+4

당신은에 대한 예측을 할 수있는 노드를 지정해야하는 근무 예측하고있다. 즉'예측 (fitted, node = "snakes", data = demo.set)'입니다. 모든 노드에서 예측하려면'sapply (이름 (fitted), function (i) predict (fitted, node = i, demo.set))'를 사용할 수 있습니다. 인수를 지정하는 방법은'? bnlearn ::: predict.bn.fit'을보십시오. [나는 당신이 이미이 문제를 해결했다고 생각합니다. (당신의 후속, 지금은 삭제 된 질문을 생각해보십시오.) 그렇다면 대답을 적어서 받아 들일 수 있습니까? – user20650

+0

도움을 주신 user20650에게 감사드립니다.이 코드 줄을보고 싶습니다. 예측 (fitted, node = "snakes", data = demo.set, method = "bayes-lw"). 이 방법은 여기에서 중요합니다. 모든 관측치에 대해 동일한 예측 값을 얻지 못했습니다. 답변으로 의견을 작성해 주시고 나는 그것을 upvote하겠습니다. –

답변

1

bnlearn이 설치되어 있지 않지만 코드에서 훈련 (범주 열인 출력)을 교육 세트에 제공하지 않은 것이 문제라고 생각합니다. 변경 :

training.set = dat[1:8,] 

및 작동하는지 확인하십시오.

1

은 (fittedbn, 노드 = "열 이름이 예측하는"데이터 = testdata로)