mbi.Estimator

class mbi.Estimator(*args, **kwargs)[source]

Bases: Protocol

Defines the callable signature for marginal-based estimators.

An estimator estimates a discrete distribution, or more generally a `Projectable’ object from a loss function defined over it’s low-dimensional marginals.

Examples of conforming functions from mbi.estimation: - mirror_descent - lbfgs - dual_averaging - interior_gradient - universal_accelerated_method - … and more from other modules

Methods

__init__

__call__(domain: Domain, loss_fn: MarginalLossFn | list[LinearMeasurement], *, known_total: float | None = None, **kwargs: Any) Projectable[source]

Estimate a Projectable from noisy marginal measurements.

Parameters:
  • domain – The Domain object specifying the attributes and their cardinalities over which the model is defined.

  • loss_fn – Either a MarginalLossFn object or a list of LinearMeasurement objects. This defines the objective function to be minimized.

  • known_total – An optional float for the known or estimated total number of records. If not specified, the estimator will attempt to learn this automatically.

  • **kwargs – Additional optional keyword arguments specific to the estimation algorithm.

Returns:

A Projectable object that is maximally consistent with the noisy measurements taken in some sense.