pgmpy.factors.factor_product#

pgmpy.factors.factor_product(*args)[source]#

Returns factor product over args.

Parameters:
args: `BaseFactor` instances.

factors to be multiplied

Returns:
BaseFactor: BaseFactor representing factor product over all the BaseFactor instances in args.

Examples

>>> from pgmpy.factors.discrete import DiscreteFactor
>>> from pgmpy.factors import factor_product
>>> import numpy as np
>>> phi1 = DiscreteFactor(
...     variables=["x1", "x2", "x3"], cardinality=[2, 3, 2], values=range(12)
... )
>>> phi2 = DiscreteFactor(
...     variables=["x3", "x4", "x1"], cardinality=[2, 2, 2], values=range(8)
... )
>>> phi = factor_product(phi1, phi2)
>>> sorted(phi.variables)
['x1', 'x2', 'x3', 'x4']
>>> cardinalities = [
...     phi.get_cardinality([var])[var] for var in sorted(phi.variables)
... ]
>>> np.array(cardinalities)
array([2, 3, 2, 2])
>>> phi.values.shape
(2, 3, 2, 2)