示例#1
0
        public ITextRender Report(ITextRender output = null)
        {
            if (output == null)
            {
                output = new builderForMarkdown();
            }

            var scores = items.Select(x => x.score);

            output.AppendHeading("Granularity");

            var   distinct = items.GetDistinctScores();
            Int32 dC       = distinct.Count();

            output.AppendPair("Distinct", dC);
            output.AppendPair("Entries", scores.Count());
            Double r = (Double)dC.GetRatio(scores.Count());

            output.AppendPair("Distinct / Entries", r);

            output.AppendHeading("Cumulative histogram");


            for (int i = 1; i < 11; i++)
            {
                Double l_min = (i - 1).GetRatio(10);
                Double l_max = i.GetRatio(10);
                var    bin   = scores.Where(x => (x > l_min) && (x < l_max));
                Double per   = bin.Count().GetRatio(scores.Count());
                output.AppendPair("Bin [" + i + "][" + l_max.ToString("F2") + "]", per.ToString("P2"));
            }

            output.AppendHeading("Descriptive statistics");

            DescriptiveStatistics desc = scores.GetStatistics(true);

            desc.Describe(output);



            output.AppendHeading("Document selection result");

            foreach (DocumentSelectResultEntry result in items)
            {
                output.AppendLine(result.score.ToString("F5") + "\t\t" + result.AssignedID);
            }

            output.AppendHorizontalLine();

            query.Describe(output);

            output.AppendHorizontalLine();

            return(output);
        }