Пример #1
0
        public void TwoVarsTreeOps()
        {
            var service      = new SampleGenerator.SampleGenerator(2, 3, 0.001);
            var formula      = service.GetFormula();
            var noiseFormula = formula.Clone <INode>();

            NoisyConstants(noiseFormula);
            var algorithm = new RegressionAlgorithm(noiseFormula, service.InSamples, service.ExactResult);

            algorithm.Run();
            Assert.AreNotEqual(null, algorithm.GetResult());
        }
Пример #2
0
        public static void Run(RegressionAlgorithm regressionAlgorithm, int iterationShowRate, String formula, int iterationCount = 1000, int iterationCursorPosition = 2)
        {
            Console.SetCursorPosition(0, iterationCursorPosition);
            Console.WriteLine("Functional: {0}", regressionAlgorithm.Formula);

            for (var count = 0; regressionAlgorithm.CurrentIteration < iterationCount; count++)
            {
                regressionAlgorithm.MakeIteration();
                if (count % iterationShowRate != 0)
                {
                    continue;
                }

                Console.SetCursorPosition(0, iterationCursorPosition + 2);
                Console.WriteLine("Iteration #:\t{0}", regressionAlgorithm.CurrentIteration);
                Console.WriteLine("Constant set:\t[{0}]", string.Join(" ; ", regressionAlgorithm.InConstant));
                Console.WriteLine("ApproximationError:\t{0}", regressionAlgorithm.ApproximationError);
            }
        }
Пример #3
0
        static void Main()
        {
            var sampleGenerator = new SampleGenerator(2, 6, 0.001);
            var randomFormula   = sampleGenerator.GetFormula();

            Console.WriteLine("Formula before making constants noisy: {0}", randomFormula);

            GenerateNoisyConstantsForNodeLeafes(randomFormula);
            Console.WriteLine("Formula after making constants noisy: {0}", randomFormula);

            Console.WriteLine("Press any key to start regression...");
            Console.ReadKey(true);

            var alg = new RegressionAlgorithm(randomFormula, sampleGenerator.InSamples, sampleGenerator.ExactResult);

            ConsoleGui.Run(alg, 5, "");

            Console.WriteLine("Result: {0}", alg.GetResult());
        }