Я пытаюсь создать модель прогнозирования с помощью пакета bnlearn, но получаю сообщение об ошибке: "Ошибка в check.data(data): данные отсутствуют". Вот мой пример набора данных и строки кода, которые я использовал для предварительного формирования модели прогнозирования:
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)
Вот строки кода, которые я использовал для получения прогноза:
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."
Любая идея, как ее решить?
predict(fitted, node="snakes", data=demo.set)
. Чтобы прогнозировать по всем узлам, вы можете использоватьsapply(names(fitted), function(i) predict(fitted, node=i, demo.set))
. Взгляните на?bnlearn:::predict.bn.fit
, чтобы узнать, как указывать аргументы. [Я думаю, вы уже решили это (учитывая ваш последующий, теперь удаленный вопрос) - если да, не могли бы вы написать ответ и принять его (чтобы он казался решенным на SO). - person user20650   schedule 18.09.2014