mini-projekt programistyczny - Bayes - naiwny klasyfikator bayesowki

0

hej, mam zaćmienie umysłu. mam do napisania program, który korzystając z klasyfikatora Bayesa ma za zadanie zaklasyfikować przypadki ze zbioru testowego opierając się na zbiorze treningowym. Atrybuty w zbiorze treningowym są nominalne (kategoryczne).

wymyśliłem klasę Data z polem List<String> attributes. sczytuję dane z pliku csv.

Data{attributes=[slonecznie, tak, niska, srednia, tak]}
Data{attributes=[snieg, tak, wysoka, niska, nie]}
Data{attributes=[slonecznie, tak, srednia, niska, tak]}
Data{attributes=[deszcz, nie, srednia, srednia, nie]}
Data{attributes=[snieg, tak, wysoka, srednia, nie]}
Data{attributes=[zachmurzenie, tak, wysoka, srednia, tak]}
Data{attributes=[zachmurzenie, tak, wysoka, srednia, tak]}
itd.

stanąłem nad tym jak zebrać poszczególne atrybuty i je zliczyć. myślałem o setach, aby przelecieć po analogicznych indeksach w listach, zebrać to do setów i tak będę miał zbiory poszczególnych atrybutów warunkowych i decyzyjnych. czy to jest dobry trop? może ktoś ma lepszy pomył. tu aż proszą się mapy, aby jako klucz użyć Stringa a wartość Integer (ilość wystąpienia danego atrybuty, np. slonecznie).

proszę o jakieś protipy.

0
List<Set<String>> allAttributes = new ArrayList<>();

        for (int j = 0; j < numberOfAttributes; j++) {
            Set<String> attributs = new HashSet<>();

            for (int i = 0; i < listOfData.size(); i++) {
                attributs.add(listOfData.get(i).getAttributes().get(j));
            }
            allAttributes.add(attributs);
        }

rozkminiłem tak jak coś

1 użytkowników online, w tym zalogowanych: 0, gości: 1