Package edu.cmu.tetrad.bayes
Class RowSummingExactUpdater
java.lang.Object
edu.cmu.tetrad.bayes.RowSummingExactUpdater
- All Implemented Interfaces:
BayesUpdater,ManipulatingBayesUpdater,TetradSerializable,Serializable
Performs updating operations on a BayesIm by summing over cells in the joint probability table for the BayesIm. Quite
flexible and fast if almost all of the variables in the Bayes net are in evidence. Can be excruciatingly slow if
numVars - numVarsInEvidence is more than 15.
- Author:
- josephramsey
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionRowSummingExactUpdater(BayesIm bayesIm) Constructs a new updater for the given Bayes net.RowSummingExactUpdater(BayesIm bayesIm, Evidence evidence) Constructs a new updater for the given Bayes net. -
Method Summary
Modifier and TypeMethodDescriptiondouble[]calculatePriorMarginals(int nodeIndex) Calculates the prior marginal probabilities of the given node.double[]calculateUpdatedMarginals(int nodeIndex) Calculates the updated marginal probabilities of the given node, given the evidence.The BayesIm that this updater bases its update on.Returns the manipulation that was used to manipulate the Bayes IM.doublegetJointMarginal(int[] variables, int[] values) Returns the joint marginal probability of the given variables taking the given values, given the evidence.Returns the manipulated Bayes IM.Returns the manipulated graph.doublegetMarginal(int variable, int value) Returns the updated graph.The updated BayesIm.booleanReturns the joint marginal probability of the given variables taking the given values, given the evidence.static RowSummingExactUpdaterGenerates a simple exemplar of this class to test serialization.voidsetEvidence(Evidence evidence) Sets new evidence for the updater.toString()Prints out the most recent marginal.
-
Constructor Details
-
RowSummingExactUpdater
Constructs a new updater for the given Bayes net. -
RowSummingExactUpdater
Constructs a new updater for the given Bayes net.
-
-
Method Details
-
serializableInstance
Generates a simple exemplar of this class to test serialization. -
getBayesIm
The BayesIm that this updater bases its update on. This BayesIm is not modified; rather, a new BayesIm is created and updated.- Specified by:
getBayesImin interfaceBayesUpdater- Returns:
- the Bayes instantiated model that is being updated.
-
getManipulatedBayesIm
Description copied from interface:ManipulatingBayesUpdaterReturns the manipulated Bayes IM. This is the Bayes IM in which the variables in the manipulation have been removed from the graph.- Specified by:
getManipulatedBayesImin interfaceManipulatingBayesUpdater- Returns:
- the updated BayesIm.
-
getManipulatedGraph
Description copied from interface:ManipulatingBayesUpdaterReturns the manipulated graph. This is the graph in which the variables in the manipulation have been removed from the graph.- Specified by:
getManipulatedGraphin interfaceManipulatingBayesUpdater- Returns:
- the graph for the manipulated BayesIm.
-
getUpdatedBayesIm
The updated BayesIm. This is a different object from the source BayesIm.- Specified by:
getUpdatedBayesImin interfaceManipulatingBayesUpdater- Returns:
- the updated Bayes IM--that is, the Bayes IM in which all probabilities of variables conditional on their parents have been updated.
- See Also:
-
getEvidence
Description copied from interface:ManipulatingBayesUpdaterReturns the manipulation that was used to manipulate the Bayes IM.- Specified by:
getEvidencein interfaceManipulatingBayesUpdater- Returns:
- a defensive copy of the evidence.
-
setEvidence
Description copied from interface:ManipulatingBayesUpdaterSets new evidence for the updater. Once this is called, old updating results should not longer be available.- Specified by:
setEvidencein interfaceBayesUpdater- Specified by:
setEvidencein interfaceManipulatingBayesUpdater- Parameters:
evidence- the new evidence.
-
isJointMarginalSupported
public boolean isJointMarginalSupported()Description copied from interface:BayesUpdaterReturns the joint marginal probability of the given variables taking the given values, given the evidence.- Specified by:
isJointMarginalSupportedin interfaceBayesUpdater- Returns:
- true if the getJointMarginal() method is supported.
-
getJointMarginal
public double getJointMarginal(int[] variables, int[] values) Description copied from interface:BayesUpdaterReturns the joint marginal probability of the given variables taking the given values, given the evidence.- Specified by:
getJointMarginalin interfaceBayesUpdater- Parameters:
variables- variable indicesvalues- category indices- Returns:
- P(variables[i] = values[i] | evidence), where evidence is getEvidence().
-
getMarginal
public double getMarginal(int variable, int value) Description copied from interface:ManipulatingBayesUpdaterReturns the updated graph. This is the graph in which all probabilities of variables conditional on their parents have been updated.- Specified by:
getMarginalin interfaceBayesUpdater- Specified by:
getMarginalin interfaceManipulatingBayesUpdater- Parameters:
variable- variable indexvalue- category index- Returns:
- P(variable = value | evidence) where evidence is getEvidence().
-
calculatePriorMarginals
public double[] calculatePriorMarginals(int nodeIndex) Description copied from interface:BayesUpdaterCalculates the prior marginal probabilities of the given node.- Specified by:
calculatePriorMarginalsin interfaceBayesUpdater- Parameters:
nodeIndex- node index- Returns:
- P(node = value), where value is the value of the node in the Bayes net.
-
calculateUpdatedMarginals
public double[] calculateUpdatedMarginals(int nodeIndex) Description copied from interface:BayesUpdaterCalculates the updated marginal probabilities of the given node, given the evidence.- Specified by:
calculateUpdatedMarginalsin interfaceBayesUpdater- Parameters:
nodeIndex- node index- Returns:
- P(node = value | evidence), where value is the value of the node in the Bayes net.
-
toString
Prints out the most recent marginal.
-