Learning Bayesian Network by Constrained Hill Climbing Algorithms
Companion website for the associated paper:


Structural Learning of Bayesian Networks via Constrained Hill Climbing Algorithms: Adjusting trade-off between efficiency and accuracy
International Journal of Intelligent Systems. 2015. 30, 292--325. Wiley.

View Paper

Authors:
  • Jacinto Arias*
  • José A. Gámez
  • Juan L. Mateo
  • José M. Puerta
Department of Computing Systems - I3A
University of Castilla-La Mancha
Albacete, Spain

Contact: jacinto.arias@uclm.es

The purpose of this document is to release an promote the source code as well as the data and scripts used in the development and experimental evaluations of CHC, FastCHC algorithm and its latest modifications as described in the mentioned paper.

We provide detailed information about how to replicate the experiments carried out as well as a rich interface to design new experiments for further comparisons or to be applied to practical applied Bayesian Networks structural learning.

Additional References

CHC algorithm and later improvements were published in the following papers:

  • José A. Gámez, Juan L. Mateo and José M. Puerta. Learning Bayesian networks by hill climbing: efficient methods based on progressive restriction of the neighborhood. Data Min. Knowl. Discov., 2011, 22, 106-148. Paper
  • José A. Gámez, Juan L. Mateo and José M. Puerta. One iteration CHC algorithm for learning Bayesian networks: an effective and efficient algorithm for high dimensional problems. Progress in Artificial Intelligence, Springer, 2012, 1, 329-346. Paper

Code

The following package contains the source code as well as the compiled java classes and required external libraries. Detailed documentation about usage and file structure can be found in the manuals included. Please do not hesitate to contact us if you need further assistance with it.

Download Code

Our code makes use of the ProGraMo library for dataset loading, graph data structure management and scoring functions.

We also use the Weka environment for exporting the resulting networks in the XBIF format.

We also provide this Matlab script to execute the MMPC algorithm and obtain the network skeleton needed to replicate our MMHC experiment by using our code. This script uses the Causal Explorer package that you must obtain from the original authors. Please download our script and its instructions here:

matlab_mmpc.zip

Originally we ran mmpc using its implementation on the bnlearn package, but obtaining different results when comparing to the original one. We provide a R script to run mmpc on R in the case someone require to check the differences. Please download it here:

r_mmpc.zip

Datasets

We generated samples for real networks obtained from the bnlearn Bayesian network repository. Here we provide the samples (in arff and csv formats) and the R script used to generate them to allow total replication of our experiments. Please download them here:

chcdatasets

Networks and Results

Additionally, we provide here all the resulting network from the performed experiments of the paper, in order to allow its comparison (score, structural) using external tools. The networks are available in XBIF format and in plain text, expressed as an adjacency matrix. Please download them here:

networks.zip