Skip to content

MMHC Algorithm

Overview

MMHC (Max-Min Hill-Climbing) is a hybrid algorithm that learns structure in two phases. The first phase uses the Max-Min Parents and Children (MMPC) algorithm — a constraint-based local discovery method — to identify a candidate set of parents and children for each variable using conditional independence tests. This produces a skeleton that constrains the subsequent search space.

The second phase runs hill-climbing restricted to the edges present in the skeleton, using a score such as BIC to orient edges and improve the overall graph quality. MMHC is one of the most widely benchmarked hybrid algorithms and consistently performs well across a range of network sizes and sample sizes. It is a good general-purpose choice when neither a purely constraint-based nor a purely score-based approach is preferred.

Class: hybrid · DAG Package: bnlearn

Reference

Tsamardinos I., Brown L.E. & Aliferis C.F. (2006) – The Max-Min Hill-Climbing BN Structure Learning Algorithm. Mach. Learn. 65, 31–78. https://doi.org/10.1007/s10994-006-6889-7

Hyperparameters

Hyperparameter Type Default Values Description
alpha float 0.05 p-value threshold below which a CI test indicates conditional independence.
ci_test str mi mi, x2 Conditional independence test used in constraint-based learning.
iss float 1.0 Imaginary Sample Size weighting the prior in Bayesian scores.
max_elapsed int No limit Maximum allowed execution time in seconds.
max_iterations int No limit Maximum number of iterations.
penalty_weight float 1.0 Weight of the penalty component in AIC and BIC scores.
score str bic aic, bdeu, bge, bic, k2, loglik Scoring function for score-based learning.

Variants

Variant Package
bnlearn bnlearn