PiPSSI/L/z2
From WikiZMSI
[edytuj]
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).