Interface Inference
-
- All Known Implementing Classes:
BackdoorInference
,CausalInferenceBase
,DisjunctiveCauseInference
,FrontDoorInference
,LikelihoodSamplingInference
,LoopyBeliefInference
,RelevanceTreeInference
,VariableEliminationInference
public interface Inference
The interface for a Bayesian network inference algorithm, which is used to perform queries such as calculating posterior probabilities and log-likelihood values for a case. For an example of a class that implements this interface seeRelevanceTreeInference
.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description Evidence
getBaseEvidence()
Optional evidence which can be used to calculate the lift of queries.Evidence
getEvidence()
Represents the evidence, or case data (e.g.Network
getNetwork()
The target Bayesian network.QueryDistributionCollection
getQueryDistributions()
Gets the collection of distributions to calculate.QueryFunctionCollection
getQueryFunctions()
Gets the collection of functions to evaluate, after QueryDistributions have been calculated.QueryLifecycle
getQueryLifecycle()
Optional, allowing callers to hook into query lifecycle events, such as begin query and end query.void
query(QueryOptions queryOptions, QueryOutput queryOutput)
Calculates a number of distributions, e.g.void
setBaseEvidence(Evidence value)
Optional evidence which can be used to calculate the lift of queries.void
setEvidence(Evidence value)
Represents the evidence, or case data (e.g.void
setQueryDistributions(QueryDistributionCollection value)
Sets the collection of distributions to calculate.void
setQueryFunctions(QueryFunctionCollection value)
Sets the collection of functions to evaluate, after QueryDistributions have been calculated.void
setQueryLifecycle(QueryLifecycle value)
Optional, allowing callers to hook into query lifecycle events, such as begin query and end query.
-
-
-
Method Detail
-
getNetwork
Network getNetwork()
The target Bayesian network.
-
getEvidence
Evidence getEvidence()
Represents the evidence, or case data (e.g. row in a database) used in aquery
. Thedistributions
are only recalculated byquery(com.bayesserver.inference.QueryOptions, com.bayesserver.inference.QueryOutput)
, not each time evidence is changed.For more information see
Evidence
.
-
setEvidence
void setEvidence(Evidence value)
Represents the evidence, or case data (e.g. row in a database) used in aquery
. Thedistributions
are only recalculated byquery(com.bayesserver.inference.QueryOptions, com.bayesserver.inference.QueryOutput)
, not each time evidence is changed.For more information see
Evidence
.
-
getBaseEvidence
Evidence getBaseEvidence()
Optional evidence which can be used to calculate the lift of queries. Defaults to null. WhenQueryDistribution.getComparison()
istrue
queries are adjusted based on marginals calculated with this evidence or no evidence if this value is null.- See Also:
QueryDistribution.getComparison()
-
setBaseEvidence
void setBaseEvidence(Evidence value)
Optional evidence which can be used to calculate the lift of queries. Defaults to null. WhenQueryDistribution.getComparison()
istrue
queries are adjusted based on marginals calculated with this evidence or no evidence if this value is null.- See Also:
QueryDistribution.getComparison()
-
getQueryDistributions
QueryDistributionCollection getQueryDistributions()
Gets the collection of distributions to calculate. SeeQueryDistributionCollection
. If required, a query distribution collection can be dynamically attached or detached. Also note that individual elements can be enabled or disabled on a per query basis.
-
setQueryDistributions
void setQueryDistributions(QueryDistributionCollection value)
Sets the collection of distributions to calculate. SeeQueryDistributionCollection
. If required, a query distribution collection can be dynamically attached or detached. Also note that individual elements can be enabled or disabled on a per query basis.
-
getQueryFunctions
QueryFunctionCollection getQueryFunctions()
Gets the collection of functions to evaluate, after QueryDistributions have been calculated. If required, a query function collection can be dynamically attached or detached. Also note that individual elements can be enabled or disabled on a per query basis.
-
setQueryFunctions
void setQueryFunctions(QueryFunctionCollection value)
Sets the collection of functions to evaluate, after QueryDistributions have been calculated. If required, a query function collection can be dynamically attached or detached. Also note that individual elements can be enabled or disabled on a per query basis.
-
query
void query(QueryOptions queryOptions, QueryOutput queryOutput) throws InconsistentEvidenceException
Calculates a number of distributions, e.g. P(A) and P(B) given theevidence
(case data, e.g. row in a database), and if requested the log-likelihood of the data. Each time this method is called thedistributions
have their values replaced, acting like buffers.As well as requesting distributions of the form P(A), P(B) it is also possible to request distributions over a number of variables such as P(A,B).
If
CLGaussian
distributions are requested that include instantiated discrete variables, an algorithm may legitimately return mean and covariance values equal to NaN for entries corresponding to inconsistent discrete combinations. For example, if a CLGaussian is requested that includes a discrete variable 'Gender' with states 'Male' and 'Female' and evidence is set to 'Female' then any mean and covariance entries that correspond to 'Male' may be set to NaN. NaN values will always be accompanied by a corresponding zero value in theCLGaussian.getTable()
.- Parameters:
queryOptions
- Options governing which calculations are performed and how.queryOutput
- Returns any information, in addition to thedistributions
, that is requested. For example thelog-likelihood
.- Throws:
InvalidNetworkException
- Raised if the network is invalid.InconsistentEvidenceException
- Raised if inconsistent evidence is detected, or underflow/overflow occurs when calculating queries or the conflict measure. Note that log-likelihood calculations do not raise this exception, but instead report -Infinity or +Infinity.
-
getQueryLifecycle
QueryLifecycle getQueryLifecycle()
Optional, allowing callers to hook into query lifecycle events, such as begin query and end query.
-
setQueryLifecycle
void setQueryLifecycle(QueryLifecycle value)
Optional, allowing callers to hook into query lifecycle events, such as begin query and end query.
-
-