Bayesian Networks

This page documents all the tools within the dlib library that relate to the construction and evaluation of Bayesian networks. If you want a quick introduction to the tools then you should consult the Bayesian Net example program.

The library also comes with a graphical application to assist in the creation of bayesian networks. This application is one of the example programs, so to use it you have to compile it yourself.

[top]

# assignment

This object models an assignment of random variables to particular values. It is used with the joint_probability_table and conditional_probability_table objects to represent assignments of various random variables to actual values.
C++ Example Programs: bayes_net_ex.cpp, bayes_net_gui_ex.cpp
More Details...
#include <dlib/bayes_utils.h>
[top]

# bayesian_network_gibbs_sampler

This object performs Markov Chain Monte Carlo sampling of a bayesian network using the Gibbs sampling technique.
C++ Example Programs: bayes_net_ex.cpp
More Details...
#include <dlib/bayes_utils.h>
[top]

# bayesian_network_join_tree

This object represents an implementation of the join tree algorithm (a.k.a. the junction tree algorithm) for inference in bayesian networks.
C++ Example Programs: bayes_net_ex.cpp, bayes_net_gui_ex.cpp, bayes_net_from_disk_ex.cpp
More Details...
#include <dlib/bayes_utils.h>
[top]

# bayes_node

This object represents a node in a bayesian network. It is intended to be used inside the directed_graph object to represent bayesian networks.
C++ Example Programs: bayes_net_ex.cpp, bayes_net_gui_ex.cpp
More Details...
#include <dlib/bayes_utils.h>
[top]

# conditional_probability_table

This object represents a conditional probability table.
More Details...
#include <dlib/bayes_utils.h>
[top]

# joint_probability_table

This object represents a joint probability table.
More Details...
#include <dlib/bayes_utils.h>
[top]

# node_cpt_filled_out

This is a function declared in the dlib::bayes_node_utils namespace. It is a convenience function that allows you to easily verify that a node in a bayesian network has its conditional_probability_table completely filled out.
C++ Example Programs: bayes_net_gui_ex.cpp
More Details...
#include <dlib/bayes_utils.h>
[top]

# node_first_parent_assignment

This is a function declared in the dlib::bayes_node_utils namespace. It is a convenience function that allows you to easily obtain an assignment that contains all the parents of a node in a bayesian network.
C++ Example Programs: bayes_net_gui_ex.cpp
More Details...
#include <dlib/bayes_utils.h>
[top]

# node_is_evidence

This is a function declared in the dlib::bayes_node_utils namespace. It is a convenience function that allows you to easily determine if a bayes_node is evidence when it is inside a directed_graph object.
More Details...
#include <dlib/bayes_utils.h>
[top]

# node_next_parent_assignment

This is a function declared in the dlib::bayes_node_utils namespace. It is a convenience function that allows you to easily loop through all the parent assignments of a node in a bayesian network.
C++ Example Programs: bayes_net_gui_ex.cpp
More Details...
#include <dlib/bayes_utils.h>
[top]

# node_num_values

This is a function declared in the dlib::bayes_node_utils namespace. It is a convenience function that allows you to easily obtain the number of values of a bayes_node when it is inside a directed_graph object.
More Details...
#include <dlib/bayes_utils.h>
[top]

# node_probability

This is a function declared in the dlib::bayes_node_utils namespace. It is a convenience function that allows you to easily obtain the probability of a bayes_node given its parents when it is inside a directed_graph object.
More Details...
#include <dlib/bayes_utils.h>
[top]

# node_value

This is a function declared in the dlib::bayes_node_utils namespace. It is a convenience function that allows you to easily obtain the value of a bayes_node when it is inside a directed_graph object.
More Details...
#include <dlib/bayes_utils.h>
[top]

# set_node_as_evidence

This is a function declared in the dlib::bayes_node_utils namespace. It is a convenience function that allows you to easily set the evidence flag of a bayes_node when it is inside a directed_graph object.
C++ Example Programs: bayes_net_ex.cpp
More Details...
#include <dlib/bayes_utils.h>
[top]

# set_node_as_nonevidence

This is a function declared in the dlib::bayes_node_utils namespace. It is a convenience function that allows you to easily remove the evidence flag of a bayes_node when it is inside a directed_graph object.
C++ Example Programs: bayes_net_ex.cpp
More Details...
#include <dlib/bayes_utils.h>
[top]

# set_node_num_values

This is a function declared in the dlib::bayes_node_utils namespace. It is a convenience function that allows you to easily set the number of values of a bayes_node when it is inside a directed_graph object.
C++ Example Programs: bayes_net_ex.cpp
More Details...
#include <dlib/bayes_utils.h>
[top]

# set_node_probability

This is a function declared in the dlib::bayes_node_utils namespace. It is a convenience function that allows you to easily set the probability of a bayes_node given its parents when it is inside a directed_graph object.
C++ Example Programs: bayes_net_ex.cpp
More Details...
#include <dlib/bayes_utils.h>
[top]

# set_node_value

This is a function declared in the dlib::bayes_node_utils namespace. It is a convenience function that allows you to easily modify the value of a bayes_node when it is inside a directed_graph object.
C++ Example Programs: bayes_net_ex.cpp
More Details...
#include <dlib/bayes_utils.h>