Algorithm 3.2 Schemat prostego przycinania drzewa function przytnij_drzewo( T: drzewo do przycięcia, P: zbiór_przykładów) returns drzewo decyzyjne begin for węzły n drzewa T: T* = w drzewie T zastąp n liściem l z etykietą większościowej kategorii if ( błąd_szacowany(t*,p) <= błąd_szacowany(t,p)) return T then T = T* end Źródło: Paweł Cichosz, Systemy uczace sie [3] Szacowanie na podstawie przykładów trenujących do obliczania współczynnika błędu wykorzystywany jest zbiór przykładów. Generuje to gorsze rezultatu, jednak przy dosyć małych zbiorach przykładów takie rozwiązanie może być konieczne. 3.2 Wykorzystanie drzew do generowania pytań 3 2 1 Rozpoznawanie obiektów poprzez zadawanie pytań Rozpoznawanie obiektów poprzez zadawanie pytań przypomina nieco grę w 20 pytań. Dawniej była to popularna zabawa towarzyska. Gracz, w tym przypadku system informatyczny ma zadanie rozpoznać obiekt. Może zadawać dowolne pytania dotyczące cech obiektu umieszczonego na fotografii. Aplikacja powinna potrafić jak najszybciej podać prawidłową odpowiedź, co za tym idzie zadać jak najmniejszą liczbę pytań. Tylko jak taki cel osiągnąć? Wybór optymalnej sekwencji nie jest rzeczą prostą. W poprzednich rozdziałach analizie zostało poddane standardowe podejście ludzi do rozpoznawania obiektów, istnieją jednak alterantywne rozwiązania tego problemu. W latach sześćdziesiątych XX wieku polska telewizja nadwała jeden z pierwszych teleturniejów: grę w 20 pytań. W programie uczestniczyły dwie trzyosobowe drużyny o zmiennym składzie. Jedną drużynę stanowili matematycy, w skład drugiej wchodzili dziennikarzy. Drużyny miały za zadanie odgadnąć hasło przedmiot lub pojęcie znane pre- 42
zenterowi i widzom. Każda z drużyn mogła zadać prezenterowi co najwyżej 20 pytań, na które można odpowiedzieć tak lub nie. Po jakmiś czasie gra straciła sens i została usunięta z anteny. Przyczyną była strategia stosowana przez matematyków, oparta o algorytm przeszukiwania połówkowego. Drużyna zadawała kolejne pytania w postaci: czy hasło występuje w Wielkiej Encyklopedii Powszechnej przed słowem X? Przy pierwszym pytaniu wybierano hasło znajdujące się w połowie listy haseł, w drugim natomiast w przypadku odpowiedzi twierdząch, hasło znajdujące się w jednej czwartej listy. Dalej postępowano analogicznie dzieląc pulę słów na połowę. Wyszukiwanie binarne jest algorytmem opierającym się na metodzie dziel i zwyciężaj. W czasie logarytmicznym stwierdza, czy szukany element znajduje się w uporządkowanej tabeli. Np. jeśli lista haseł w encyklopedii zawiera milion elementów, stosując algorytm oparty o wyszukiwanie binarne gracz musi sprawdzić maksymalnie 20 pozycji. Schemat ten nie wymaga rozumienia żadnego pojęcia, o które się pyta, jest to rozwiązanie czysto algorytmiczne. Jednak w przypadku analizowanego systemu do rozpoznawania obiektów nie ma zastosowania praktycznego. Jednak łącząc dwa elementy, czyli wiedzę o obiektach oraz dobry algorytm wyboru pytań, powinnismy otrzymać system dobrze radzący sobiez postawionym przed nim problemem. 3 2 2 Drzewo jako reprezentacja sekwencji pytań 3.2.2.1 Klasyczne drzewa decyzyjne W tabeli 2.2 znajdują się przykładowe pytania. Gra dotyczyła psa o rasie: Samoyed. Pies został w tym scenariuszu rozpoznany po zadaniu czterech pytań. Pytania dotyczyły kilku cech anatomicznych psa. Taką sekwencję pytań można zapisać w formacie drzewa. Każde pytanie jest węzłem, wartości atrybutów są w tym przypadku gałęziami. W liściach takiego drzewa powinny znaleźć się rasy psów. Pytanie Odp. It has straight or curly hair shape? straight How many color has it hair? one Is it large, medium or small? medium Is is Samoyed? yes Tablica 3.1: Przykładowe pytania o rasę Samoyed Źródło: Opracowanie własne 43
3.2.2.2 Binarne drzewa decyzyjne Pytanie Odp. Większość gier słowynych zakłada zadawanie pytań z odpowiedziami typu prawda Is muzzle length short? false i fałsz. W tabeli 3.2 znajdują się przykładowe Is ears size medium? true pytania. Gra dotyczyła psa o rasie: Is hair to short to check shape? true Dalmation. Dalmatyńczyk został w tym Has hair three colors? true scenariuszu rozpoznany po zadaniu pięciu Is ears type fallen? true pytań. Pytania również dotyczyły kilku Is it Dalmation? true cech anatomicznych psa. Taką sekwencję Tablica 3.2: Przykładowe pytania o rasę Dalmation Źródło: Opracowanie własne intuicyjnie można zapisać w postaci binarnego drzewa decyzyjnego. Binarne drzewo decyzyjne jest szczególnym przypadkiem drzewa decyzyjnego. Z danego wierzchołka mogą wychodzić co najwyżej dwie gałęzie. Każde pytanie dotyczy poszczególnych wartości atrybutów obiektu. W tym przypadku drzewo będzie miało uproszczoną postać zaprezentowaną na rysunku 3.1. 3.2.2.3 Konstrukcja klasycznego drzewa decyzyjnego na przykładzie Cecha Wartość hair shape 0.3939 hair colors 0.3882 ears size 0.3313 height 0.3218 hair length 0.2961 Tablica 3.3: Wartościowanie testów na podstawie przytostu informacji Źródło: opracowanie własne pięciu najlepszych atrybutów. Przykład budowania drzewa zostanie omówiony na danych: psy_29.csv. Konstrukcję drzewa rozpoczynamy od wyboru algorytmu budowy. Musimy między innym wybrać sposób oceny testów, oparty np. o przyrost informacji lub o współczynnik przyrostu informacji. W następnym kroku wybieramy atrybut o największej wartości funkcji oceny. Ta cecha będzie stanowiła korzeń nowo budowanego drzewa. Tabele 3.3 i 3.4 zawierają obliczone wartości, dla 44
Rysunek 3.1: Drzewo decyzyjne reprezentujące pytania o rasę Dalmation Źródło: Opracowanie własne 45
Rysunek 3.2: Etap I konstrukcji drzewa decyzji Źródło: opracowanie własne Cecha Wartość Na ich podstawie, niezależnie od kryterium wyboru testów, pierwszym elementem w drzewie powinien być węzeł testu- hair shape 1.9135 hair colors 1.8858 jący wartości atrybutu hair shape. Następnie dla każdej możliwej wartości, do- ears size 1.6093 height 1.5632 dawana jest nowa gałąź etykietowana nazwą hair length 1.4386 wartości. Do utworzonych w ten spo- Tablica 3.4: Wartościowanie testów na podstawie współczynnika przytostu informacji Źródło: Opracowanie własne sób poddrzew trafiają odpowiednie rasy psów, które spełniają warunki testów: zawierają atrybut hair shape o danej wartości. Pierwszy etap budowy przedstawia rysunek 3.2. Podsumowując, pierwsze pytanie powinno dotyczyć kształtu sierści i w zależności od odpowiedzi, system powinien trafić po odpowiedniej gałęzi do nowego węzła. Procedurę opisaną w poprzednim akapicie powtarzamy rekurencyjnie dla każdego otrzymanego w ten sposób poddrzewa. Jako kryterium stopu należy przyjąc otrzymanie pojedyńczej rasy w węźle lub też brak atrybutów do dalszego zadawania pytań. W rezultacie otrzymujemy drzewa modelujące odpowiednie pytania zaprezentowane na rysunkach 3.3 oraz 3.4. 46
Rysunek 3.3: Drzewo decyzyjne, wartościowanie: przyrost informacji 47
Rysunek 3.4: Drzewo decyzyjne, wartościowanie: przyrost informacji 48
3.2.2.4 Konstrukcja binarnego drzewa decyzyjnego na przykładzie Przykład budowania drzewa zostanie omówiony na danych: psy_29.csv. Konstrukcja drzewa binarnego nieznacznie różni się od budowy klasycznego drzewa. Przed rozpoczęciem konstrukcji należy przeprowadzić dodatkowy etap, polegający na analizie i przekształceniu danych. Większość atrybutów nie ma wartości binarnych. Przykładowo cecha height przyjmuje następujące wartości: small, medium, large. W takiej sytuacji należy zastąpić dotychczasowe atrybuty, cechami binarnymi. Najprościej przyjąć, że każda unikalna wartość atrybutu będzie traktowana jak zupełnie nowy atrybut o dwóch wartościach: 0 i 1. Nazwa takiej nowo utworzonej cechy powinna być połączeniem nazw wartości i cechy. Po stworzeniu nowej bazy atrybutów należy przeanalizować dane. Jeżeli analizowany obiekt posiada cechę o danej wartośći, nowy atrybut przyjmuje wartość 1, w przeciwnym wypadku 0. Na tak przetworzonych danych można zastosować standardowy algorytm budowania drzewa zaprezentowany w tym rozdziale. W rezultacie otrzymujemy drzewo zaprezentowane na rysunku 3.5. 3 2 3 Wady stosowania drzew decyzyjnych Stosowanie drzew decyzyjnych nie jest pozbawione wad. Do najważniejszych ograniczeń możemy zaliczyć: testuje się wartości jednego atrybutu, co powoduje nadmierny rozrost drzewa w przypadku, kiedy atrybutu zależą od siebie[3] kosztowna reprezentacja alternatyw warunków w przeciwieństwie do koniunkcji reprezentowanej poprzez pojedyńczą ścieżkę[3] problematyczne inkrementacyjne aktualizowanie drzewa [3] W przypadku generowania pytań bardzo istotny jest problem z reprezentacją alternatyw warunków. Dane pozyskiwane w sposób automatyczny mogą zawierać błędy. W opisach przygotowywanych przez ludzi, także mogą pojawić się pomyłki. Dodatkowo użytkownicy systemy 49
Rysunek 3.5: Binarne drzewo decyzyjne, wartościowanie: przyrost informacji 50
mogą podawać błędne odpowiedzi na pytania. Takie sytuacje powinny być przewidziane w modelu. Jedna pomyłka może wprowadzić system do niewłaściwego poddrzewa. Istnieje kilka możliwych sposobów na radzenie sobie z takimi sytuacjami. Najprostsza metoda zakłada, że obiekt jest odfiltrowywany tylko w przypadku niezaliczenia kilku testów, a nie jak dotychczas z powodu wyniku jednego testu. Jednak powoduje to znaczny rozrost drzewa. Inną możliwością jest zaproponowanie użytkownikowi najbardzie podobnych obiektów w przypadku błędnej próby zgadnięcia rasy. Podobieństwa mogą być obliczane na wiele różnych sposobów. Alternatywnym rozwiązaniem może być stosowanie różnego rodzaju form akwizycji danych, w celu zapewnienia ich lepszej jakości. 3.3 Propabilistyczny model akwizycji Dane bartka częstości aktualne wzory na liczenie funkcja oceny?? 51