aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCathy Yeh <cathy@driver.xyz>2017-12-12 14:12:51 -0800
committerCathy Yeh <cathy@driver.xyz>2017-12-13 18:45:03 -0800
commitf6ab3e7b918396dee70dc4ff2dc3a1341aaeb97b (patch)
treeb250129f62822a5a0a9a373ca5139409e0d6419f
parent1826222ed133b33f05fe0290fade25c2bde20729 (diff)
downloadbeliefs-f6ab3e7b918396dee70dc4ff2dc3a1341aaeb97b.tar.gz
beliefs-f6ab3e7b918396dee70dc4ff2dc3a1341aaeb97b.tar.bz2
beliefs-f6ab3e7b918396dee70dc4ff2dc3a1341aaeb97b.zip
TabularCPD inherits from DiscreteFactor
-rw-r--r--beliefs/factors/cpd.py20
1 files changed, 9 insertions, 11 deletions
diff --git a/beliefs/factors/cpd.py b/beliefs/factors/cpd.py
index a286aaa..9e7191f 100644
--- a/beliefs/factors/cpd.py
+++ b/beliefs/factors/cpd.py
@@ -1,15 +1,14 @@
import numpy as np
+from beliefs.factors.discrete_factor import DiscreteFactor
-class TabularCPD:
+class TabularCPD(DiscreteFactor):
"""
Defines the conditional probability table for a discrete variable
whose parents are also discrete.
-
- TODO: have this inherit from DiscreteFactor implementing explicit factor methods
"""
def __init__(self, variable, variable_card,
- parents=[], parents_card=[], values=[]):
+ parents=[], parents_card=[], values=[], state_names=None):
"""
Args:
variable: int or string
@@ -17,16 +16,15 @@ class TabularCPD:
parents: optional, list of int and/or strings
parents_card: optional, list of int
values: optional, 2d list or array
+ state_names: dictionary (optional),
+ mapping variables to their states, of format {label_name: ['state1', 'state2']}
"""
+ super().__init__(variables=[variable] + parents,
+ cardinality=[variable_card] + parents_card,
+ values=values,
+ state_names=state_names)
self.variable = variable
self.parents = parents
- self.variables = [variable] + parents
- self.cardinality = [variable_card] + parents_card
- self._values = np.array(values)
-
- @property
- def values(self):
- return self._values
def get_values(self):
"""