Accord.Tests.MachineLearning.MulticlassSupportVectorMachineTest.multiclass_new_usage_method_polynomial C# (CSharp) Méthode

multiclass_new_usage_method_polynomial() private méthode

private multiclass_new_usage_method_polynomial ( ) : void
Résultat void
        public void multiclass_new_usage_method_polynomial()
        {
            double[][] inputs =
            {
                new double[] { 1, 4, 2, 0, 1 },
                new double[] { 1, 3, 2, 0, 1 },
                new double[] { 3, 0, 1, 1, 1 },
                new double[] { 3, 0, 1, 0, 1 },
                new double[] { 0, 5, 5, 5, 5 },
                new double[] { 1, 5, 5, 5, 5 },
                new double[] { 1, 0, 0, 0, 0 },
                new double[] { 1, 0, 0, 0, 0 },
            };

            int[] outputs =
            {
                0, 0,
                1, 1,
                2, 2,
                3, 3,
            };

            var learner = new MulticlassSupportVectorLearning<Polynomial>()
            {
                Learner = (p) => new SequentialMinimalOptimization<Polynomial>()
                {
                    Model = p.Model,
                    Complexity = 1,
                    Kernel = new Polynomial(2)
                }
            };

            learner.ParallelOptions.MaxDegreeOfParallelism = 1;

            MulticlassSupportVectorMachine<Polynomial> msvm = learner.Learn(inputs, outputs);

            Assert.AreEqual(0, msvm.GetLastKernelEvaluations());

            int[] evals = { 8, 8, 7, 7, 7, 7, 6, 6 };

            for (int i = 0; i < inputs.Length; i++)
            {
                double expected = outputs[i];
                msvm.Method = MulticlassComputeMethod.Elimination;
                double actual = msvm.Decide(inputs[i]);
                Assert.AreEqual(expected, actual);
                Assert.AreEqual(evals[i], msvm.GetLastKernelEvaluations());
            }

            for (int i = 0; i < inputs.Length; i++)
            {
                double expected = outputs[i];
                msvm.Method = MulticlassComputeMethod.Voting;
                double actual = msvm.Decide(inputs[i]);
                Assert.AreEqual(expected, actual);
                Assert.AreEqual(8, msvm.GetLastKernelEvaluations());
            }
        }