S - Politechnika Warszawska
Transkrypt
S - Politechnika Warszawska
Metauczenie a możliwość poprawy skuteczności klasyfikacji* Piotr Andruszkiewicz Politechnika Warszawska, Wydział Elektroniki i Technik Informacyjnych Abstract: Metalearning is a technique, which enables us to improve classification accuracy in Data Mining. It uses several classifiers to compute final category for a test sample. The most popular metalearning methods are Bagging and Boosting. Effectiveness of these methods with the usage of decision tree (SPRINT) has been tested and presented in this paper. Keywords: metalearning, classification, decision tree, SPRINT Streszczenie: Jednym ze sposobów na polepszenie skuteczności klasyfikacji w eksploracji danych jest zastosowanie metauczenia, które polega na wykorzystaniu wielu klasyfikatorów do wybrania ostatecznej kategorii. Wśród najpopularniejszych metod metauczenia znajdują się Bagging i Boosting. Wyniki eksperymentów przeprowadzonych dla tych metod przy użyciu klasyfikatora opartego na drzewie decyzyjnym (algorytm SPRINT) i wnioski przedstawione są w niniejszej pracy. Słowa kluczowe: metauczenie, klasyfikacja,drzewo decyzyjne, SPRINT 1. Wstęp Klasyfikacja staje się coraz ważniejsza w dzisiejszym życiu. Może ona być stosowana do wykrywania nadużyć bądź do przydzielania dokumentów tekstowych do odpowiednich grup. Szczególnym przypadkiem może być tu wykrywanie niepotrzebnych wiadomości elektronicznych wysyłanych na skrzynki pocztowe. Ważne jest, aby dokonywać jej z jak najlepszą skutecznością. Do jej poprawy można użyć metauczenia (ang. metalearning). Wykorzystuje ono wiele klasyfikatorów do podjęcia ostatecznej decyzji. Praca ta przedstawia następujące zagadnienia związane z metauczeniem. W sekcji 2 opisana jest matematyczna definicja klasyfikacji. Część 3 traktuje o metauczeniu ze szczegółowym omówieniem metod bagging i boosting. Natomiast * Badania wspierane były przez grant KBN o numerze 3 T11C 002 29. sekcja 4 opisuje wykorzystany w eksperymentach klasyfikator SPRINT. Sekcja 5 to wyniki eksperymentów, zaś 6 przedstawia wnioski z nich płynące. 2. Zadanie klasyfikacji Zadanie klasyfikacji polega na znalezieniu dla wybranego przykładu najbardziej odpowiadającej mu kategorii [11]. Szukanie odpowiadającej kategorii jest dokonywanie na podstawie analizy zbioru trenującego – zbioru przykładów, dla których kategoria jest określona. Celem analizy jest znalezienie „wiedzy” w jaki sposób przynależność do kategorii zależy od atrybutów opisujących przykład. Załóżmy, że istnieje nieznana funkcja c taka, że: c : X C , gdzie: X - dziedzina przykładów, C - zbiór kategorii. Ponadto posiadamy zbiór T X , nazywany zbiorem trenującym, taki że: x T c(x) jest znane. Zadanie klasyfikacji polega na znalezieniu funkcji h : X C zwanej hipotezą i spełniającej warunki: x X można wyznaczyć h(x) . h c , tzn. że jest małe prawdopodobieństwo, że h c . 3. Metauczenie Technika metauczenia [1] polega na wykorzystaniu wielu klasyfikatorów w celu przypisania przykładowi kategorii. Mogą one wykorzystywać inne algorytmy, które uczone będą na identycznych danych. Jeśli są to te same klasyfikatory, to otrzymują one różne podzbiory zbioru trenującego. Każdy z klasyfikatorów uczy się na dostarczonych mu danych. Podzbiory te można utworzyć poprzez losowanie z całego zbioru trenującego r |T| przykładów dla każdego klasyfikatora. Parametr r może przyjmować wartości mniejsze od 2/3, choć stosowane jest także próbkowanie dla r równego 1. Losowanie może odbywać się zgodnie z rozkładem jednostajnym lub innym rozkładem tworzonym w poszczególnych fazach metauczenia. Innym sposobem jest podzielenie zbioru trenującego na m części i przekazaniu każdemu klasyfikatorowi m-1 części. Przy wykorzystaniu jednakowych klasyfikatorów można zastosować modyfikację przestrzeni atrybutów (poszczególne klasyfikatory uczą się na różnych zestawach atrybutów). Kolejnym podejściem może być randomizacja algorytmów poprzez wprowadzenie losowości w funkcji oceny albo zastosowanie deterministycznej funkcji oceny z losowym wyborem spośród kilku najlepszych przypadków. Można także zastosować modyfikację kategorii – kodowanie kategorii. Przykładem może być opisanie kategorii za pomocą numerów i przedstawienie ich przy pomocy kodu binarnego. Wówczas każdy klasyfikator określałby pojedynczy bit tego kodu. Klasyfikowanie przykładu polega na przydzieleniu mu kategorii przez wszystkie klasyfikatory, a następnie wybrania kategorii, która była najczęściej wskazywana. Takie decydowanie o wybranej kategorii nosi miano głosowania. Możliwe jest także głosowanie ważone. Do wybrania ostatecznej kategorii można zastosować maksymalizację prawdopodobieństwa, wykorzystując do tego Naiwny Klasyfikator Bayesowski. Danymi wejściowymi będą wówczas wyjścia poszczególnych klasyfikatorów, na podstawie których klasyfikator przydzieli ostateczną kategorię. Wykorzystując tę zasadę łączenia klasyfikatorów, można wprowadzić hierarchiczne łączenie klasyfikatorów. Wówczas danymi wejściowymi dla każdego klasyfikatora wyższego rzędu będą wyjścia klasyfikatorów niższego rzędu. Klasyfikator znajdujący się najwyżej w hierarchii będzie podawał ostateczną kategorię. Wyraźny wpływ na jakość klasyfikacji przy metauczeniu widać w tak zwanych algorytmach niestabilnych, dla których małe zmiany zbiorów trenujących potrafią zmienić znacząco hipotezę. Są to m.in. algorytmy tworzenia reguł decyzyjnych lub drzew decyzyjnych. Dla algorytmów stabilnych (m.in. Naiwny Klasyfikator Bayesowski) nie obserwuje się pożądanych rezultatów. Do najczęściej stosowanych metod metauczenia należą algorytmy bagging i boosting. 3.1 Bagging Metoda bagging [2] polega na wykorzystaniu zbioru trenującego T i algorytmu klasyfikacji A. Tworzony jest zbiór klasyfikatorów {cl1, cl2, .. , cln}, z których każdy wykorzystuje algorytm A i trenowany jest na zbiorze trenującym Ti. Zbiór trenujący Ti powstaje poprzez wylosowanie przykładów (ze zwracaniem) ze zbioru T. Losowanie odbywa się zgodnie z rozkładem jednostajnym. Liczności zbioru T i Ti są takie same. Każdy klasyfikator przydziela kategorię przykładowi. Ostateczna kategoria jest tą, która najczęściej była proponowana przez klasyfikatory. 3.2 Boosting Metoda boosting [4], podobnie jak bagging, zakłada stworzenie zbioru klasyfikatorów {cl1, cl2, .. , cln}. Klasyfikatory wykorzystują ten sam algorytm A. Różnica polega na sposobie wyboru przykładów z podstawowego zbioru trenującego do poszczególnych zbiorów Ti, na podstawie których uczą się klasyfikatory. Bagging zakładał wybieranie przykładów ze zbioru trenującego z rozkładem jednorodnym. Boosting polega na uczeniu kolejnych klasyfikatorów przede wszystkim na podstawie przykładów, które były przez poprzednie klasyfikatory źle klasyfikowane. Przy losowaniu przykładów do zbiorów trenujących dla kolejnych klasyfikatorów próbkom źle klasyfikowanym przyznawane jest większe prawdopodobieństwo wyboru. W taki sposób kolejne klasyfikatory będą uczyły się na podstawie przykładów błędnie klasyfikowanych przez poprzedników. Przyjmijmy, że Pil będzie oznaczać prawdopodobieństwo wybrania przykładu dl ze zbioru trenującego T do zbioru Ti. Dla pierwszego klasyfikatora wartości tych prawdopodobieństw dla każdego przykładu są takie same (sytuacja jak w bagging) 1 m | T | m Pil gdzie m oznacza liczbę przykładów w zbiorze trenującym T. Przy tworzeniu kolejnych zbiorów trenujących wartości te są modyfikowane. Przy konstrukcji zbioru trenującego dla klasyfikatora cli+1 należy najpierw obliczyć sumę Si będącą sumą prawdopodobieństw tych przykładów, dla których klasyfikator cli się pomylił. Si m p il l:cli ( d l ) f ( d l ) f jest klasyfikacją empiryczną, a dl przykładem o indeksie l ze zbioru trenującego. Następnie wyliczany jest współczynnik korekcji i i 0,5 log 1 si si Prawdopodobieństwa przykładów modyfikowane są w następujący sposób pi 1,l pil e i dla przykładów, którym klasyfikator cl i przydzielił poprawną kategorię pi 1,l pil e i dla przykładów niepoprawnie sklasyfikowanych W dalszej kolejności są one normalizowane. Dzięki takiemu zabiegowi kolejne klasyfikatory uczone są przede wszystkim na podstawie przykładów, które zostały niepoprawnie sklasyfikowane przez poprzednie klasyfikatory. Jest to podejście wykorzystujące losowanie przykładów (ang. boosting by sampling). Drugie podejście wykorzystuje prawdopodobieństwa pi,l jako wagi (ang. boosting by weighting). Można je stosować, gdy wykorzystywany algorytm klasyfikacji pozwala na bezpośrednie użycie ważonego zbioru trenującego. Na każdym etapie tworzenia zbioru klasyfikatorów wykorzystywany jest cały zbiór trenujący ważony prawdopodobieństwami pi,l. Wybór klasy wypadkowej przebiega tak jak w metodzie bagging, jednak stosowane jest głosowanie ważone przy pomocy współczynnika i dla poszczególnych klasyfikatorów. 4. Wykorzystany klasyfikator W eksperymentach użyto klasyfikatora wykorzystującego drzewo decyzyjne. Zaimplementowany został algorytm SPRINT [9] z modyfikacjami. 4.1 Opis algorytmu Algorytm polega na rekurencyjnym tworzeniu drzewa decyzyjnego, w którego węzłach znajdują się testy na atrybutach, a w liściach określone są kategorie. Przykłady, które spełniają test przechodzą np. na lewo, a niespełniające na prawo. Test dla atrybutów nominalnych polega na sprawdzeniu czy wartość danego atrybutu zawiera się w ustalonym podzbiorze możliwych wartości atrybutu. Natomiast dla atrybutów ciągłych test sprawdza czy wartość znajduje się poniżej pewnego progu. Klasyfikacja nowego przykładu polega na sprawdzeniu poszczególnych testów, przechodząc w głąb drzewa. Po dotarciu do liścia, w którym znajduje się kategoria, przypisywana jest ona klasyfikowanemu przykładowi. Kroki rekurencyjnego algorytmu budowania drzewa decyzyjnego: 1. sprawdź czy spełnione jest kryterium stopu a. jeśli tak, to utwórz liść i przydziel mu kategorię b. zwróć liść 2. utwórz węzeł 3. wybierz właściwy test 4. odznacz, że wybrany test był już użyty 5. wywołaj rekurencyjnie algorytm budowania drzewa decyzyjnego dla przykładów spełniających test 6. wywołaj rekurencyjnie algorytm budowania drzewa decyzyjnego dla przykładów niespełniających testu 7. zwróć węzeł Kryterium stopu jest spełnione, gdy wszystkie przykłady mają tę samą kategorię, zbiór przykładów jest pusty lub wykorzystano już testy na wszystkich atrybutach. Do wyboru testu użyta została miara gini [10], która przyjmuje wartości od 0 do 1. Najlepszym testem jest ten, który posiada jak najmniejszą wartość tego współczynnika. | S | Gini( S ) 1 Sd d |S| 2 gdzie: S d - oznacza klasę | S d | - liczba przykładów należących do danej klasy i spełniających test |S| - liczba wszystkich przykładów spełniających test Analogicznie oblicza się wartość tego współczynnika dla przykładów, które nie spełniają testu. Końcową miarą dla danego testu (atrybut i wartość) jest indeks Gini split wyliczany jako Gs | St | |S | G( S t ) n G( S n ) | S all | | S all | | S all | - liczba wszystkich przykładów | S t | - liczba przykładów spełniających test | S n | - liczba przykładów nie spełniających testu Przykład: Wyliczenie wartości dla testu wiek 17 i pojęciu docelowym ryzyko o wartościach – wysokie i niskie. Ryzyko spełnia test (tak) nie spełnia testu (nie) wysokie 1 3 niskie 0 2 Tabela 1: Liczba przykładów spełniających test w podziale na kategorie. Gtak Gnie 1 2 0 2 1 0 1 1 3 2 2 2 12 1 5 5 15 Gs 1 5 2 0 12 6 6 5 Miarę tę wylicza się dla każdego atrybutu i każdego podzbioru wartości danego atrybutu (dla atrybutów nominalnych) albo progu (dla atrybutów ciągłych). Próg rozumiany jest jako średnia wartość między dwoma najbliższymi wartościami danego atrybutu występującymi w przykładach. Za najlepszą parę atrybut - wartość uważa się tę, która ma najmniejszą wartość indeksu gini split. Wybrany test nie może zostać już użyty w ścieżce przebiegającej w głąb drzewa. Bez metauczenia Alg. Fold 7 Bagging 5 10 15 20 0,690 0,708 0,703 0,690 0,690 0,651 0,674 0,655 0,650 0,651 0,682 0,718 0,684 0,685 0,682 1 0,675 0,680 0,675 0,672 0,676 3 0,701 0,718 0,706 0,675 0,713 5 0,705 0,730 0,716 0,739 0,726 1 0,660 0,688 0,673 0,660 0,643 3 0,708 0,712 0,704 0,691 0,701 5 0,694 0,740 0,703 0,720 0,738 1 0,664 0,699 0,680 0,670 0,671 3 0,720 0,717 0,708 0,693 0,699 5 0,718 0,724 0,712 0,721 0,713 1 0,673 0,697 0,663 0,655 0,687 3 0,670 0,694 0,692 0,697 0,688 5 0,705 0,705 0,701 0,711 0,705 1 0,671 0,678 0,665 0,678 0,673 3 0,680 0,713 0,696 0,696 0,674 5 0,729 0,729 0,730 0,717 0,702 1 0,677 0,697 0,659 0,665 0,698 3 0,683 0,725 0,698 0,679 0,704 5 0,709 0,738 0,692 0,702 0,715 1 10 7 10 4 7 10 Maksymalna głębokość drzewa - 4 4 AdaBoost Liczba klasyf. Tabela 2: Procent poprawnie sklasyfikowanych przykładów dla zbioru credit-g. 4.2 Modyfikacje Ograniczenie sprawdzanych podzbiorów wartości atrybutu nominalnego pozwala na zwiększenie szybkości algorytmu generowania drzewa. Spośród wszystkich podzbiorów wartości atrybutu wybieramy tylko te, których liczność jest mniejsza bądź równa wartości całkowitej z maksymalnej liczności zbioru wartości podzielonej przez dwa. Pozostałe podzbiory są równoważne pod względem podziału przykładów. Alg. Fold Bez metauczenia Ograniczenie sprawdzanych progów podziału dla atrybutów ciągłych. Progi, które leżą między przykładami tej samej kategorii, mogą zostać pominięte, ponieważ dobry test nie powinien rozdzielać przykładów o jednakowej kategorii. Liczbę przykładów spełniających dany warunek (próg pi+1) można wyliczyć jako liczbę przykładów spełniających warunek pi zwiększoną o liczbę próbek, których wartość badanego atrybutu mieści się pomiędzy tymi dwoma wartościami progowymi. Oczywiście pi+1>pi. 4 7 Bagging 7 10 4 7 10 Maksymalna głębokość drzewa - 5 10 15 20 0,921 0,685 0,861 0,920 0,921 0,928 0,691 0,874 0,928 0,928 0,930 0,699 0,876 0,929 0,930 1 0,922 0,693 0,902 0,925 0,927 3 0,942 0,662 0,909 0,932 0,939 5 0,948 0,713 0,895 0,946 0,938 1 0,922 0,671 0,869 0,925 0,919 3 0,939 0,728 0,874 0,938 0,938 5 0,951 0,697 0,904 0,948 0,951 1 0,926 0,670 0,891 0,920 0,923 3 0,938 0,716 0,897 0,945 0,942 5 0,949 0,711 0,890 0,945 0,952 1 0,917 0,718 0,873 0,915 0,924 3 0,926 0,787 0,925 0,917 0,921 5 0,931 0,755 0,945 0,924 0,922 1 0,932 0,670 0,884 0,919 0,921 3 0,921 0,738 0,936 0,928 0,920 5 0,915 0,723 0,943 0,925 0,918 1 0,920 0,707 0,861 0,918 0,930 3 0,929 0,734 0,850 0,921 0,920 5 0,928 0,777 0,813 0,933 0,923 1 10 4 AdaBoost Liczba klasyf. Tabla 3: Procent poprawnie sklasyfikowanych przykładów dla zbioru segment. Algorytm zakłada utworzenie dla każdego atrybutu tablicy z trzema kolumnami: identyfikatorem przykładu, atrybutem i klasą. Dla atrybutów ciągłych jest to tablica posortowana według wartości danego atrybutu. Implementowany algorytm miał zostać użyty przy metauczeniu, a więc tablice te zawierają jedynie numery identyfikatorów poszczególnych przykładów. A zbiór próbek przechowywany jest tylko w jednym egzemplarzu. Nie została wykorzystana heurystyka wyznaczania najlepszego testu dla atrybutów nominalnych o dużej liczbie możliwych wartości proponowana przez autorów SPRINT, gdyż w używanych przykładach nie było atrybutów przekraczających znacznie podaną granicę dziesięciu wartości atrybutu. Brak możliwości używania po raz kolejny testu na danym atrybucie powoduje, że czasami generowane jest drzewo, które zawiera w dwóch liściach będących dziećmi jednego testu te same kategorie. Nie wpływa to negatywnie na jakość klasyfikacji w porównaniu do drzewa z usuniętym testem i jednym liściem. Jednak pogarsza czytelność drzewa i nieznacznie czas klasyfikowania przykładu. 4.3 Brakujące wartości atrybutów Brakujące wartości uzupełniane są wartościami najczęściej występującymi dla danego atrybutu nominalnego. Natomiast dla atrybutów ciągłych jest to średnia arytmetyczna. 4.4 Ocena poprawności klasyfikacji Do określenia skuteczności klasyfikacji posłużył odsetek poprawnie klasyfikowanych przykładów – dokładność (ang. accuracy). Dodatkowo w celu otrzymania wiarygodniejszych wyników wykorzystana została walidacja krzyżowa (ang. cross validation) [6]. Polega ona na podzieleniu zbioru przykładów na n równolicznych podzbiorów (parametr fold). Eksperyment przeprowadza się n razy za każdym razem wybierając jako zbiór testujący inny podzbiór. Pozostałe przykłady służą jako zbiór trenujący. Otrzymane w ten sposób wyniki uśrednia się. 5. Wyniki eksperymentów Eksperymenty zostały przeprowadzone dla pięciu zbiorów przykładów [7]: 1. credit-g – zbiór o atrybutach nominalnych i numerycznych. Liczba przykładów 1000 2. segment – zbiór o 19 atrybutach rzeczywistych i atrybucie klasy. Liczba przykładów 2310. 3. sick – zbiór o atrybutach nominalnych i numerycznych z przykładami, w których występują brakujące wartości. Liczba przykładów 3772 4. kr-vs-kp – zbiór o atrybutach wyłącznie nominalnych. Liczba przykładów 3196. 5. audiology– zbiór o atrybutach wyłącznie nominalnych (brakujące wartości). Liczba przykładów 226. Wszystkie tabele przedstawiają procent przykładów dobrze sklasyfikowanych przy użyciu walidacji krzyżowej. Bez metauczenia Alg. Fold 7 Bagging 5 10 15 20 0,917 0,784 0,900 0,917 0,917 0,960 0,851 0,961 0,960 0,960 0,975 0,907 0,974 0,975 0,975 1 0,908 0,793 0,905 0,895 0,891 3 0,908 0,830 0,949 0,930 0,902 5 0,929 0,817 0,913 0,916 0,909 1 0,938 0,906 0,951 0,957 0,941 3 0,956 0,877 0,954 0,935 0,941 5 0,946 0,887 0,951 0,945 0,940 1 0,964 0,902 0,944 0,962 0,965 3 0,968 0,893 0,973 0,972 0,971 5 0,975 0,911 0,975 0,975 0,971 1 0,919 0,826 0,873 0,906 0,886 3 0,904 0,809 0,860 0,917 0,940 5 0,919 0,798 0,875 0,910 0,931 1 0,925 0,886 0,939 0,948 0,941 3 0,948 0,879 0,945 0,944 0,932 5 0,951 0,862 0,947 0,936 0,950 1 0,965 0,895 0,972 0,968 0,967 3 0,966 0,906 0,955 0,962 0,969 5 0,971 0,940 0,969 0,976 0,972 1 10 7 10 4 7 10 Maksymalna głębokość drzewa - 4 4 AdaBoost Liczba klasyf. Tabela 4: Procent poprawnie sklasyfikowanych przykładów dla zbioru kr-vs-kp. Z eksperymentów przeprowadzonych dla credit-g (Tabela 2) można wywnioskować, że w większości przypadków skuteczność klasyfikacji dla drzewa bez ograniczonej głębokości jest mniejsza od drzewa z maksymalną głębokością 5. Jest to różnica rzędu 2-3%. Wśród przypadków, które nie spełniają tej zależności (wyniki zaznaczone kursywą) jest próba przeprowadzona z AdaBoost dla fold 10 i jednego klasyfikatora. Można więc wnioskować, że dla tego zbioru danych występuję nadmierne dopasowanie drzewa do danych treningowych (ang. overfitting), a przy ograniczeniu głębokości drzewa do około 5 redukowane jest nadmierne dopasowanie (zabezpieczenie przed wrażliwością na szum w danych) i drzewo klasyfikuje lepiej na danych testowych. W celu zapobieżenia nadmiernemu dopasowaniu można posłużyć się przycinaniem (ang. pruning) [5], które redukuje nadmierne dopasowanie poprzez zamianę testów na liście. Porównując wyniki otrzymane dla różnej liczby tworzonych klasyfikatorów, można stwierdzić, że zwiększenie liczby klasyfikatorów poprawia skuteczność klasyfikowania (tylko w nielicznych przypadkach skuteczność spada w niewielkim stopniu). Bez metauczenia Alg. Fold 7 Bagging 5 10 15 20 0,696 0,518 0,692 0,696 0,696 0,679 0,473 0,665 0,679 0,679 0,723 0,441 0,714 0,723 0,723 1 0,603 0,545 0,656 0,638 0,656 3 0,719 0,540 0,656 0,737 0,674 5 0,705 0,661 0,701 0,674 0,701 1 0,652 0,531 0,656 0,688 0,647 3 0,701 0,634 0,723 0,714 0,705 5 0,723 0,625 0,728 0,777 0,728 1 0,695 0,550 0,659 0,714 0,677 3 0,700 0,645 0,686 0,714 0,736 5 0,755 0,645 0,727 0,741 0,755 1 0,692 0,518 0,683 0,674 0,674 3 0,679 0,594 0,625 0,670 0,692 5 0,692 0,567 0,696 0,665 0,692 1 0,647 0,558 0,612 0,665 0,598 3 0,674 0,442 0,647 0,696 0,710 5 0,768 0,549 0,665 0,705 0,674 1 0,718 0,550 0,618 0,655 0,664 3 0,709 0,545 0,655 0,741 0,723 5 0,736 0,477 0,673 0,750 0,750 1 10 7 10 4 7 10 Maksymalna głębokość drzewa - 4 4 AdaBoost Liczba klasyf. Tabela 5: Procent poprawnie sklasyfikowanych przykładów dla zbioru audiology. Porównując wyniki dla algorytmu bagging i przypadku bez wykorzystania metauczenia, można stwierdzić, że lepsze wyniki otrzymuje się przy bagging. Dla przypadku, gdy ta metoda wykorzystuje jeden klasyfikator, wyniki są zbliżone (zdarzają się przypadki nieznacznie gorszych wyników - związane są one z jednokrotnym losowaniem przykładów ze zbioru trenującego, które nie zawsze wybiera zestaw przykładów pozwalający na poprawę jakości klasyfikowania), jednak wraz ze wzrostem liczby użytych klasyfikatorów rośnie skuteczność i różnica staje się bardziej wyraźna. Porównując skuteczność metody bagging i boosting, można stwierdzić, że uzyskane rezultaty są zbliżone. Otrzymane wyniki skuteczności klasyfikacji wahają się w przedziale 65-75%. Dla zbioru segment (Tabela 3) wyniki uzyskane dla drzewa bez ograniczenia głębokości są znacznie lepsze niż dla drzewa o maksymalnej głębokości równej 5. Zwiększając ten parametr do 15-20, otrzymuje się wyniki porównywalne do przypadku bez ograniczenia głębokości. Wniosek z tego, że przy poziomie głębokości drzewa około 20 uzyskuje się drzewo, które nie jest nadmiernie dopasowane do danych treningowych. Wyniki otrzymane dla bagging przy wykorzystaniu jednego klasyfikatora są, podobnie jak dla przypadku credit-g, zbliżone do wyników, które uzyskano bez metauczenia. Zastosowanie 3 i 5 klasyfikatorów zwiększa skuteczność klasyfikacji. Metody bagging i boosting uzyskały zbliżone wyniki. Nie można stwierdzić, który algorytm lepiej klasyfikował przykłady, gdyż raz przewagę nieznaczną zdobywa jeden, a w innym przypadku drugi. Średnie uzyskane wyniki mieszczą się w przedziale 85-95% (pomijając przypadek z maksymalną głębokością 5). 1 0.95 0.9 0.85 0.8 0.75 0.7 0.65 audiology Bagging kr-vs-kp sick segment credit-g Bez metauczenia AdaBoost Rysunek 1: Procent poprawnie klasyfikowanych przykładów dla fold=10 i 3 klasyfikatorów przy metauczeniu. W przypadku zbioru sick, który zawiera 3772 przykładów o 7 atrybutach ciągłych i 23 atrybutach nominalnych, otrzymano wyniki które różnią się pomiędzy sobą nie więcej niż o 1,1%.Nie pozwala to na rozważanie przewagi jednej z użytych metod. Zbiór sick zawiera 6046 brakujących wartości, co stanowi 5,4% wszystkich analizowanych wartości. Otrzymana skuteczność klasyfikacji jest wysoka i wynosi ok. 98%. Algorytm generowania drzew decyzyjnych C4.5 ( J48) zaimplementowany w bibliotece Weka uzyskuje podobne wyniki dla tego przykładu. Są to wartości z przedziału 98,4-98,7%. Użycie metody bagging w bibliotece Weka daje identyczne rezultaty (98,1 – 98,8%). Natomiast boost uzyskał lepsze wyniki, bo mieszczące się w przedziale 98,2-99,1%. 1 0.95 0.9 0.85 0.8 0.75 0.7 0.65 audiology Bagging kr-vs-kp sick segment credit-g Bez metauczenia AdaBoost Rysunek 2: Procent poprawnie klasyfikowanych przykładów dla fold=10 i 5 klasyfikatorów przy metauczeniu. Wyniki otrzymane dla zbioru kr-vs-kp (Tabela 4) dla drzewa o maksymalnej głębokości równej 5 są znacznie gorsze do ok. 10% niż dla drzewa bez ograniczeń. Zwiększanie maksymalnej głębokości pozwala osiągnąć wartości takie jak dla drzewa bez ograniczenia, a w kilku przypadkach dla maksymalnej głębokości 15 i 20 nawet nieznacznie lepsze. Algorytm bagging dla jednego klasyfikatora uzyskał zbliżone wyniki (z wyjątkiem jednego przypadku, gdzie uzyskał zdecydowanie lepszy wynik) do przypadku, gdzie nie użyto żadnego algorytmu metauczenia. Przy wykorzystaniu wielu klasyfikatorów otrzymane rezultaty także są zbliżone. Występują zarówno lepsze przypadki jak i gorsze wyniki. Algorytm bagging w około 75% przypadków okazał się lepszy. Nie są to jednak znaczące różnice. Dla zbioru audiology (Tabela 5), podobnie jak dla poprzednich przypadków, drzewo o maksymalnej głębokości równej 5 klasyfikuje gorzej. Zwiększanie głębokości drzewa pozwala na osiągnięcie rezultatów jak dla drzewa nieograniczanego. Wyniki metody bagging dla jednego klasyfikatora są nieznacznie gorsze (z wyjątkiem niewielkiego procenta przypadków) od wyników uzyskanych bez metauczenia. Użycie 3 i 5 klasyfikatorów poprawia skuteczność klasyfikowania. Są to różnice rzędu 2-3%, pomijając klasyfikator o maksymalnej głębokości równej 5. Dla tego przypadku różnica w skuteczności klasyfikacji osiąga nawet ponad 20% (44,1 wobec 64,5%). Metoda boosting w porównaniu do bagging uzyskała gorsze wyniki zwykle około 1-3%. Wyjątek stanowi klasyfikator o maksymalnej głębokości drzewa 5, gdzie różnice te sięgają ok. 20%, a wynik jest zbliżony do osiągnięć, jakie uzyskał klasyfikator bez metauczenia. Dla dwóch przypadków metoda boosting uzyskała widocznie lepsze rezultaty. Są to przypadki zaznaczone kursywą, a różnica w skuteczności wynosi około 9% i 5% w porównaniu do bagging. Jakość klasyfikacji dla analizowanych zbiorów przestawione zostały graficznie na rysunku 1 i 2. Eksperymenty przeprowadzone zostały dla 3 i 5 klasyfikatorów oraz walidacji krzyżowej z podziałem na 10 podzbiorów. Przedstawiają porównanie jakości przy wykorzystaniu metod bagging i boosting oraz bez metauczenia. 6. Podsumowanie Nadmierne ograniczanie maksymalnej głębokości drzewa powoduje spadek jakości klasyfikowania. Zastosowanie metauczenia z wykorzystaniem kilku klasyfikatorów pozwala na poprawienie skuteczności klasyfikowania. Wraz ze wzrostem liczby klasyfikatorów rośnie procent poprawnie klasyfikowanych przykładów. Nie jest to jednak „żelazna” reguła. Przyrost skuteczności zależy od użytego zbioru przykładów. Porównując metody bagging i boosting, można stwierdzić, że uzyskują one podobne wyniki, wskazując jednak na korzyść metody bagging. Skuteczność klasyfikacji wyniosła dla zbiorów credit-g 65-75% audiology 4573%. Zbiory te zawierały odpowiednio 1000 i 226 przykładów. Znacznie lepsze wyniki uzyskano dla pozostałych zbiorów (85-99%). Pozostałe zbiory zawierały co najmniej 2,3 do ponad 3,7 tyś. przykładów. W pracy [3] porównana została także jakość klasyfikacji bez i przy wykorzystaniu metauczenia. Użyty został algorytm budowy drzewa decyzyjnego C4.5. W eksperymentach zastosowano przycinanie stosowane tylko wówczas, gdy zmniejszało ono błąd klasyfikacji liczony na zbiorze testującym. W przypadku metody boosting zastosowano podejście wykorzystujące ważony zbiór trenujący (w przeciwieństwie do niniejszej pracy, gdzie użyto podejścia wykorzystującego losowanie przykładów). Uzyskane wyniki, podobnie jak w niniejszej pracy, wskazywały na wyższość obu metod metauczenia nad budową pojedynczego klasyfikatora. Jednak [3] wskazuje (dla przypadku bez wprowadzania szumu) na wyższość metody boosting nad bagging. Eksperymenty przedstawione w niniejszej pracy pokazują niewielką przewagę metody bagging. Różnice mogą wynikać z zastosowania innych podejść przy realizacji metody boosting, odmiennych sposobów ograniczania głębokości drzewa oraz różnic w algorytmach budowy drzewa decyzyjnego. Mimo że stosowanie metauczenia powoduje trudniejszą interpretację zasad przydzielania przykładów do poszczególnych klas (powstaje wiele drzew decyzyjnych wykorzystywanych jednocześnie do określenia końcowej kategorii), to zastosowanie wielu klasyfikatorów pozwala na uzyskanie wyższej jakości klasyfikacji. Bibliografia [1] Cichosz, P.: Systemy uczące się, Warszawa 2000, WNT. [2] Breiman, L. Bagging Predictors, Machine Learning, 24(2), 1996, s. 123-140. [3] Dietterich, T. G.: An experimental comparison of three methods for constructing ensembles of decision trees: Bagging, boosting, and randomization, Machine Learning, 40(2), 2000, s. 139-157. [4] Freund, Y., Shapire, E.: Experiments with a new boosting algorithm, 13th Conf. on Machine Learning, s. 148-156, 1996. [5] Han, J., Kamber, M.: Data Mining: Concepts and Techiniques, New York 2001, Morgan Kaufman. [6] Hastie, T., Tibshirani, R., Friedman, J. : The Elements of Statistical Learning: Data Mining, Inference, and Prediction, Springer, 2001. [7] http://mlearn.ics.uci.edu/MLRepository.html. [8] Mattison, R.: Data Warehousing and Data Mining for Telecommunications, 1997, Artech House Publishers. [9] Shafer, J. C., Agrawal, R., Mehta, M.: SPRINT: A Scalable Parallel Classifier for Data Mining, Proc. 22nd Int. Conf. Very Large Databases (VLDB), 1996, Morgan Kaufmann. [10] Strobl, C., Boulesteix, A. L., Augustin T.: Unbiased split selection for classification trees based on the Gini Index, Computational Statistics & Data Analysis, Elsevier, 52(1), 2007, s. 483-501. [11] Witten, I., Frank, E.: Data Mining, New York 2000, Morgan Kaufman.