private static void Modificator(ITypizedDecorArray <INode <double> > z, IList <double[]> inSample, IList <double> exactResult, int iterationCount) { var alg = new RegressionAlgorithm(z.A.Node, inSample, exactResult); alg.Run(iterationCount); z.A.Replace(alg.GetResult()); }
public void TwoVarsTreeOps() { var service = new SampleGenerator(2, 3, 0.001); var formula = service.GetFormula(); var noiseFormula = formula.Clone<INode>(); NoisyConstants(noiseFormula); var alg = new RegressionAlgorithm(noiseFormula, service.InSamples, service.ExactResult); alg.Run(); Assert.AreNotEqual(alg.GetResult(), null); }
static void Main() { var generator = new SampleGenerator(2, 6, 0.001); var randomFormula = generator.GetFormula(); Console.WriteLine(String.Format("Formula before noise constants: {0}", randomFormula)); NoisyConstants(randomFormula); Console.WriteLine(String.Format("Formula after: {0}", randomFormula)); var alg = new RegressionAlgorithm(randomFormula, generator.InSamples, generator.ExactResult); Console.WriteLine("Press any key to start regression..."); Console.ReadKey(); ConsoleGui.Run(alg, 5, "", 1000, 2); Console.WriteLine("Result: " + alg.GetResult()); Console.ReadKey(); }
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); } }
public static void Run(RegressionAlgorithm alg, int iterationShowRate, String formula, int iterationCount = 1000, int iterationCursorPosition = 2) { Console.SetCursorPosition(0, iterationCursorPosition); Console.WriteLine("Functional: " + alg.Formula); for (var cnt = 0; ; cnt++) { alg.MakeIteration(); if (cnt % iterationShowRate != 0) continue; Console.SetCursorPosition(0, iterationCursorPosition+2); Console.WriteLine("Iteration #: " + alg.CurrentIteration); Console.WriteLine("Constant set: " + "[" + string.Join(" ; ", alg.InConstant) + "]"); Console.WriteLine("ApproximationError: " + alg.ApproximationError); if (alg.CurrentIteration > iterationCount) break; } }
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()); }
private static void Modificator(ITypizedDecorArray<INode<double>> z, IList<double[]> inSample, IList<double> exactResult, int iterationCount) { var alg = new RegressionAlgorithm(z.A.Node, inSample, exactResult); alg.Run(iterationCount); z.A.Replace(alg.GetResult()); }