/// <summary>
        /// Ucitavanje svih trazenih ulaznih kolona po prosledjenim indeksima
        /// tih kolona u tabeli.
        /// </summary>
        /// <param name="brojKolonaZaUcitavanjeInputa"></param>
        /// <param name="citacPodataka"> citac koji moze biti citac train seta podataka, test seta podataka, ako nam je sve u jednom, onda prosledjujemo citac kao train set</param>
        /// <returns></returns>
        private List <List <double> > ucitajUlazneKolone(List <int> brojKolonaZaUcitavanjeInputa, DataReader citacPodataka)
        {
            List <List <double> > ulazneKolone = new List <List <double> >();

            foreach (int kolona in brojKolonaZaUcitavanjeInputa)
            {
                List <double> podaciKolone = citacPodataka.ucitajPodatkeIzKolone(kolona);
                podaciKolone = Normalizacija.normalizujPodatkeNadIntervalom(podaciKolone, 0, 1);

                // u zavisnosti postojanja kategorickih atributa, ako zelim njih ucitam ovde kao inpute
                if (citacPodataka.UniqKategorickiAtributi.Count > 0)
                {
                    List <List <double> > noveKolone = citacPodataka.UniqKategorickiAtributi.Values.ToList();

                    /*
                     * Zbog https://towardsdatascience.com/one-hot-encoding-multicollinearity-and-the-dummy-variable-trap-b5840be3c41a
                     * izbacujem jednu kolonu kako ne bi upao u zamku koja se krije u one hot encodingu
                     */
                    noveKolone.RemoveAt(noveKolone.Count - 1);

                    ulazneKolone.AddRange(noveKolone);
                }
                else
                {
                    ulazneKolone.Add(podaciKolone);
                }
            }

            return(ulazneKolone);
        }
예제 #2
0
        /// <summary>
        /// Ucitavanje svih trazenih izlaznih kolona ( atributa)
        /// sa prosledjenim indeksima tih kolona u tabeli
        /// </summary>
        /// <param name="brojKolonaZaUcitanjeOutputa"></param>
        private List <List <double> > ucitajIzlazneKolone(List <int> brojKolonaZaUcitanjeOutputa, DataReader citacPodataka)
        {
            List <List <double> > izlazne = new List <List <double> >();

            foreach (int kolona in brojKolonaZaUcitanjeOutputa)
            {
                List <double> podaciKolone = citacPodataka.ucitajPodatkeIzKolone(kolona);
                podaciKolone = Normalizacija.normalizujPodatkeNadIntervalom(podaciKolone, 0, 1);

                izlazne.Add(podaciKolone);
            }

            return(izlazne);
        }