コード例 #1
0
        public void TestDomainDimensionSanity()
        {
            using (var eventStream = new RealValueFileEventStream(Tests.GetFullPath(@"/opennlp/data/maxent/real-valued-weights-training-data.txt"), Encoding.UTF8)) {
                var di = new OnePassRealValueDataIndexer(eventStream, 1);

                di.Execute();

                var func = new NegLogLikelihood(di);

                var correctDomainDimension = di.GetPredLabels().Length *di.GetOutcomeLabels().Length;

                Assert.AreEqual(correctDomainDimension, func.Dimension);
            }
        }
コード例 #2
0
        public void TestValueAtNonInitialPoint02()
        {
            using (var eventStream = new RealValueFileEventStream(Tests.GetFullPath(@"/opennlp/data/maxent/real-valued-weights-training-data.txt"), Encoding.UTF8)) {
                var di = new OnePassRealValueDataIndexer(eventStream, 1);

                di.Execute();

                var func = new NegLogLikelihood(di);

                var nonInitialPoint = new double[] { 3, 2, 3, 2, 3, 2, 3, 2, 3, 2 };
                var value           = func.ValueAt(DealignDoubleArrayForTestData(nonInitialPoint,
                                                                                 di.GetPredLabels(),
                                                                                 di.GetOutcomeLabels()));
                const double expectedValue = 53.163219721099026;

                Assert.AreEqual(expectedValue, value, Tolerance2);
            }
        }
コード例 #3
0
        public void TestGradientAtInitialPoint()
        {
            using (var eventStream = new RealValueFileEventStream(Tests.GetFullPath(@"/opennlp/data/maxent/real-valued-weights-training-data.txt"), Encoding.UTF8)) {
                var di = new OnePassRealValueDataIndexer(eventStream, 1);

                di.Execute();

                var func = new NegLogLikelihood(di);

                var nonInitialPoint           = new[] { 0.2, 0.5, 0.2, 0.5, 0.2, 0.5, 0.2, 0.5, 0.2, 0.5 };
                var gradientAtNonInitialPoint = func.GradientAt(DealignDoubleArrayForTestData(nonInitialPoint, di.GetPredLabels(), di.GetOutcomeLabels()));
                var expectedGradient          =
                    new[] { -12.755042847945553, -21.227127506102434,
                            -72.57790706276435, 38.03525795198456,
                            15.348650889354925, 12.755042847945557,
                            21.22712750610244, 72.57790706276438,
                            -38.03525795198456, -15.348650889354925 };

                Assert.True(CompareDoubleArray(expectedGradient, gradientAtNonInitialPoint, di, Tolerance1));
            }
        }