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>"; }
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; }