public void PopulateDataGridView(string[][] System_testowy_sklasyfikowany, string[][] System_testowy, List <List <int> > Lista_klas) { Odleglosc o = new Odleglosc(); int Ostatnia_kolumna = System_testowy_sklasyfikowany[0].Length - 1; var Number_of_object = new Dictionary <int, int>(); var Accuracy = new Dictionary <int, double>(); var Coverage = new Dictionary <int, double>(); var Tpr = new Dictionary <int, double>(); var Slownik_predykcji = new Dictionary <int, Dictionary <int, int> >(); Number_of_object = o.F_Number_of_object(System_testowy); Accuracy = o.F_Accuracy(System_testowy_sklasyfikowany, System_testowy, Number_of_object, Podzial_na_klasy1); Coverage = o.F_Coverage(System_testowy_sklasyfikowany, System_testowy, Number_of_object, Podzial_na_klasy1); Tpr = o.F_Tpr(System_testowy, Lista_klas, System_testowy_sklasyfikowany, Podzial_na_klasy1); Slownik_predykcji = o.F_Slownik_predykcji(System_testowy_sklasyfikowany, System_testowy, Podzial_na_klasy1); Grid.Columns.Add("", ""); foreach (var kvp in Podzial_na_klasy1) { Grid.Columns.Add("klasadecyzyjna", Convert.ToString(System_testowy[Podzial_na_klasy1[kvp.Key][0]][Ostatnia_kolumna])); } Grid.Columns.Add("numerobiektow", "Number_of_object"); Grid.Columns.Add("skutecznosc", "Accuracy"); Grid.Columns.Add("pokrycie", "Coverage"); for (int i = 0; i < Lista_klas.Count; i++) { int value; double acc_value; double cov_value; var pre_value = new Dictionary <int, int>(); int value1; int value2; int key2; int key = Convert.ToInt16(System_testowy[Lista_klas[i][0]][Ostatnia_kolumna]); if (i == 0 && i < Lista_klas.Count - 1) { key2 = Convert.ToInt16(System_testowy[Lista_klas[i + 1][0]][Ostatnia_kolumna]); } else { key2 = Convert.ToInt16(System_testowy[Lista_klas[i - 1][0]][Ostatnia_kolumna]); } Accuracy.TryGetValue(key, out acc_value); Coverage.TryGetValue(key, out cov_value); Number_of_object.TryGetValue(key, out value); Slownik_predykcji.TryGetValue(key, out pre_value); pre_value.TryGetValue(key, out value1); pre_value.TryGetValue(key2, out value2); var Macierz_0_1 = new int[Lista_klas.Count]; Grid.Rows.Add(Convert.ToString(System_testowy[Lista_klas[i][0]][Ostatnia_kolumna]), value1, value2, value, acc_value, cov_value); } int zmienna = 0; var tab = new double[Tpr.Count]; foreach (var kvp in Tpr) { Tpr.TryGetValue(kvp.Key, out tab[zmienna]); zmienna++; } Grid.Rows.Add("True Positive Rate", tab[1], tab[0]); }
string[] F_klasyfikacja(string[] Obiekt_testowy, string[][] System_treningowy, string Metryka_string, int K) { Metryki m = new Metryki(); Odleglosc o = new Odleglosc(); var Obiekt_sklasyfikowany = new string[Obiekt_testowy.Length]; for (int i = 0; i < Obiekt_testowy.Length; i++) { Obiekt_sklasyfikowany[i] = Obiekt_testowy[i]; } int Ostatnia_kolumna = Obiekt_sklasyfikowany.Length - 1; switch (Metryka_string) { case "Euklidesa": var Slownik_po_metryce = new Dictionary <int, double>(); for (int i = 0; i < System_treningowy.Length; i++) { Slownik_po_metryce.Add(i, m.Metryka_Euklidesa(Obiekt_testowy, System_treningowy[i])); } string decyzja = o.F_najblizszy_obiekt(Slownik_po_metryce, K, System_treningowy); if (decyzja == "!") { Obiekt_sklasyfikowany[Ostatnia_kolumna] = "!"; } else { string[] obiekt = System_treningowy[Convert.ToInt16(decyzja)]; Obiekt_sklasyfikowany[Ostatnia_kolumna] = obiekt[Ostatnia_kolumna]; } break; case "Manhattan": var Slownik_po_metryce1 = new Dictionary <int, double>(); for (int i = 0; i < System_treningowy.Length; i++) { Slownik_po_metryce1.Add(i, m.Metryka_Manhattana(Obiekt_testowy, System_treningowy[i])); } string decyzja1 = o.F_najblizszy_obiekt(Slownik_po_metryce1, K, System_treningowy); if (decyzja1 == "!") { Obiekt_sklasyfikowany[Ostatnia_kolumna] = "!"; } else { string[] obiekt = System_treningowy[Convert.ToInt16(decyzja1)]; Obiekt_sklasyfikowany[Ostatnia_kolumna] = obiekt[Ostatnia_kolumna]; } break; case "Canberra": var Slownik_po_metryce2 = new Dictionary <int, double>(); for (int i = 0; i < System_treningowy.Length; i++) { Slownik_po_metryce2.Add(i, m.Metryka_Canberra(Obiekt_testowy, System_treningowy[i])); } string decyzja2 = o.F_najblizszy_obiekt(Slownik_po_metryce2, K, System_treningowy); if (decyzja2 == "!") { Obiekt_sklasyfikowany[Ostatnia_kolumna] = "!"; } else { string[] obiekt = System_treningowy[Convert.ToInt16(decyzja2)]; Obiekt_sklasyfikowany[Ostatnia_kolumna] = obiekt[Ostatnia_kolumna]; } break; case "Czebyszewa": var Slownik_po_metryce3 = new Dictionary <int, double>(); for (int i = 0; i < System_treningowy.Length; i++) { Slownik_po_metryce3.Add(i, m.Metryka_Czebyszewa(Obiekt_testowy, System_treningowy[i])); } string decyzja3 = o.F_najblizszy_obiekt(Slownik_po_metryce3, K, System_treningowy); if (decyzja3 == "!") { Obiekt_sklasyfikowany[Ostatnia_kolumna] = "!"; } else { string[] obiekt = System_treningowy[Convert.ToInt16(decyzja3)]; Obiekt_sklasyfikowany[Ostatnia_kolumna] = obiekt[Ostatnia_kolumna]; } break; case "Pearsona": var Slownik_po_metryce4 = new Dictionary <int, double>(); for (int i = 0; i < System_treningowy.Length; i++) { Slownik_po_metryce4.Add(i, m.Metryka_Czebyszewa(Obiekt_testowy, System_treningowy[i])); } string decyzja4 = o.F_najblizszy_obiekt(Slownik_po_metryce4, K, System_treningowy); if (decyzja4 == "!") { Obiekt_sklasyfikowany[Ostatnia_kolumna] = "!"; } else { string[] obiekt = System_treningowy[Convert.ToInt16(decyzja4)]; Obiekt_sklasyfikowany[Ostatnia_kolumna] = obiekt[Ostatnia_kolumna]; } break; } return(Obiekt_sklasyfikowany); }