Celem ćwiczenia jest zapoznanie się z zagadnieniem klasyfikacji, automatycznym uczeniem na podstawie serii uczącej, posługiwaniem się narzędziem do analizy danych, oraz wybranymi metodami maszynowego uczenia się (Machine Learning - ML).

Zadanie należy wykonać przy użyciu wybranego programu do drążenia danych takiego jak WEKA albo RapidMiner. Można również wykonać to ćwiczenie za pomocą innego narzędzia do statystycznej analizy albo drążenia danych, np.\ pakietu statystycznego Matlaba.

Zasadnicza część zadania polega na przećwiczeniu co najmniej dwóch wybranych metod indukcyjnego uczenia się na zestawie dobrych danych statystycznych opisujących jakieś rzeczywiste zjawisko. Jak wybrać „dobry” zbiór danych, i co to znaczy „przećwiczenie” jest wyjaśnione poniżej.

1. Dane

Dane powinny być statystyką jakiegoś zjawiska opisanego wektorem atrybutów i wyrażone w postaci pewnej liczby przypadków (próbek). Najlepiej byłoby, gdyby dane były zrozumiałe dla laika, przynajmniej częściowo. Dane muszą być prawdziwe, w sprawozdaniu należy podać ich źródło.

Sztucznie wygenerowane dane na ogół nie nadają się do tego eksperymentu. W zbiorze statystycznym te same próbki mogą się powtarzać, i zwykle nie wystąpią wszystkie możliwe kombinacje wartości (niektóre mogą być bardzo nietypowe, lub w ogóle fizycznie nierealizowalne). Zbiór zawierający wszystkie możliwe kombinacje wartości atrybutów, po jednej próbce każdego, praktycznie nigdy nie jest statystyką.

Uwaga na zbiory danych dotyczące samochodów - jest niemal niemożliwe wykonanie poprawnej analizy na takim zbiorze. Jest coś w ludzkim myśleniu o samochodach, co nie poddaje się maszynowemu uczeniu się. Poza tym większość tych zbiorów nie jest statystykami.

Proszę również nie używać do własnego ćwiczenia bardzo rozpowszechnionych zbiorów danych: irysów, ani grzybów. Ten ostatni jest dobrym zbiorem danych statystycznych, jednak ze względu na popularność i opisy w wielu opracowaniach, trudno wykonać z nim prawdziwie samodzielne ćwiczenie.

Ponadto zdarzają się zestawy danych statystycznych, które są tak dobre, że ... aż za dobre. Są one zoptymalizowane pod kątem klasyfikacji. Na przykład zawierają wyselekcjonowane atrybuty, z których już nic odrzucić nie można bez pogorszenia jakości klasyfikacji. Czasem wykonana jest też zoptymalizowana dyskretyzacja wartości atrybutów w wyniku której atrybut(y) zostały zamienione na dyskretne. Taki zbiór można poznać po tym, że jakiekolwiek operacje na atrybutach tylko pogarszają klasyfikację. Wykonanie wartościowego, pouczającego ćwiczenia na takim zbiorze jest również niemożliwe. Czasem można odnaleźć oryginalną, niezoptymalizowaną wersję takiego zbioru, i z nią pracować.

Uwaga 1:
Orientacyjne wymagania ilościowe: minimum 5 atrybutów i minimum 500 próbek danych. Aczkolwiek komfortowe minimum próbek powinno być bliższe 1000, a od 10000 próbek zaczyna się ciekawa praca. Liczba próbek niezbędna do sensownej analizy jest uzależniona od liczby atrybutów i zbioru ich wartości. 200 próbek może być wystarczające dla wykonania minimalnego ćwiczenia z 5 atrybutami binarnymi, lecz dla 5 atrybutów o 5 możliwych wartościach, nawet 2000 próbek może być stanowczo zbyt mało, by uzyskać jakikolwiek stopień wyuczalności.

Uwaga 2:
Jeśli dane są liczbowe, zwłaszcza zmiennoprzecinkowe, to konieczna będzie ich dyskretyzacja, czyli podział na przedziały wartości. Tej dyskretyzacji można dokonać ręcznie, przed rozpoczęciem analizy, jeśli wiadomo jak to zrobić dobrze. Niektóre algorytmy maszynowego uczenia się same znajdują znaczące wartości podziału zbioru. Analiza skuteczności dyskretyzacji jest również istotnym elementem drążenia danych, i programy posiadają szereg metod do tego służących.

Uwaga 3:
W prawdziwym zbiorze danych mogą występować próbki z brakującymi wartościami atrybutów. Mogą również występować próbki sprzeczne, to znaczy takie same kombinacje wartości atrybutów z różnymi klasami. Ani jedno ani drugie nie jest przeszkodą w analizowaniu takiego zbioru, aczkolwiek skuteczność uczenia się na takich zbiorach będzie mniejsza. Programy do analizy danych zwykle radzą sobie z brakującymi wartościami, natomiast próbki sprzeczne można wykryć oddzielnym programem i np. usunąć ze zbioru przynajmniej dla celów analizy wstępnej.

Należy podkreślić, że każdy dostatecznie duży zbiór prawdziwych danych może zawierać błędne próbki, i jest to na ogół niemożliwe do wykrycia (poza pewnymi oczywistymi przypadkami, np. gdy wiek osoby wypada poza przedziałem 0..130, jakaś zawartość procentowa poza przedziałem 0..100, itp.). Takie błędy obniżają efektywność i dokładność maszynowego uczenia się, ale nie uniemożliwiają go.

2. Wstępna analiza

Wybierając zbiór danych statystycznych do eksperymentu maszynowego uczenia należy sprawdzić takie jego aspekty jak liczba atrybutów, typ ich wartości i konkretne zbiory wartości, nietypowe wartości, kwestia brakujących i sprzecznych danych, itp. Można również przeanalizować szczegółowo rozkłady wartości poszczególnych atrybutów (np. histogram wartości). Taka analiza przydaje się często na dalszych etapach, kiedy wykonuje się różne operacje na tych zbiorach wartości.

Dla niektórych zbiorów danych jest oczywiste, który atrybut jest klasą (dla eksperymentu klasyfikacji) lub wartością funkcji (dla eksperymentu regresji). Niekiedy jednak atrybut taki trzeba wybrać arbitralnie, i można eksperymentować z różnymi atrybutami, osiągając różne wyniki.

Mając wybrany zbiór i wyróżniony w nim atrybut-klasę, dobrym krokiem jest przegląd histogramów poszczególnych atrybutów z podziałem na wartości klasy.

Innym podstawowym eksperymentem jest wyznaczenie poziomu odniesienia dla dokładności docelowej klasyfikacji. Jednym sposobem wyznaczenia takiego poziomu jest odwrotność liczby wartości atrybutu klasy. Dla dwóch wartości poziomem odniesienia będzie 1/2, ale dla wielu wartości, np. sześciu, poziom odniesienia jest znacznie niższy: 1/6.

Inne podejście do wyznaczenia poziomu odniesienia polega na uwzględnieniu najliczniejszej klasy. Jeśli nawet wartości klas jest wiele (np. 16), ale najliczniejsza wartość obejmuje np. 45\% próbek, to zwykłe głosowanie większościowe osiąga 45\% poprawności, i to może być poziomem odniesienia. Klasyfikacja większościowa jest czasami nazywana klasyfikatorem Zero R.

Jeszcze inne obliczenie poziomu odniesienia może mieć miejsce, gdy istnieje jakaś wartość domyślna klasy, albo domyślny model klasyfikacji.

Znajomość poziomu odniesienia jest istotna dla oszacowania wyników klasyfikacji. Jeśli dokładność klasyfikacji nie przekracza poziomu odniesienia, to można uznać, że niemożliwe jest nauczenie się klasyfikacji na podstawie danego zestawu atrybutów.

3. Klasyfikacja - pierwszy eksperyment

Do pierwszego eksperymentu klasyfikacji często wybieramy Naiwny Klasyfikator Bayesowski. Jakkolwiek czyni one pewne założenia, które nie są spełnione w wielu zbiorach danych, jednak mimo wszystko często działa on bardzo dobrze, a w wielu wypadkach równie dobrze jak znacznie bardziej zaawansowane algorytmy. Jednocześnie zarówno budowa tego klasyfikatora, jak i jego zastosowanie, są niezwykle proste, co czyni ten algorytm atrakcyjnym.

Do pierwszego eksperymentu klasyfikacji typowo należy użyć wszystkich atrybutów i maksymalnego zbioru próbek (ograniczać go warto tylko przy bardzo wielkich zbiorach, np. więcej niż 100,000 próbek, dla zmniejszenia czasu obliczeń). Dla atrybutów numerycznych najlepiej polegać na automatycznej dyskretyzacji realizowanej przez dany program.

Celem wstępnej analizy jest określenie procentowego błędu klasyfikacji na zbiorze testowym, oraz innych metryk wyuczalności zbioru, przydatnych do bardziej zaawansowanych eksperymentów.

Pracę warto zacząć od obliczenia procentowego błędu klasyfikacji na zbiorze uczącym, wykorzystując cały zbiór próbek. Będzie on miarą wyuczalności całego zbioru, zależnej od własności zbioru, zawartych w nim błędów, itp. Będzie on zarazem górnym kresem wyuczalności na zbiorze testowym.

Kolejnym etapem pracy powinny być eksperymenty uczenia z obliczaniem błędu klasyfikacji na zbiorze testowym. Błąd obliczony metodą walidacji krzyżowej ( cross-validation), może być zgrubnym wskaźnikiem rzeczywistej wyuczalności zbioru. Typowo może on być nieznacznie większy niż błąd na zbiorze uczącym. Jeśli jest dużo większy niż błąd na zbiorze uczącym, to może świadczyć o niedouczeniu, o przeuczenia, lub ogólnie o słabej wyuczalności posiadanego zbioru. Na przykład może on być zbyt mały.

Jeśli danych jest bardzo dużo to można zacząć od małych zbiorów uczących i testować wielkimi, w razie potrzeby rozszerzając zbiór uczący do momentu, aż klasyfikator osiągnie pewien poziom dobrych wyników. Na odwrót, jeśli danych jest mało (np. kilkaset) to często ma sens zacząć uczenie od dużego zbioru uczącego (np. 99\% wszystkich próbek), i potem zmniejszać go, aby przekonać się jak duża seria ucząca jest niezbędna do wyuczenia klasyfikatora. Zawsze należy upewnić się czy zwiększenie zbioru uczącego nie poprawi skuteczności klasyfikacji.

Uwaga:
Obliczony błąd klasyfikacji dla różnych zagadnień może mieć różne wartości absolutne. Czasami może być bardzo mały, typu ułamka procenta, czasem może wynosić 5-10\%, a czasem nawet dużo więcej, np. 30-40\%. Ta ostatnia sytuacja świadczy o słabej wyuczalności klasyfikacji, lecz taka dokładność nie musi być bezużyteczna i nie należy tylko na tej podstawie oceniać sukcesu eksperymentu.

4. Minimalizacja błędu

Celem prac w tym zadaniu jest osiągnięcie jak najmniejszego błędu testowania. Mając określoną początkową wartość tego błędu w analizie wstępnej, należy zastanowić się jak można go poprawić (zmniejszyć). Ogólnie przydatne okazują się następujące metody:

5. Podsumowanie wyników

Po wykonaniu wszystkich eksperymentów minimalizacji błędu, dla optymalnej konfiguracji uczenia się (lub kilku alternatywnych konfiguracji) należy wykonać obliczenie błędu na zbiorze uczącym i testowym (zwykle: metodą walidacji krzyżowej), porównać uzyskane wartości, i sformułować wnioski.

Ostatnim etapem powinno być określenie minimalnej liczby próbek niezbędnej do nauczenia się klasyfikatora. Powtarzając eksperyment uczenia dla coraz mniejszych zbiorów uczących, i obliczając średni błąd klasyfikacji zbioru testowego (np. metodą walidacji krzyżowej), możemy określić wartość graniczną wielkości zbioru uczącego, poniżej której błąd zaczyna wyraźnie rosnąć. To jest właśnie minimalna niezbędna liczba próbek.

Referencje:

UCI Machine Learning Repository

CMU Statistical datasets

Rapid Miner tutorial