예제 #1
0
        internal static VowpalWabbitStdErrPerformanceStatistics ReadPerformanceStatistics(string filename)
        {
            var lines = File.ReadAllLines(filename);

            var numExamples = FindULongEntry(lines, "number of examples per pass = "******"number of examples = ");
            }

            var stats = new VowpalWabbitStdErrPerformanceStatistics()
            {
                NumberOfExamplesPerPass = numExamples,
                TotalNumberOfFeatures   = FindULongEntry(lines, "total feature number = "),
                AverageLoss             = FindAverageLossEntry(lines),
                BestConstant            = FindDoubleEntry(lines, "best constant = "),
                BestConstantLoss        = FindDoubleEntry(lines, "best constant's loss = "),
                WeightedExampleSum      = FindDoubleEntry(lines, "weighted example sum = "),
                WeightedLabelSum        = FindDoubleEntry(lines, "weighted label sum = ")
            };

            return(stats);
        }
예제 #2
0
        internal static void AssertEqual(VowpalWabbitStdErrPerformanceStatistics expected, VowpalWabbitPerformanceStatistics actual)
        {
            if (expected.TotalNumberOfFeatures != actual.TotalNumberOfFeatures)
            {
                Console.Error.WriteLine(
                    "Warning: total number of features differs. Expected: {0} vs. actual: {1}",
                    expected.TotalNumberOfFeatures,
                    actual.TotalNumberOfFeatures);
            }

            if (expected.NumberOfExamplesPerPass != null)
            {
                Assert.AreEqual(expected.NumberOfExamplesPerPass, actual.NumberOfExamplesPerPass, "NumberOfExamplesPerPass");
            }

            FuzzyEqual(expected.AverageLoss, actual.AverageLoss, 1e-3, "AverageLoss");
            FuzzyEqual(expected.BestConstant, actual.BestConstant, 1e-3, "BestConstant");
            // TODO: something weir'd is happening here. BestConstantsLoss is 0 if using RunAll
            // has the proper value if just the unit test is run
            //Console.WriteLine(expected.BestConstantLoss + " vs. " + actual.BestConstantLoss);
            //Assert.AreEqual(expected.BestConstantLoss, actual.BestConstantLoss, 1e-5);
            FuzzyEqual(expected.WeightedExampleSum, actual.WeightedExampleSum, 1e-3, "WeightedExampleSum");
            FuzzyEqual(expected.WeightedLabelSum, actual.WeightedLabelSum, 1e-3, "WeightedLabelSum");
        }