static private void KNN(string[] klasy_testowe, string[] klasy_treningowe, int typ, SystemDecyzyjny system_treningowy, SystemDecyzyjny system_testowy, int KNN) { //wykonanie z któryś metryk if (typ == 1) //Euklides { system_testowy.Wykonanie_metryki(klasy_testowe, klasy_treningowe, system_treningowy, KNN, system_treningowy.Euklides); } if (typ == 2)//Canabera { system_testowy.Wykonanie_metryki(klasy_testowe, klasy_treningowe, system_treningowy, KNN, system_treningowy.Canaber); } if (typ == 3)//Czebyszew { system_testowy.Wykonanie_metryki(klasy_testowe, klasy_treningowe, system_treningowy, KNN, system_treningowy.Czybyszew); } if (typ == 4)//Manhattan { system_testowy.Wykonanie_metryki(klasy_testowe, klasy_treningowe, system_treningowy, KNN, system_treningowy.Manhattan); } //wypisywanie macierzy predykacji Console.WriteLine(); Console.Write(" " + klasy_treningowe[0] + " "); // 2 Console.Write(klasy_treningowe[1] + " "); // 4 Console.Write("No. of obj "); Console.Write("Accuracy "); Console.WriteLine("Coverage "); Console.Write(" " + klasy_treningowe[0]); //2 Console.Write(" " + system_testowy.Macierz_predykcji[0, 0].ToString() + " "); //prawidłowo skwalifikowane 2 Console.Write(system_testowy.Macierz_predykcji[0, 1].ToString() + " "); //4 skwalifikowane jako 2 Console.Write(system_testowy.Macierz_predykcji[0, 2].ToString() + " "); //ilość 2 w systemie testowym Console.Write(system_testowy.Acc0.ToString() + " "); //skuteczność skwalifikowania 2 Console.WriteLine(system_testowy.Cov0.ToString()); //skuteczność chwycenia 2 Console.Write(" " + klasy_treningowe[1]); //4 Console.Write(" " + system_testowy.Macierz_predykcji[1, 0].ToString() + " "); //2 skwalifiokowano jako 4 Console.Write(system_testowy.Macierz_predykcji[1, 1].ToString() + " "); //prawidłowo skwalifikowanie 4 Console.Write(system_testowy.Macierz_predykcji[1, 2].ToString() + " "); //ilość 4 w systemie testowym Console.Write(system_testowy.Acc1.ToString() + " "); //skuteczność skwalifikowania 4 Console.WriteLine(system_testowy.Cov1.ToString()); //skuteczność chycenia 4 Console.Write("TPR"); Console.Write(" " + system_testowy.Macierz_predykcji[2, 0].ToString() + " "); //stosunek skwalifkowanych prawidłowo 2 do skalifikowanych 2 Console.WriteLine(system_testowy.Macierz_predykcji[2, 1].ToString()); ////stosunek skwalifkowanych prawidłowo 4 do skalifikowanych 4 }
static void Main(string[] args) { string sciezkaDoSystemuTestowego = @"SystemTestowy.txt"; string sciezkaDoSystemuTreningowego = @"SystemTreningowy.txt"; SystemDecyzyjny systemTreningowy = new SystemDecyzyjny(sciezkaDoSystemuTreningowego); SystemDecyzyjny systemTestowy = new SystemDecyzyjny(sciezkaDoSystemuTestowego); Console.WriteLine("System testowy"); Console.Write(systemTestowy); Console.WriteLine(""); Console.WriteLine("System treningowy"); Console.Write(systemTreningowy); Console.WriteLine(""); string liczba; // Przykład konwertowania string do double liczba = "1.4"; double dliczba = StringToDouble(liczba); // Przykład konwertowania string do int liczba = "1"; int iLiczba = StringToInt(liczba); /****************** Miejsce na rozwiązanie *********************************/ int k, metryka; while (true) //wybór wartości k { try { Console.WriteLine("Podaj k od 1 do " + systemTreningowy.Minimalna_liczebnosc_klas()); k = int.Parse(Console.ReadLine()); if (k < 1 || k > systemTreningowy.Minimalna_liczebnosc_klas()) { throw new Exception("Wybierz liczbę od 1 do " + systemTreningowy.Minimalna_liczebnosc_klas() + " !"); } break; } catch (Exception) { Console.WriteLine("Wybierz liczbę od 1 do " + systemTreningowy.Minimalna_liczebnosc_klas() + " !"); } } Console.WriteLine(); while (true) //wybór metryki { try { Console.WriteLine("Metryka"); Console.WriteLine("1 Euklides"); Console.WriteLine("2 Canabera"); Console.WriteLine("3 Czebyszew"); Console.WriteLine("4 Manhattan"); metryka = int.Parse(Console.ReadLine()); if (metryka < 1 || metryka > 4) { throw new Exception("Wybierz liczbę od 1 do 4!"); } break; } catch (Exception) { Console.WriteLine("Wybierz liczbę od 1 do 4!"); } } KNN(systemTestowy.Unikalne_decyzje(), systemTreningowy.Unikalne_decyzje(), metryka, systemTreningowy, systemTestowy, k); //wykonywanie obliczeń w k w określonej metryce /****************** Koniec miejsca na rozwiązanie ********************************/ Console.ReadKey(); }