Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function (data, method, training, explanatory, whitelist, blacklist,
- expand, debug = FALSE)
- {
- check.logical(debug)
- check.learning.algorithm(method, class = "classifier")
- check.nodes(training, max.nodes = 1)
- check.data(data, allowed.types = discrete.data.types)
- if (missing(data)) {
- check.nodes(explanatory)
- }
- else {
- vars = names(data)
- check.nodes(training, graph = vars, max.nodes = 1)
- if (missing(explanatory))
- explanatory = vars[vars != training]
- else check.nodes(explanatory, graph = nodes)
- }
- if (training %in% explanatory)
- stop("node ", training, " is included in the model both as a training ",
- "and an explanatory variable.")
- nodes = c(training, explanatory)
- if (method != "naive.bayes") {
- whitelist = build.whitelist(whitelist, nodes, data, criterion = "mi")
- blacklist = build.blacklist(blacklist, whitelist, nodes)
- if (method == "tree.bayes") {
- if ((training %in% whitelist) || (training %in% blacklist))
- stop("blacklisting arcs to and from the training node is not allowed.")
- }
- }
- extra.args = check.classifier.args(method = method, data = data,
- extra.args = expand, training = training, explanatory = explanatory)
- if (method == "naive.bayes") {
- ntests = 0
- test = "none"
- res = naive.bayes.backend(data = data, training = training,
- explanatory = explanatory)
- }
- else if (method == "tree.bayes") {
- ntests = length(explanatory) * (length(explanatory) -
- 1)/2
- test = as.character(mi.estimator.tests[extra.args$estimator])
- res = tan.backend(data = data, training = training, explanatory = explanatory,
- whitelist = whitelist, blacklist = blacklist, mi = extra.args$estimator,
- root = extra.args$root, debug = debug)
- }
- res$learning$algo = method
- res$learning = list(whitelist = whitelist, blacklist = blacklist,
- test = test, ntests = ntests, algo = method, args = extra.args,
- optimized = NULL)
- res$learning$args$training = training
- invisible(res)
- }
Advertisement
Add Comment
Please, Sign In to add comment