/// <summary> /// Run this instance. /// </summary> public static void Run() { //Build Network _TestNetworkStructure = new Network(); BuildStructure(); _TestNetworkStructure.SaveToFile("test.dat"); _TestNetworkStructure.RandomiseWeights(1.1d); //PrepData Double[][] dataSet = StandardDeviationVariance.ProduceDataset("TestData/Mackey-Glass-Pure.csv").DataSet; //Prepare training activity _SlidingWindowTraining = new SlidingWindow(); _SlidingWindowTraining.SetTargetNetwork(_TestNetworkStructure); _SlidingWindowTraining.SetMomentum(0.5f); _SlidingWindowTraining.SetLearningRate(0.004f); _SlidingWindowTraining.SetDatasetReservedLength(120); _SlidingWindowTraining.SetDistanceToForcastHorrison(3); _SlidingWindowTraining.SetWindowWidth(12); _SlidingWindowTraining.SetMaximumEpochs(1000); _SlidingWindowTraining.SetInputNodes(_InputLayerNodes); _SlidingWindowTraining.SetOutputNodes(_OuputLayerNodes); _SlidingWindowTraining.SetWorkingDataset(dataSet); _SlidingWindowTraining.SetRecurrentConextLayers(new List<Base>()); Console.WriteLine("Starting Training"); _SlidingWindowTraining.Start(); Thread.Sleep(1000); while (_SlidingWindowTraining.IsRunning()) Thread.Sleep(20); Console.WriteLine("Complete Training"); Console.WriteLine("Starting Testing"); Activity.Testing.SlidingWindow slidingWindowTesting = new Activity.Testing.SlidingWindow(); slidingWindowTesting.SetDatasetReservedLength(0); slidingWindowTesting.SetInputNodes(_SlidingWindowTraining.GetTargetNetwork().GetDetectedBottomLayers()[0].GetNodes().ToList()); slidingWindowTesting.SetOutputNodes(_SlidingWindowTraining.GetTargetNetwork().GetDetectedTopLayers()[0].GetNodes().ToList()); slidingWindowTesting.SetRecurrentConextLayers(new List<Base>()); slidingWindowTesting.SetWorkingDataset(dataSet); slidingWindowTesting.SetWindowWidth(6); slidingWindowTesting.SetDistanceToForcastHorrison(3); slidingWindowTesting.SetTargetNetwork(_SlidingWindowTraining.GetTargetNetwork()); Activity.Testing.SlidingWindow.SlidingWindowTestResults result = (Activity.Testing.SlidingWindow.SlidingWindowTestResults) slidingWindowTesting.TestNetwork(); Console.WriteLine(result.Rmse); Functions.PrintArrayToFile(result.ActualOutputs, "ActualOutputs.csv"); Functions.PrintArrayToFile(result.ExpectedOutputs, "ExpectedOutputs.csv"); Console.WriteLine("Complete Testing"); Console.WriteLine("Comparing Against Random Walk 3 Step"); Console.WriteLine(Math.Round(RandomWalkCompare.CalculateError(result.ExpectedOutputs, result.ActualOutputs, 3)[0]*100, 3)); Console.WriteLine("Comparing Against Random Walk 2 Step"); Console.WriteLine(Math.Round(RandomWalkCompare.CalculateError(result.ExpectedOutputs, result.ActualOutputs, 2)[0]*100, 3)); Console.WriteLine("Comparing Against Random Walk 1 Step"); Console.WriteLine(Math.Round(RandomWalkCompare.CalculateError(result.ExpectedOutputs, result.ActualOutputs, 1)[0]*100, 3)); Console.ReadKey(); }