Не удалось запустить официальный учебник bnlearn "Создание настраиваемых байесовских сетей" для запуска
Я смотрю на официальный учебник здесь. Я точно скопировал их код, но RStudio выдает мне сообщения об ошибках для строк , , B = GOOD
(сообщение об ошибке: unexpected ',' in ","
) а также dfit
(сообщение об ошибке: object dfit not found
). Вот точный код, который я скопировал:
# install.packages("bnlearn")
library(bnlearn)
cptA = matrix(c(0.4, 0.6), ncol = 2, dimnames = list(NULL, c("LOW", "HIGH")))
#cptA
cptB = matrix(c(0.8, 0.2), ncol = 2, dimnames = list(NULL, c("GOOD", "BAD")))
#cptB
cptC = c(0.5, 0.5, 0.4, 0.6, 0.3, 0.7, 0.2, 0.8)
dim(cptC) = c(2, 2, 2)
dimnames(cptC) = list("C" = c("TRUE", "FALSE"), "A" = c("LOW", "HIGH"), "B" = c("GOOD", "BAD"))
#cptC
, , B = GOOD
net = model2network("[A][B][C|A:B]")
dfit = custom.fit(net, dist = list(A = cptA, B = cptB, C = cptC))
dfit
Кто-нибудь знает, что здесь происходит? Что я сделал не так?
1 ответ
Этот урок соединяет вывод с кодом, и вы случайно скопировали одну строку. Вы можете посмотреть аналогичный пример в документации к пакету ( https://cran.r-project.org/web/packages/bnlearn/bnlearn.pdf). Так должно быть:
library(bnlearn)
cptA = matrix(c(0.4, 0.6), ncol = 2, dimnames = list(NULL, c("LOW", "HIGH")))
#cptA
cptB = matrix(c(0.8, 0.2), ncol = 2, dimnames = list(NULL, c("GOOD", "BAD")))
#cptB
cptC = c(0.5, 0.5, 0.4, 0.6, 0.3, 0.7, 0.2, 0.8)
dim(cptC) = c(2, 2, 2)
dimnames(cptC) = list("C" = c("TRUE", "FALSE"), "A" = c("LOW", "HIGH"), "B" = c("GOOD", "BAD"))
cptC
# , , B = GOOD
#
# A
# C LOW HIGH
# TRUE 0.5 0.4
# FALSE 0.5 0.6
#
# , , B = BAD
#
# A
# C LOW HIGH
# TRUE 0.3 0.2
# FALSE 0.7 0.8
net = model2network("[A][B][C|A:B]")
cfit = custom.fit(net, dist = list(A = cptA, B = cptB, C = cptC))