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()); }
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); } }
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()); }