示例#1
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);
        }
示例#2
0
        private void btnStart_Click(object sender, EventArgs e)
        {
            // Tablica z wczytanymi danymi dostępna poniżej
            // this.systemTestowy;

            // Tablica z typami atrybutów
            // this.systemTreningowy;

            /****************** Miejsce na rozwiązanie *********************************/

            int     numer = 0;
            Metryki m     = new Metryki();
            string  dec;

            Dictionary <ObiektDecyzyjny, string> klasyf = new Dictionary <ObiektDecyzyjny, string>();

            Metryka m1;

            switch (comboBox1.Text)
            {
            case "Czebyszewa":
            {
                m1 = m.czebaszewa;
                wynik.Clear();
            }
            break;

            case "Euklidesa":
            {
                m1 = m.eklidesowa;
                wynik.Clear();
            }
            break;

            case "Manhattan":
            {
                m1 = m.manhattan;
                wynik.Clear();
            }
            break;

            case "Canberra":
            {
                m1 = m.canberra;
                wynik.Clear();
            }
            break;

            case "Pearsona":
            {
                m1 = m.pearsona;
                wynik.Clear();
            }
            break;

            default:
                m1 = m.eklidesowa;
                break;
            }


            int num;

            num = Convert.ToUInt16(numericUpDown1.Value);
            foreach (var ob in systemTestowy)
            {
                ObiektDecyzyjny obiekt = new ObiektDecyzyjny();
                obiekt = utwurzObiekt(ob, numer);
                dec    = klasyfikuj(obiekt.deskryptory, systemTreningowy, num, m1);
                klasyf.Add(obiekt, dec);
                wyswietlKlasyfikacje(numer, dec, ob);
                numer++;
            }

            wyswietl(klasyf);



            /****************** Koniec miejsca na rozwiązanie ********************************/
        }