Beispiel #1
0
        internal static List<AbsoluteEffectivenessEstimate> GetSortedMeanAbsolutes(
            Dictionary<string, Dictionary<string, AbsoluteEffectivenessEstimate>> sqAbss,
            IConfidenceEstimator confEstimator)
        {
            // Compute means
            List<AbsoluteEffectivenessEstimate> absSorted = new List<AbsoluteEffectivenessEstimate>();
            foreach (var sqAbsEst in sqAbss) {
                double e = sqAbsEst.Value.Sum(qAbsEst => qAbsEst.Value.Expectation);
                double var = sqAbsEst.Value.Sum(qAbsEst => qAbsEst.Value.Variance);
                e /= sqAbsEst.Value.Count;
                var /= sqAbsEst.Value.Count * sqAbsEst.Value.Count;
                Estimate est = new Estimate(e, var);

                absSorted.Add(new AbsoluteEffectivenessEstimate(sqAbsEst.Key, "[all]",
                    e, var,
                    confEstimator.EstimateInterval(est), confEstimator.EstimateAbsoluteConfidence(est)));
            }
            // and sort
            absSorted = absSorted.OrderByDescending(est => est.Expectation).ToList();
            return absSorted;
        }
Beispiel #2
0
        public AbsoluteEffectivenessEstimate Estimate(Run run, IRelevanceEstimator relEstimator, IConfidenceEstimator confEstimator)
        {
            double e = 0, var = 0;

            // Traverse docs retrieved
            foreach (string doc in run.Documents) {
                RelevanceEstimate docEst = relEstimator.Estimate(run.Query, doc);
                e += docEst.Expectation;
                var += docEst.Variance;
            }
            // Compute average
            e /= run.Documents.Count();
            var /= run.Documents.Count() * run.Documents.Count();
            // Normalize between 0 and 1
            e /= this.MaxRelevance;
            var /= this.MaxRelevance * this.MaxRelevance;

            Estimate est = new Estimate(e, var);

            return new AbsoluteEffectivenessEstimate(run.System, run.Query,
                e, var,
                confEstimator.EstimateInterval(est), confEstimator.EstimateAbsoluteConfidence(est));
        }
Beispiel #3
0
        internal static List <AbsoluteEffectivenessEstimate> GetSortedMeanAbsolutes(
            Dictionary <string, Dictionary <string, AbsoluteEffectivenessEstimate> > sqAbss,
            IConfidenceEstimator confEstimator)
        {
            // Compute means
            List <AbsoluteEffectivenessEstimate> absSorted = new List <AbsoluteEffectivenessEstimate>();

            foreach (var sqAbsEst in sqAbss)
            {
                double e   = sqAbsEst.Value.Sum(qAbsEst => qAbsEst.Value.Expectation);
                double var = sqAbsEst.Value.Sum(qAbsEst => qAbsEst.Value.Variance);
                e   /= sqAbsEst.Value.Count;
                var /= sqAbsEst.Value.Count * sqAbsEst.Value.Count;
                Estimate est = new Estimate(e, var);

                absSorted.Add(new AbsoluteEffectivenessEstimate(sqAbsEst.Key, "[all]",
                                                                e, var,
                                                                confEstimator.EstimateInterval(est), confEstimator.EstimateAbsoluteConfidence(est)));
            }
            // and sort
            absSorted = absSorted.OrderByDescending(est => est.Expectation).ToList();
            return(absSorted);
        }
Beispiel #4
0
        public AbsoluteEffectivenessEstimate Estimate(Run run, IRelevanceEstimator relEstimator, IConfidenceEstimator confEstimator)
        {
            double e = 0, var = 0;

            // Traverse docs retrieved
            foreach (string doc in run.Documents)
            {
                RelevanceEstimate docEst = relEstimator.Estimate(run.Query, doc);
                e   += docEst.Expectation;
                var += docEst.Variance;
            }
            // Compute average
            e   /= run.Documents.Count();
            var /= run.Documents.Count() * run.Documents.Count();
            // Normalize between 0 and 1
            e   /= this.MaxRelevance;
            var /= this.MaxRelevance * this.MaxRelevance;

            Estimate est = new Estimate(e, var);

            return(new AbsoluteEffectivenessEstimate(run.System, run.Query,
                                                     e, var,
                                                     confEstimator.EstimateInterval(est), confEstimator.EstimateAbsoluteConfidence(est)));
        }