Esempio n. 1
0
        private void WriteAccurancy2File(string fileName, double[] actual, double[] forecast)
        {
            StreamWriter writer;
            MeasureBUS measureBUS = new MeasureBUS();

            double Result = measureBUS.CorrectPredictRate(actual, forecast);

            writer = new StreamWriter(fileName);
            writer.WriteLine("Correct Predicted:\t" + Result.ToString() + "%");
            writer.Close();

            _resultShow += "<font color = \"blue\">Accuracy = " + Result.ToString() + "%</font><br>";
        }
Esempio n. 2
0
        private bool SubTestANN_DT(string strTrainFile)
        {
            string strModelFile = null;
            string strTestFile = null;

            int iPos = strTrainFile.LastIndexOf('_');
            strModelFile = strTrainFile.Remove(iPos + 1) + "model.txt";

            iPos = strTrainFile.LastIndexOf('.');
            strTestFile = strTrainFile.Remove(iPos) + "_subtest.txt";

            // Load model lên
            BackpropagationNetwork bpNetwork;
            Stream stream = File.Open(strModelFile, FileMode.Open);
            BinaryFormatter bformatter = new BinaryFormatter();
            bpNetwork = (BackpropagationNetwork)bformatter.Deserialize(stream);
            stream.Close();

            // Tạo tập mẫu để test
            TrainingSet testSet = new TrainingSet(strTestFile, bpNetwork.OutputLayer.NeuronCount);

            // Ma trận với dòng thứ 1 chứa các giá trị thực và dòng thứ 2 chứa các giá trị dự đoán.
            double[][] dblActual_Forecast = new double[2][];
            dblActual_Forecast[0] = new double[testSet.TrainingSampleCount];
            dblActual_Forecast[1] = new double[testSet.TrainingSampleCount];

            // Thực hiện test
            for (int i = 0; i < testSet.TrainingSampleCount; i++)
            {
                TrainingSample testSample = testSet[i];
                dblActual_Forecast[0][i] = ConverterBUS.Convert2Trend(testSample.OutputVector);

                double[] dblTemp = bpNetwork.Run(testSample.InputVector);
                dblActual_Forecast[1][i] = ConverterBUS.Convert2Trend(dblTemp);
            }

            MeasureBUS measureBus = new MeasureBUS();
            double Result = measureBus.CorrectPredictRate((double[])dblActual_Forecast[0], (double[])dblActual_Forecast[1]);
            if (_accDTANNBefore < Result)// lưu lại model tốt nhất
            {
                _accDTANNBefore = Result;
                return true;// Giữa lại bộ tham số
            }
            return false;
        }