diff options
author | Cathy Yeh <cathy@driver.xyz> | 2017-12-03 20:38:28 -0800 |
---|---|---|
committer | Cathy Yeh <cathy@driver.xyz> | 2017-12-03 20:38:28 -0800 |
commit | 26b43410569044aff46053cae7c68862825dd4ec (patch) | |
tree | b184df84d416e2ddf837b25baadff4f9feaaa250 /beliefs/utils/random_variables.py | |
parent | 6a1b35f5bf122232d058ed0f3ea19c15629c0cbc (diff) | |
parent | c906bd37fba63ba706cc3b7802bfb18ffb05ee9a (diff) | |
download | beliefs-26b43410569044aff46053cae7c68862825dd4ec.tar.gz beliefs-26b43410569044aff46053cae7c68862825dd4ec.tar.bz2 beliefs-26b43410569044aff46053cae7c68862825dd4ec.zip |
LGS-164 belief propagation for polytrees, special case of OR cpds, refactored from LGSv0.0.2
Diffstat (limited to 'beliefs/utils/random_variables.py')
-rw-r--r-- | beliefs/utils/random_variables.py | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/beliefs/utils/random_variables.py b/beliefs/utils/random_variables.py new file mode 100644 index 0000000..1a0b0f7 --- /dev/null +++ b/beliefs/utils/random_variables.py @@ -0,0 +1,21 @@ + + +def get_reachable_observed_variables_for_inferred_variables(model, observed=set()): + """ + After performing inference on a BayesianModel, get the labels of observed variables + ("reachable observed variables") that influenced the beliefs of variables inferred + to be in a definite state. + + INPUT + model: instance of BayesianModel class or subclass + observed: set of labels (strings) corresponding to vars pinned to definite + state during inference. + RETURNS + dict, of form key - source label (a string), value - a list of strings + """ + if not observed: + return {} + + source_vars = model.get_unobserved_variables_in_definite_state(observed) + + return {var: model.reachable_observed_variables(var, observed) for var in source_vars} |