PiPSSI/L/z2

From WikiZMSI

< PiPSSI | L

Na zajęciach (do skończenia w domu)

Napisać w Javie (proponowane środowisko: Eclipse) program, który korzystając z WEKA API, będzie realizował następujące rzeczy:

  • Wczyta na podstawie ścieżki wskazanej (przy uruchomieniu) z linii komend zbiór danych do klasyfikacji. Przyjąć, że atrybut z klasą jest w ostatniej kolumnie.
  • Wyświetli na konsolę informacje o zbiorze danych: liczbę instancji, liczbę atrybutów i ich dziedziny.
  • Użyje na wszystkich atrybutach numerycznych filtra dyskretyzującego bez nadzoru (przyjąć 5 przedziałów).
  • Podzieli zbiór danych na uczące i testowe w proporcji 70%, 30%. Podział z uprzednim mieszaniem.
  • Zapisze oba zbiory do plików (wybór miejsca wg autora). Uwaga zbiór testowy ma być zapisany z ustawionymi nieznanymi wartościami (?) dla atrybutu z klasą.
  • Na części uczącej wykona naukę 3 algorytmów (wybranych w poprzednim zadaniu). Nauka ma się odbywać przez 5-krotną krzyżową walidację. Jeżeli pewien algorytm nie daje się uruchomić na danym zbiorze (z uwagi na swoje capabilities), to należy przechwycić wyjątek i wyświetlić informację na konsolę.
  • Dla każdego z 3 algorytmów: wyświetli postać tekstową modelu, wyświetli statystyki uczenia (macierz pomyłek i summary), sklasyfikuje wszystkie przypadki w zbiorze testowym i zapisze zbiór testowy ponownie do nowego pliku, tym razem z nadaną klasą dla każdego obiektu, wyświetli procentową poprawność klasyfikacji na zbiorze testowym.
  • Obliczy procent zgodności algorytmów (procent zgodnych klasyfikacji) parami (3 liczby).
  • Uzyskane modele dla każdego z 3 algorytmów zapisze do plików (serializacja).
  • Uwaga: poszczególne akcje w trakcie pracy programu proszę komunikować na konsolę (log).