NClassifier.Bayesian.BayesianClassifier.CalculateOverallProbability C# (CSharp) Méthode

CalculateOverallProbability() public méthode

public CalculateOverallProbability ( WordProbability wps ) : double
wps WordProbability
Résultat double
        public double CalculateOverallProbability(WordProbability[] wps)
        {
            if (wps == null || wps.Length == 0)
                return IClassifierConstants.NEUTRAL_PROBABILITY;

            // we need to calculate xy/(xy + z) where z = (1 - x)(1 - y)

            // first calculate z and xy
            double z = 0d;
            double xy = 0d;
            for (int i = 0; i < wps.Length; i++)
            {
                if (z == 0)
                    z = (1 - wps[i].Probability);
                else
                    z = z * (1 - wps[i].Probability);

                if (xy == 0)
                    xy = wps[i].Probability;
                else
                    xy = xy * wps[i].Probability;
            }

            double numerator = xy;
            double denominator = xy + z;

            return numerator / denominator;
        }

Usage Example

        public void TestCalculateOverallProbability()
        {
            var prob = 0.3d;
            var wp1 = new WordProbability("myWord1", prob);
            var wp2 = new WordProbability("myWord2", prob);
            var wp3 = new WordProbability("myWord3", prob);

            var wps = new[] { wp1, wp2, wp3 };
            var errorMargin = 0.0001d;

            var xy = (prob * prob * prob);
            var z = (1-prob)*(1-prob)*(1-prob);

            var result = xy/(xy + z);

            var classifier = new BayesianClassifier();

            Assert.AreEqual(result, classifier.CalculateOverallProbability(wps), errorMargin);
        }
All Usage Examples Of NClassifier.Bayesian.BayesianClassifier::CalculateOverallProbability