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.

Podobne dokumenty