public override EvaluationResults EvaluateModelOnData(Converter <Leaf, SufficientStatistics> predMap, Converter <Leaf, SufficientStatistics> targMap) { int predCount = ModelScorer.PhyloTree.CountOfNonMissingLeaves(predMap); int targCount = ModelScorer.PhyloTree.CountOfNonMissingLeaves(targMap); int globalNonMissingCount = ModelScorer.PhyloTree.CountOfNonMissingLeaves(predMap, targMap); MessageInitializerGaussian nullMessageInitializer = MessageInitializerGaussian.GetInstance( predMap, targMap, (DistributionGaussianConditional)NullDistns[0], ModelScorer.PhyloTree.LeafCollection); Score nullScore = ModelScorer.MaximizeLikelihood(nullMessageInitializer); MessageInitializerGaussian altMessageInitializer = MessageInitializerGaussian.GetInstance( predMap, targMap, (DistributionGaussianConditional)AltDistn, ModelScorer.PhyloTree.LeafCollection); Score altScore = ModelScorer.MaximizeLikelihood(altMessageInitializer); EvaluationResults evalResults = EvaluationResultsGaussian.GetInstance(this, nullScore, altScore, predCount, targCount, globalNonMissingCount, ChiSquareDegreesOfFreedom); return(evalResults); }
public override EvaluationResults EvaluateModelOnDataGivenParams(Converter <Leaf, SufficientStatistics> predMap, Converter <Leaf, SufficientStatistics> targMap, EvaluationResults previousResults) { int predCount = ModelScorer.PhyloTree.CountOfNonMissingLeaves(predMap); int targCount = ModelScorer.PhyloTree.CountOfNonMissingLeaves(targMap); int globalNonMissingCount = ModelScorer.PhyloTree.CountOfNonMissingLeaves(predMap, targMap); MessageInitializerGaussian nullMessageInitializer = MessageInitializerGaussian.GetInstance( predMap, targMap, (DistributionGaussianConditional)NullDistns[0], ModelScorer.PhyloTree.LeafCollection); double nullLL = ModelScorer.ComputeLogLikelihoodModelGivenData(nullMessageInitializer, previousResults.NullScores[0].OptimizationParameters); Score nullScore = Score.GetInstance(nullLL, previousResults.NullScores[0].OptimizationParameters, previousResults.NullScores[0].Distribution); MessageInitializerGaussian altMessageInitializer = MessageInitializerGaussian.GetInstance( predMap, targMap, (DistributionGaussianConditional)AltDistn, ModelScorer.PhyloTree.LeafCollection); double altLL = ModelScorer.ComputeLogLikelihoodModelGivenData(altMessageInitializer, previousResults.AltScore.OptimizationParameters); Score altScore = Score.GetInstance(altLL, previousResults.AltScore.OptimizationParameters, previousResults.AltScore.Distribution); EvaluationResults evalResults = EvaluationResultsGaussian.GetInstance(this, nullScore, altScore, predCount, targCount, globalNonMissingCount, ChiSquareDegreesOfFreedom); return(evalResults); }