示例#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);
        }