/// <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); }
/// <summary> /// Ucitavanje svih trazenih ulaznih kolona po prosledjenim indeksima /// tih kolona u tabeli. /// </summary> /// <param name="brojKolonaZaUcitavanjeInputa"></param> private void ucitajUlazneKolone(List <int> brojKolonaZaUcitavanjeInputa) { foreach (int kolona in brojKolonaZaUcitavanjeInputa) { List <double> podaciKolone = CitacPodataka.ucitajPodatkeIzKolone(kolona); podaciKolone = Normalizacija.normalizujPodatke(podaciKolone); 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); } } }
/// <summary> /// Ucitavanje svih trazenih izlaznih kolona ( atributa) /// sa prosledjenim indeksima tih kolona u tabeli /// </summary> /// <param name="brojKolonaZaUcitanjeOutputa"></param> private void ucitajIzlazneKolone(List <int> brojKolonaZaUcitanjeOutputa) { foreach (int kolona in brojKolonaZaUcitanjeOutputa) { List <double> podaciKolone = CitacPodataka.ucitajPodatkeIzKolone(kolona); podaciKolone = Normalizacija.normalizujPodatke(podaciKolone); IzlazneKolone.Add(podaciKolone); } }
/// <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); }
/// <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.normalizujPodatke(podaciKolone); ulazneKolone.Add(podaciKolone); } return(ulazneKolone); }