Example #1
0
        public void TestPredictionWindowSize()
        {
            using (StreamWriter sw = new StreamWriter(@"E:\repos\RBFNetwork\windowSize.txt"))
            {
                for (int i = 10; i <= 10; i++)
                {
                    var    data         = GetTemperatureDataAsync(95, i).Result;
                    int    accuracy     = 0;
                    var    topology     = new Topology(data.trainData.ClassesNames?.Count ?? 1, 0.01, data.trainData.ColumnCount);
                    var    network      = new RBFNeuralNetwork(topology);
                    double error        = network.Train(data.trainData, 100, false);
                    double predictError = 0;
                    foreach (Record record in data.testData.Records)
                    {
                        var expected = record.Expected[0];
                        var output   = network.Predict(record.InputData)[0];
                        var diff     = expected - output;
                        predictError += diff * diff;

                        if ((expected * data.inputsSum - output * data.inputsSum) <= 2)
                        {
                            accuracy++;
                        }
                    }
                    predictError = Math.Sqrt(predictError / (data.testData.RowCount - 1));
                    Trace.WriteLine($"Current accuracy: {accuracy} of {data.testData.Records.Count} = {accuracy * 100 / data.testData.Records.Count}%");
                    var predicted = accuracy * 100 / data.testData.RowCount;
                    sw.WriteLine($"{i}   {predictError}   {predicted}");
                }
            }
        }
Example #2
0
        public NeuralNetworkModel(Dataset dataset, Dataset testSet)
        {
            for (int i = 0; i < dataset.RowCount; i++)
            {
                trainDataset.Records.Add(dataset.Records[i]);
            }

            for (int i = 0; i < testSet.RowCount; i++)
            {
                testDataset.Records.Add(testSet.Records[i]);
            }

            // Топология
            var topology = new Topology(trainDataset.ClassesNames?.Count ?? 1, 0.01, trainDataset.ColumnCount);

            neuralNetwork = new RBFNeuralNetwork(topology);
        }