public void WriteData(double[] input, BayesianLearning teacher)
 {
     double[] writeOutput = teacher.network.Compute(input);
     using (StreamWriter writetext = new StreamWriter("log.txt", append: true))
     {
         for (int i = 0; i < writeOutput.Length; i++)
         {
             writetext.WriteLine(input[i] + " " + writeOutput[i]);
         }
     }
 }
        private void Learn()
        {
            int samples = data.GetLength(0);

            double[][] input  = new double[samples][];
            double[][] output = new double[samples][];

            for (int i = 0; i < samples; i++)
            {
                input[i]     = new double[1];
                output[i]    = new double[1];
                input[i][0]  = (data[i, 0]);
                output[i][0] = (data[i, 1]);
            }

            ActivationNetwork network = new ActivationNetwork(
                new BipolarSigmoidFunction(sigmoidAlphaValue),
                1, neuronsInFirstLayer, 1);
            BayesianLearning teacher = new BayesianLearning(network);

            teacher.LearningRate = learningRate;

            int iteration = 1;

            while (!needToStop)
            {
                double error = teacher.RunEpoch(input, output) / samples;
                Console.WriteLine("The avg error is: " + error);
                iteration++;

                //Mikor álljunk meg? Ha az iterációk száma eléri a megadottat, vagy a hiba kisebb mint valami
                if ((iterations != 0) && (iteration > iterations) || error < 1)
                {
                    for (int i = 0, n = input.Length; i < n; i++)
                    {
                        WriteData(input[i], teacher);
                    }
                    break;
                }
            }

            LoadTestData();



            for (int i = 0; i < 30; i++)
            {
                double[] test = teacher.network.Compute(testingData[i]);
            }
        }