- class liesel.model.model.GraphBuilder#
A graph builder, used to set up a
Constructs a model containing all nodes and variables that were added to the graph builder and their recursive inputs.
build_model(), the graph builder will automatically find all inputs to its nodes - and the inputs to these inputs (i.e. it finds inputs recursively).
The outputs of the nodes, however, are not added to the model automatically, so all root nodes need to be added explicitly.
Root nodes are nodes that are not inputs to any other node in the graph. The response in a regression model is an example of a root node.
The standard workflow is to create the nodes and variables, add the root var to a graph builder, and construct a model from the graph builder. After the model has been constructed, some methods of the graph builder are not available anymore, because the graph is considered static.
The liesel model class, representing a static graph.
Method for adding variables and nodes to the GraphBuilder.
Method for building a model from the GraphBuilder.
Transforms a variable by adding a new transformed variable as an input. This is useful for variables that are constrained to a certain domain, e.g. positive values.
We start by creating some variables:
>>> a = lsl.Var(1.0, name="a") >>> b = lsl.Var(2.0, name="b") >>> c = lsl.Var(lsl.Calc(lambda x, y: x + y, a, b), name="c")
We now initialize a GraphBuilder and add the root node
>>> gb = lsl.GraphBuilder() >>> gb.add(c) GraphBuilder(0 nodes, 1 vars)
We are now ready to build the model:
>>> model = gb.build_model() >>> model Model(9 nodes, 3 vars)
>>> c.value 3.0
The graph builder is now empty:
>>> gb.vars 
Adds nodes, variables or other graph builders to the graph.
Adds groups to the graph.
Builds a model from the graph.
Tries to convert the node values in the graph to the specified data type.
Returns a shallow copy of the graph builder.
Counts the number of times each node name occurs in the graph.
Counts the number of times each variable name occurs in the graph.
Collects the groups from all nodes and variables.
Plots all nodes in the graph.
Plots all variables in the graph.
Renames all nodes and variables in the graph.
Renames all nodes in the graph.
Renames all variables in the graph.
Transforms a variable by adding a new transformed variable as an input.
Updates all nodes in the graph.
User-defined log-likelihood node, if there is one.
User-defined log-prior node, if there is one.
User-defined log-probability node, if there is one.
The nodes that were explicitly added to the graph.
The variables that were explicitly added to the graph.