示例#1
0
        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
        }
示例#2
0
        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();
        }