/// <summary> /// Function call to update the learner model based on the current probabilities of the observed nodes. /// </summary> public void UpdateLearnerModel() { learnerModel = from similarAddition in similarAdditionDist from similarSubtraction in similarSubtractionDist from similar in ProbBase.BernoulliF(similarProb(similarAddition, similarSubtraction)) from equivalentAddition in equivalentAdditionDist from equivalentSubtraction in equivalentSubtractionDist from equivalent in ProbBase.BernoulliF(equivalentProb(equivalentAddition, equivalentSubtraction, similar)) from dissimilarAddition in dissimilarAdditionDist from dissimilarSubtraction in dissimilarSubtractionDist from dissimilar in ProbBase.BernoulliF(dissimilarProb(dissimilarAddition, dissimilarSubtraction, equivalent)) select new LearnerModel(similar, equivalent, dissimilar); Infer(LearnerModel.Node.Similar); Infer(LearnerModel.Node.Equivalent); Infer(LearnerModel.Node.Dissimilar); }
public static Prob GetProb(FiniteDist <bool> variable) { return(variable.ProbOf(e => e == true)); }
/// <summary> /// Function call to update the observed nodes for operations on dissimilar fractions with its respective rates. /// </summary> public void UpdateDissimilarProbability() { dissimilarAdditionDist = ProbBase.BernoulliF(ProbBase.Prob(fbDissimilarAddition)); dissimilarSubtractionDist = ProbBase.BernoulliF(ProbBase.Prob(fbDissimilarSubtraction)); }
/// <summary> /// Function call to update the observed nodes for operations on equivalent fractions with its respective rates. /// </summary> public void UpdateEquivalentProbability() { equivalentAdditionDist = ProbBase.BernoulliF(ProbBase.Prob(fbEquivalentAddition)); equivalentSubtractionDist = ProbBase.BernoulliF(ProbBase.Prob(fbEquivalentSubtraction)); }