void FileTest(msbk57dlbe app) { string[] testData = File.ReadAllLines(@"tests.txt"); int TP = 0, TN = 0, FP = 0, FN = 0; int goodPrediction = 0, wrongPrediction = 0; foreach (string line in testData) { List <float> values = line.Split(';').Select(x => float.Parse(x, CultureInfo.InvariantCulture.NumberFormat)).ToList(); float pred = app.Prediction(values); if (Math.Round(pred) != values[values.Count - 1]) { Console.WriteLine("--- " + pred + "\t" + line); wrongPrediction++; if (pred == 1) { FP++; } else { FN++; } } else { Console.WriteLine("+++ " + pred + "\t" + line); goodPrediction++; if (Math.Round(pred) == 1) { TP++; } else { TN++; } } } float accuracy = (float)(TP + TN) / (TP + FP + TN + FN); float precision = (float)TP / (TP + FP); float sensitivity = (float)TP / (TP + FN); float F1 = 2 * (precision * sensitivity) / (precision + sensitivity); Console.WriteLine(String.Format("True positive:\t{0}\nTrue negative:\t{1}\nFalse positive:\t{2}\nFalse negative:\t{3}", TP, TN, FP, FN)); Console.WriteLine(String.Format("Accuracy:\t{0}\nPrecision:\t{1}\nSensitivity:\t{2}\nF1 score:\t{3}", accuracy, precision, sensitivity, F1)); Console.WriteLine(String.Format("Good prediction:{0} ({1}%)", goodPrediction, 100f * goodPrediction / testData.Count())); Console.WriteLine(String.Format("Wrong prediction:{0} ({1}%)", wrongPrediction, 100f * wrongPrediction / testData.Count())); }
static void Main(string[] args) { DataSet.LoadMinMax(@"trains.txt"); //DataSet.GetTruePercents(@"trains.txt", DataSet.BinaryStartingIndex); DataSet trainDS = new DataSet(@"trains.txt"); DataSet testDS = new DataSet(@"tests.txt"); msbk57dlbe app = new msbk57dlbe(); app.Train(trainDS); app.Save(@"DeepNetworkTest2.model"); //msbk57dlbe app = new msbk57dlbe(@"DeepNetworkTest.model"); //vagy DeepNetwork.model Console.WriteLine("Eval train:" + app.Evaluate(trainDS)); Console.WriteLine("Eval test:" + app.Evaluate(testDS)); new Program().FileTest(app); Console.ReadKey(); }