Interface IInference
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.
Inherited Members
Namespace: BayesServer.Inference
Assembly: BayesServer.Inference.dll
Syntax
public interface IInference : IDisposable
Remarks
For an example of a class that implements this interface see RelevanceTreeInference.
Properties
BaseEvidence
Optional evidence which can be used to calculate the lift of queries. Defaults to null.
Declaration
IEvidence BaseEvidence { get; set; }
Property Value
Type | Description |
---|---|
IEvidence |
Remarks
When Comparison is true
queries are adjusted based on marginals calculated with this evidence or no evidence if this value is null.
See Also
Evidence
Represents the evidence, or case data (e.g. row in a database) used in a BayesServer.Inference.IInference.Query.
Declaration
IEvidence Evidence { get; set; }
Property Value
Type | Description |
---|---|
IEvidence |
Remarks
The distributions are only recalculated by BayesServer.Inference.IInference.Query, not each time evidence is changed.
For more information see IEvidence.
Network
The target Bayesian network.
Declaration
Network Network { get; }
Property Value
Type | Description |
---|---|
Network |
QueryDistributions
Gets or sets the collection of distributions to calculate. See IQueryDistributionCollection.
Declaration
IQueryDistributionCollection QueryDistributions { get; set; }
Property Value
Type | Description |
---|---|
IQueryDistributionCollection |
Remarks
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.
QueryFunctions
Gets or sets the collection of functions to evaluate, after QueryDistributions have been calculated.
Declaration
IQueryFunctionCollection QueryFunctions { get; set; }
Property Value
Type | Description |
---|---|
IQueryFunctionCollection |
Remarks
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.
QueryLifecycle
Optional, allowing callers to hook into query lifecycle events, such as begin query and end query.
Declaration
IQueryLifecycle QueryLifecycle { get; set; }
Property Value
Type | Description |
---|---|
IQueryLifecycle |
Methods
Query(IQueryOptions, IQueryOutput)
Calculates a number of distributions, e.g. P(A) and P(B) given the evidence (case data, e.g. row in a database), and if requested the log-likelihood of the data.
Declaration
void Query(IQueryOptions queryOptions, IQueryOutput queryOutput)
Parameters
Type | Name | Description |
---|---|---|
IQueryOptions | queryOptions | Options governing which calculations are performed and how. |
IQueryOutput | queryOutput | Returns any information, in addition to the distributions, that is requested. For example the log-likelihood. |
Remarks
Each time this method is called the distributions 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 the Table.
Exceptions
Type | Condition |
---|---|
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. |
Events
QueryExecuted
The event that is fired when the BayesServer.Inference.IInference.Query method completes.
Declaration
[Obsolete("This event is deprecated. Use QueryLifecycle instead.")]
event EventHandler<QueryExecutedEventArgs> QueryExecuted
Event Type
Type | Description |
---|---|
System.EventHandler<QueryExecutedEventArgs> |
QueryExecuting
The event that is fired when the BayesServer.Inference.IInference.Query method begins.
Declaration
[Obsolete("This event is deprecated. Use QueryLifecycle instead.")]
event EventHandler<QueryExecutingEventArgs> QueryExecuting
Event Type
Type | Description |
---|---|
System.EventHandler<QueryExecutingEventArgs> |