Structural learning in R
source("bayesserver.R")
createNetworkNoLinks <- function() {
network <- new(Network)
for (name in c("A", "B", "C"))
{
node = new(Node, name, c("False", "True"))
network$getNodes()$add(node)
}
return(network)
}
da = c("True", "True", "True", "False", "False", "False", "False", "True", "True", "True", "True", "False", "True", "True", "False", "True", "False", "False", "True", "False", "False", "True", "False", "True", "False", "True", "False", "False", "True", "False", "True", "False", "True", "True", "True", "True", "True", "True", "False", "True", "True", "False", "True", "False", "False", "True", "True", "True", "False", "True", "True", "True", "True", "True", "True", "True", "True", "True", "False", "True", "False", "False", "True", "False", "True", "False", "False", "True", "False", "False", "True", "True", "False", "False", "True", "True", "True", "False", "True", "False", "True", "True", "True", "True", "False", "True", "True", "False", "True", "True", "True", "False", "False", "True", "True", "True", "True", "False", "True", "True" )
db = c("False", "True", "False", "False", "True", "False", "True", "False", "True", "False", "False", "True", "True", "True", "False", "False", "True", "False", "False", "True", "False", "False", "False", "True", "False", "False", "False", "False", "True", "False", "False", "False", "False", "False", "False", "True", "True", "False", "False", "False", "True", "True", "False", "False", "False", "False", "True", "False", "False", "True", "True", "True", "False", "False", "False", "False", "False", "False", "False", "False", "True", "False", "True", "True", "True", "True", "False", "True", "False", "False", "True", "False", "False", "False", "False", "False", "True", "True", "False", "True", "True", "True", "True", "False", "True", "False", "False", "False", "False", "False", "True", "False", "True", "False", "False", "True", "True", "True", "True", "False")
dc = c("True", "True", "True", "False", "True", "False", "True", "True", "True", "True", "True", "True", "True", "True", "False", "True", "True", "False", "True", "True", "False", "True", "False", "True", "False", "True", "False", "False", "True", "False", "True", "False", "True", "True", "True", "True", "True", "True", "False", "True", "True", "True", "True", "False", "False", "True", "True", "True", "False", "True", "True", "True", "True", "True", "True", "True", "True", "True", "False", "True", "True", "False", "True", "True", "True", "True", "False", "True", "False", "False", "True", "True", "False", "False", "True", "True", "True", "True", "True", "True", "True", "True", "True", "True", "True", "True", "True", "False", "True", "True", "True", "False", "True", "True", "True", "True", "True", "True", "True", "True")
df = data.frame(A=da, B=db, C=dc)
network <- createNetworkNoLinks()
learning = new(PCStructuralLearning)
dataTable <- toDataTable(df)
dataReaderCommand <- new(DataTableDataReaderCommand, dataTable)
variableReferences = lapply(network$getVariables(), function(v) {
return(new(VariableReference, v, ColumnValueType$NAME, v$getName()))
})
evidenceReaderCommand <- new(
DefaultEvidenceReaderCommand,
dataReaderCommand,
toVariableReferenceList(variableReferences),
new(ReaderOptions)
)
options <- new(PCStructuralLearningOptions)
output <- learning$learn(evidenceReaderCommand, network$getNodes(), options)