public void scoreModel(DAO.FileDAO fileDAO, NeuralNetwork network) { int pogodak = 0; for (int i = 0; i < fileDAO.XTest.Count; ++i) { List <Double> prediction = network.predict(fileDAO.XTest[i]); double alive = 0; if (prediction[0] > 0.5) { alive = 1; } Console.WriteLine("Real result:{0}, Predicted result {1}", fileDAO.YTest[i][0], prediction[0]); if (alive == fileDAO.YTest[i][0]) { ++pogodak; } } Console.Write("Pogodjeno {0} od {1} ", pogodak, fileDAO.YTest.Count); Console.Write("Tacnost {0} %", pogodak * 100 / fileDAO.YTest.Count); Console.ReadLine(); }
/// <summary> /// /// Metoda koja daje broj pogodjenih predikcija, /// koja zavisi od algoritma odredjivanja da li je nesto /// bio ili nije bio pogodak. /// /// </summary> /// <param name="fileDAO"></param> /// <param name="network"></param> /// <returns></returns> public int giveMeNumberOfHits(DAO.FileDAO fileDAO, NeuralNetwork network) { int hit = 0; for (int i = 0; i < fileDAO.XTest.Count; ++i) { List <Double> prediction = network.predict(fileDAO.XTest[i]); double live = 0; if (prediction[0] > 0.5) { live = 1; } if (fileDAO.YTest[i][0] == live) { ++hit; } Console.WriteLine("Real result:{0}, Predicted result {1}", fileDAO.YTest[i][0], prediction[0]); } return(hit); }
public void giveMeScore(DAO.FileDAO fileDAO, NeuralNetwork network) { Prediction prediction = new Prediction(); int brojPogodaka = prediction.giveMeNumberOfHits(fileDAO, network); writeScore(fileDAO, brojPogodaka); }
/// <summary> /// /// Metoda koja daje broj pogodjenih predikcija, /// koja zavisi od algoritma odredjivanja da li je nesto /// bio ili nije bio pogodak. /// /// U ovom zadatku je algoritam preko tp,tn,fp,fn. /// /// </summary> /// <param name="fileDAO"></param> /// <param name="network"></param> /// <returns></returns> public void givePredicton(DAO.FileDAO fileDAO, NeuralNetwork network) { double TP = 0.0; double TN = 0.0; double FP = 0.0; double FN = 0.0; for (int i = 0; i < fileDAO.XTest.Count; ++i) { List <Double> prediction = network.predict(fileDAO.XTest[i]); Console.WriteLine("Real result:{0}, Predicted result {1}", fileDAO.YTest[i][0], prediction[0]); if (prediction[0] > 0.5 && fileDAO.YTest[i][0] == 1) { TP += 1.0; } if (prediction[0] < 0.5 && fileDAO.YTest[i][0] == 0) { TN += 1.0; } if (prediction[0] > 0.5 && fileDAO.YTest[i][0] == 0) { FP += 1.0; } if (prediction[0] < 0.5 && fileDAO.YTest[i][0] == 1) { FN += 1.0; } } double precision = TP / (TP + FP); double recall = TP / (TP + FN); double FL_score = (precision * recall) / (precision + recall); Console.WriteLine("precision: " + precision); Console.WriteLine("recal: " + recall); Console.WriteLine("FL score: " + FL_score); Console.ReadLine(); }
/// <summary> /// Metoda koja sluzi samo za ispis skora /// </summary> /// <param name="fileDAO"></param> /// <param name="brojPogodaka"></param> private static void writeScore(DAO.FileDAO fileDAO, int brojPogodaka) { // Console.Write("Pogodjeno {0} od {1} ", pogodak, fileDAO.YTest.Count); Console.Write("Score {0} %", brojPogodaka * 100 / fileDAO.YTest.Count); Console.ReadLine(); }
public void giveMeScore(DAO.FileDAO fileDAO, NeuralNetwork network) { Prediction prediction = new Prediction(); prediction.givePredicton(fileDAO, network); }