Mariusz Księżak - Politechnika Warszawska
Transkrypt
Mariusz Księżak - Politechnika Warszawska
Rok akademicki 2010/11 Politechnika Warszawska Wydział Elektroniki i Technik Informacyjnych Ośrodek Kształcenia na odległość OKNO-PW Kierunek Elektronika i Telekomunikacja Specjalność Inżynieria Komputerowa PRACA DYPLOMOWA INŻYNIERSKA Mariusz Księżak Redukcja atrybutów metodą uogólniania reguł decyzyjnych Praca inzynierska napisana pod kierunkiem prof. dr hab. Tadeusza Luby Spis treści Wstęp ....................................................................................................................................................... 2 Streszczenie ............................................................................................................................................. 4 Abstract ................................................................................................................................................... 4 1. Podstawy teoretyczne .......................................................................................................................... 5 1.1. Wstęp ............................................................................................................................................ 5 1.2. System informacyjny i tablica decyzyjna ..................................................................................... 6 1.3. Tablic decyzyjne w zastosowaniach praktycznych - przykłady ................................................... 7 1.3.1. Zastosowanie tablic decyzyjnych w medycynie .................................................................... 7 1.3.2. Zastosowanie tablic decyzyjnych w ekonomii ...................................................................... 8 1.4. Metody uogólniania i upraszczania reguł decyzyjnych .............................................................. 10 1.5. Redukcja atrybutów metodą uogólniania reguł .......................................................................... 13 1.5.1. Tworzenie macierzy porównań M ....................................................................................... 14 1.5.2. Wyznaczenie tablicy minimalnych pokryć M ..................................................................... 15 1.5.3. Wyznaczenie iloczynu kartezjańskiego zbiorów obiektów wszystkich tablic minimalnych pokryć M ....................................................................................................................................... 16 2. Rozwiązanie problemu dużej złożoności obliczeniowej algorytmu redukcji w programie PROTON ............................................................................................................................................................... 18 2.1. Wyznaczenie minimalnych pokryć M w programie PROTON.................................................. 18 2.2. Wyznaczenie iloczynu kartezjańskiego wszystkich tablic minimalnych pokryć M w programie PROTON ........................................................................................................................................... 19 3. Program PROTON ............................................................................................................................ 20 3.1. Założenia .................................................................................................................................... 20 3.2. Opis programu ............................................................................................................................ 20 3.3. Zastosowania programu PROTON............................................................................................. 22 3.3.1. Współpraca z programami LERS oraz ESPRESSO ........................................................... 22 Podsumowanie....................................................................................................................................... 32 Dodatek ................................................................................................................................................. 34 Bibliografia............................................................................................................................................ 36 1 Wstęp Redukcja atrybutów/argumentów jest algorytmem stosowanym w dwóch odrębnych dziedzinach wiedzy, a mianowicie w zagadnieniach związanych z klasyfikacją danych (maszynowe uczenie, eksploracja danych itp.) oraz w zagadnieniach związanych z optymalizacją i syntezą logiczną układów cyfrowych. W obu przypadkach jest to problem polegający na redukowaniu nadmiarowych specyfikacji w tablicach danych (tablicach prawdy w układach logicznych) za pośrednictwem usuwania zbędnych atrybutów (argumentów). Uzyskiwane w wyniku takiego procesu tablice mogą być wykorzystywane do generowania uogólnionych reguł decyzyjnych albo do kolejnych etapów optymalizacji logicznej (w przypadku układów cyfrowych). Oczywiście dane wejściowe algorytmów redukcji są w obu przypadkach zasadniczo różne. Dla tablic danych mamy do czynienia z wielowartościowymi atrybutami warunkowymi i wielowartościowymi atrybutami decyzyjnymi. Dla tablic prawdy wartości argumentów i wartości funkcji są binarne. Jednocześnie całkowicie inaczej są interpretowane tzw. wartości nieokreślone. W tablicy danych wartość nieokreślona atrybutu warunkowego oznacza, że wartość tego atrybutu nie została ustalona, a w przypadku tablic funkcji logicznych nieokreśloność argumentu wektora wejściowego oznacza występowanie w specyfikacji wektorów o wszystkich możliwych wartościach danego argumentu. Oczywiście w samym procesie przetwarzania atrybut warunkowy jak też wartość sygnału wejściowego mogą być interpretowane tak samo. Można bowiem założyć, że nieznana wartość atrybutu warunkowego dopuszcza specyfikację pierwotną z każdą możliwą wartością tego atrybutu. W rozeznanej literaturze nie znaleziono jednak jednoznacznego sformułowania tego problemu. Zauważono natomiast, że wiele metod odkrywania wiedzy, w szczególności metod indukcji reguł decyzyjnych, nie jest przystosowanych do uwzględniania nieokreślonych wartości atrybutów. Z kolei jeśli chodzi atrybuty decyzyjne i wartości funkcji logicznych, to w tym przypadku rozsądnym jest przyjmowanie założenia, że decyzja jest zawsze określona. Inaczej jest dla wartości funkcji logicznych, które z natury pracy układów cyfrowych mogą zakładać wartość nieokreśloną dla różnych wektorów wejściowych układu. Różnice w interpretacji mogą również występować na poziomie wyników. Jest bowiem zrozumiałe, że dla układów logicznych najlepsze są rozwiązania z najmniejszą liczbą argumentów. Natomiast w przypadku tablic danych, w których wartość atrybutu jest niejednokrotnie uzyskiwana za pośrednictwem skomplikowanych pomiarów, większa liczba atrybutów warunkowych (ale z pominięciem tych najbardziej kłopotliwych) jest do przyjęcia. Ale dynamiczny rozwój metod syntezy logicznej otwiera również potrzebę stosowania wszystkich reduktów w procedurach optymalizacji logicznej. Dlatego przy założeniu opracowania w miarę uniwersalnego narzędzia do badań i tablic danych i tablic prawdy, jako główny cel niniejszej pracy przyjmuje się implementację algorytmu obliczającego wszystkie redukty, przy występowaniu nieokreśloności wyłącznie po stronie dziedziny funkcji specyfikujących dane. Takie założenia są istotne również z punktu widzenia eksperymentów, których wyniki będą wykorzystywane do dalszych obliczeń, za pomocą typowych narzędzi wykorzystujących zredukowane dane (LERS, ESPRESSO). 2 Niniejsza praca składa się z trzech rozdziałów. W rozdziale pierwszym omówiono podstawy teoretyczne oraz zaprezentowano przykłady praktycznych zastosowań tablic decyzyjnych. Rozdział drugi opisuje rozwiązanie problemu dużej złożoności obliczeniowej algorytmu redukcji w programie PROTON. Na końcu, w rozdziale trzecim przedstawiano założenia i opis programu PROTON. Omawiane tu przykłady pozwalają krok po kroku prześledzić działanie programu i jego współpracę z programami LERS oraz ESPRESSO. Oczywiście bogactwo przykładów ma na celu przystępne i przejrzyste zapoznanie czytelnika z zagadnieniem. Pragnę bardzo serdecznie podziękować Panu profesorowi Tadeuszowi Łubie, dzięki któremu mógł powstać ten program komputerowy oraz wszystkim pozostałym moim wykładowcom z Politechniki Warszawskiej. 3 Streszczenie Niniejsza praca prezentuje program PROTON, który służy do redukcji atrybutów metodą uogólniania reguł decyzyjnych. Program ten jest uniwersalnym narzędziem mającym zastosowanie dla danych wielowartościowych lub danych binarnych, dlatego z powodzeniem można go stosować zarówno do analizy zbiorów reguł decyzyjnych jak i tablic prawd. Wyniki przeprowadzonych w pracy eksperymentów redukcji argumentów konfrontowane są z programami LERS oraz ESPRESSO. Przedstawione przykłady zastosowania programu PROTON, pokazują zalety algorytmu dokładnego w porównaniu do heurystycznych algorytmów zastosowanych w wyżej wymienionych programach. Abstract This thesis presents program PROTON, which is used to reduce attributes using the method of decision rules generalization. The program is a versatile tool applicable for the multi-valued or binary data, so can be successfully used both to analyze sets of decision rules and the truth tables. The results of experiments of reduction of the arguments carried out in this paper are confronted with programs LERS and ESPRESSSO. Presented examples of application of PROTON, show the advantages of exact algorithm in comparison to the heuristic algorithms used in the above mentioned programs. 4 1. Podstawy teoretyczne 1.1. Wstęp Narzędzi matematycznych do formalnego opisu wiedzy, w tym wiedzy niepełnej zaproponowana i niedokładnej dostarcza teoria zbiorów przybliżonych, w roku 1982 przez prof. Zdzisława Pawlaka [11]. Teoria zbiorów przybliżonych, nie jest alternatywna dla klasycznej teorii zbiorów. Jest ona pewną formalizacją pojęć nieprecyzyjnych (nieostrych) w terminach, pojęć precyzyjnych. Pojęcie nieprecyzyjne jest przedstawione w tej teorii za pomocą dwu pojęć precyzyjnych (dolnego i górnego przybliżenia), co pozwala na operowaniem klasycznym aparatem teorii mnogości do wyrażania i analizy pojęć nieprecyzyjnych. Teoria zbiorów przybliżonych znalazła liczne zastosowania, między innymi w: • medycynie • farmakologii • bankowości • lingwistyce • rozpoznawaniu mowy • ochrona środowiska • bazach danych i innych. Badania i prace w tym zakresie prowadzone są w wielu krajach [12]. Na bazie tej teorii na Uniwersytecie Kansas przez pana profesora Jerzego W. Grzymala-Busse został opracowany program LERS (Learning from Examples based on Rough Sets) [4]. Program wykorzystuje zbiory przybliżone do wyszukiwania reguł decyzyjnych. Zadaniem LERSa jest generowanie tychże reguł na podstawie tablic decyzyjnych, ale w taki sposób, że generacja reguł jest realizowana dla niesprzecznych tablic danych. W tym przypadku (a w szczególności dla tablic z binarnymi wartościami atrybutów) jest to procedura wykorzystująca algorytmy analogiczne do procedur minimalizacji funkcji boolowskich. Stąd pomysł wprowadzenia do procesów obliczeniowych stosowanych w analizie danych metod wywodzących się z syntezy logicznej. Jednocześnie, aby całe przedsięwzięcie mogło być usprawnieniem procedur generowania reguł decyzyjnych (stosowanych w programie LERS), głównym celem pracy uczyniono procedurę redukcji atrybutów. 5 1.2. System informacyjny i tablica decyzyjna Punktem wyjścia do rozważań teoretycznych jest pojęcie systemu informacyjnego oraz jego języka. Formalnie system informacyjny, jest parą (U, A, V, f), gdzie: U jest niepustym i skończonym zbiorem obiektów zwanym uniwersum, A jest niepustym i skończonym zbiorem atrybutów, V = ⋃ୟ∈ Vୟ , przy czym jest dziedziną atrybutu a ∈ A, oraz : × → jest funkcją informacyjną taką, że ∀ ∈ , ∈ , ∈ . Jeżeli w systemie informacyjnym wyróżniamy rozłączne zbiory atrybutów warunkowych C i atrybutów decyzyjnych D (gdzie A=C∪D), to system taki nazywany jest tablicą decyzyjną [12]. Podstawową zaletą tablicy decyzyjnej jest zwarty i przejrzysty sposób prezentacji zależności między zbiorem warunków, a zbiorem odpowiadającym im decyzji. Tablicę decyzyjną można traktować zatem jako reprezentację zbioru reguł decyzyjnych [8]. Przykładową tablicę reguł decyzyjnych przedstawia tabela 1. Tabela 1 Przykładowa tablica reguł decyzyjnych [5] Atrybuty a b c d e 1 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 0 1 0 1 1 0 2 2 2 2 0 2 2 2 2 2 2 2 Klasyfikacja (decyzja) W tablicy reguł decyzyjnych każdy wiersz reprezentuje obiekt, który jest opisywany wartościami atrybutów a, b, c, d oraz jest klasyfikowany w kolumnie e. Reguły decyzyjne zapisane w pierwotnej tablicy mają określone wartości atrybutów, a ustalonemu zbiorowi wartości atrybutów odpowiada określona decyzja. Dla tabeli 1: (a,1) & (b,0) & (c,0) & (d,1) → (e,1) 6 1.3. Tablic decyzyjne w zastosowaniach praktycznych - przykłady Tablice decyzyjne stosuje się w bardzo wielu dziedzinach, np. w automatyce przemysłowej do sterowania procesem produkcyjnym, w systemach kontroli jakości, w specjalistycznym oprogramowaniu komputerowym wspomagającym podejmowanie decyzji, również w formie tablic prawd w elektronicznych układach cyfrowych. Jednocześnie tablice te mogą być zastosowane w bardziej konkretnych przypadkach takich jak kryptografia, czy sztuczna inteligencja. Poniżej podaję na podstawie literatury [2] przykłady z kilku różnych dziedzin. 1.3.1. Zastosowanie tablic decyzyjnych w medycynie Tabela 2 przedstawia przykładową tablicę decyzyjną opisującej zbiór pacjentów, którzy starali się o uzyskanie recepty na szkła kontaktowe. Tablica składa się z dwudziestu czterech obiektów oraz czterech atrybutów warunkowych - każda z badanych osób została scharakteryzowana za pomocą czterech cech jakościowych: wieku, wady wzroku, astygmatyzmu oraz łzawienia. Korzystając z wcześniej opisanych definicji można tablicę tę zapisać w postaci: TD = ( U, C, D, V, f), gdzie U = {1,2,3 …, 24} C = {wiek, wada wzroku, astygmatyzm, łzawienie} D = {szkła} Vwiek= {M, P, S}, cecha porządkowa o 3 wartościach młodość (M), P przedstarczowzroczność (P), starczowzroczność (S) Vwada wzroku={K, D}, cecha nominalna o 2 wartościach: krótkowzroczność (K), dalekowzroczność (D), Vastygmatyzm ={Tak, Nie}, cecha nominalna o 2 wartościach: występuje, nie występuje, Vłzawienie ={Normalne, Zmniejszone}, cecha nominalna o 2 wartościach: zmniejszone, normalne. : × → . 1, = 7 Tabela 2 Dane o 24 pacjentach starających się o szkła kontaktowe [2] Pacjent 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 Wiek M M M M M M M M P P P P P P P P S S S S S S S S Wada K K K K D D D D K K K K D D D D K K K K D D D D Astygmatyzm Nie Nie Tak Tak Nie Nie Tak Tak Nie Nie Tak Tak Nie Nie Tak Tak Nie Nie Tak Tak Nie Nie Tak Tak Łzawienie Zmniejszone Normalne Zmniejszone Normalne Zmniejszone Normalne Zmniejszone Normalne Zmniejszone Normalne Zmniejszone Normalne Zmniejszone Normalne Zmniejszone Normalne Zmniejszone Normalne Zmniejszone Normalne Zmniejszone Normalne Zmniejszone Normalne Szkła Brak Miękkie Brak Twarde Brak Miękkie Brak Twarde Brak Miękkie Brak Twarde Brak Miękkie Brak Brak Brak Brak Brak Twarde Brak Miękkie Brak Brak 1.3.2. Zastosowanie tablic decyzyjnych w ekonomii Poniższy przykład przedstawia zastosowanie tablicy decyzyjnej w bankowości. Bank dysponuje zbiorem obiektów (klientów), których przynależność do odpowiedniej klasy jest znana. Sytuacja ta występuje np. przy wnioskach kredytowych składanych w bankach. Ponieważ część z nich jest akceptowana, a część odrzucana można starać się zidentyfikować reguły, często niejawne, jakimi kieruje się bank podejmując decyzje. Dane w poniższej tablicy dotyczącą początkowego (dla 19 osób) fragmentu zbioru 125 osób ubiegających się o kredyty konsumpcyjne w pewnym banku w Japonii. Jeśli chodzi o przynależność klas, to każda z osób albo otrzymała kredyt (klasa tak), albo go nie otrzymała (klasa nie) [2]. 8 Tabela 3 Dane o 19 osobach ubiegających się o kredyt [2] C1 P P B P P P P P P B P B P P P P P P P C2 K K K K K K K K K K S S S S S S S S S C3 K K K K K M M M M M K K K K K M M M M C4 S S R R S S S R R R M R S S R S R S R C5 Nie Nie Tak Nie Tak Nie Nie Nie Nie Nie Nie Nie Nie Nie Nie Nie Nie Nie Nie C6 18 20 25 40 50 18 22 28 40 50 18 20 25 38 50 19 21 25 38 C7 200 100 50 50 50 100 100 150 200 50 500 500 500 1500 500 500 1500 1500 1000 C8 20 20 40 70 40 50 30 40 20 40 80 100 50 100 150 70 30 100 100 C9 15 20 12 12 12 8 8 10 20 12 20 20 20 20 20 20 20 20 20 C10 1 2 0 2 25 1 4 5 15 0 1 2 5 15 ? 2 3 2 15 Klasa Tak Tak Nie Tak Tak Tak Tak Tak Tak Nie Nie Nie Nie Tak Tak Nie Tak Tak Tak Tablicę 3 możemy opisać jako uporządkowaną parę TD = (U, C, D, V, f), gdzie: U = {1,2,3 …, 125} C = {C1,C2,C3,C4,C5,C6,C7,C8,C9,C10} D = {Klasa} VC1 = {B, P} - sytuacja zawodowa: bezrobotny (B) i pracujący (P); VC2 = {K, S, R, A ,B, M ,Z} - przeznaczenie kredytu (C2), cecha nominalna przyjmująca wartości: komputer (K), samochód (S), rower (R), sprzęt audio (A), biżuteria (B), meble (M) oraz pobyt w szpitalu (Z); VC3 = {K, M} - płeć (C3), cecha nominalna o dwóch wartościach: kobieta (K), mężczyzna (M); VC4 = {S, R}- stan cywilny (C4), cecha nominalna reprezentująca informację o tym czy osoba ubiegająca się o kredyt jest samotna (S), czy też ma rodzinę (R); VC5 = {tak, nie}- informacja o tym czy region, w którym mieszka osoba ubiegająca się o kredyt, jest uznany za zagrożony np. trzęsieniami ziemi (C5), cecha nominalna o dwóch wartościach: tak, nie; VC6 = { : ∈ ℕ} - wiek w latach (C6); VC7 = {: ∈ ℝ} - stan konta bankowego w tys. jenów (C7); VC8={: ∈ ℝା } - deklarowana wielkość miesięcznej raty spłaty kredytu w tys. jenów (C8); VC9 ={ : ∈ ℕ} - deklarowana liczba miesięcznych rat (C9); VC10 = {: ∈ ℕ} - staż pracy w danym zakładzie pracy w latach (C10). 9 1.4. Metody uogólniania i upraszczania reguł decyzyjnych Wiedza (informacja) zapisana w tablicy decyzyjnej może być uogólniona. Na przykład uogólnione reguły decyzyjne z tab. 1 mogą być zapisane w postaci: (a,1) & (b,0) → (e,1) (a,0) → (e,0) (b,1) & (d,1) → (e,0) (d,2) → (e,2) lub w formie tablicowej (tab. 4) Tabela 4 Tabela 5 a b c d e 1 0 – – 1 0 – – – 0 – 1 – 1 0 – – – 2 2 z której łatwo odczytać decyzję dla obiektów opisanych wartościami nie występującymi w tablicy pierwotnej. Np. Dla (a,1) & (b,1) & (c,1) & (d,1) → (e,1) Algorytmy takiego uogólnienia są znane i stosowane np. w programie LERS. Innym sposobem upraszczania informacji zapisanej w tablicy decyzyjnej jest redukcja atrybutów. Na przykład dla tablicy decyzyjnej podanej w tableli 5, zredukowanym zbiorem atrybutów jest: a1 a2 a3 a4 a5 a6 f 1 0 0 0 0 0 0 0 2 1 2 1 2 0 2 0 3 1 2 1 0 1 2 1 4 0 1 1 0 0 1 1 5 0 1 1 2 0 0 2 6 1 2 0 3 2 2 1 7 0 0 0 1 0 1 0 8 0 0 1 1 0 1 2 9 0 1 0 3 2 0 3 10 2 2 0 3 2 2 3 a1, a3, a4 co łatwo można sprawdzić, gdyż po usunięciu niesprzeczną tablicę (Tabela 6) 10 pozostałych atrybutów uzyskuje się Tabela 6 a1 a3 a4 f 1 0 0 0 0 2 1 1 2 0 3 1 1 0 1 4 0 1 0 1 5 0 1 2 2 6 1 0 3 1 7 0 0 1 0 8 0 1 1 2 9 0 0 3 3 10 2 0 3 3 Sam problem redukcji atrybutów jest opisywany w literaturze w róznych ujęciach. Najwygodniejsza do interpretacji i obliczeń “ręcznych” jest reprezentacja zależności funkcyjnych tablic decyzyjnych w rachunku podziałów[5]. Podziałem na zbiorze S jest system zbiorów = { } którego bloki są rozłączne, czyli ∩ = ∅, ś ≠ a ponadto = W Tabela 5 możemy zauważyć że wiersze 10 i 6 różnią się tylko jednym atrybutem a1, jest to tak zwany atrybut niezbędny, kolejnym niezbędnym jest a3 ponieważ wiersze 7 i 8 tylko nim się różnią. Wyznaczamy podziały atrybutów niezbędnych, a następnie wyliczamy ich iloczyn: P1 = (1,4,5,7,8,9 ; 2,3,6 ;10) P3 = (1,6,8,9,10; 2,3,4,5,8) P1 ⋅ P3 = (1,7,9 ; 2,3 ; 4,5,8 ; 6 ;10) A następnie podział ilorazowy względem PF czyli wyjścia. 11 PF = (1,2,7 ; 3,4,6 ; 5,8 ; 9,10) P1 ⋅ P3 | PF = (1,7)(9) ; (2)(3) ; (4)(5,8) ; (6) ; (10) Tworzymy tablicę (tab. 7) porównań w której sprawdzamy na której pozycji różnią się wiersze 1 i 9, 7 i 9, 2 i 3, 4 i 5, 4 i 8. Skreślamy wiersze które mają większe pokrycie. Tabela 7 Tablica porównań 1,9 a2, a4, a5 7,9 a2, a4, a5, a6 2,3 a4, a5 4,5 a4, a6 4,8 a2,a4 Wyznaczanie rozwiązań minimalnych: (a4 + a2)(a4 + a5)(a4 + a6) = a4 + a2a5a6 Stąd dwa rozwiązania minimalno-argumentowe: a1, a3, a4 a1, a2, a3, a5, a6 Rozwiązanie minimalne z najmniejszą licznością to: a1, a3, a4. Niestety taki algorytm nie jest zbyt wygodny do implementacji komputerowej. Inne ujęcie tego problemu podane jest w pracy A. Skowrona [13]. W pracy tej główną rolę w obliczeniach reduktów spełnia tzw. macierz rozróżnialności, tworzona dla systemu decyzyjnego TD = (U, A, D), gdzie U = { u1, u2, ..., un} jest zbiorem obiektów, A jest zbiorem atrybutów warunkowych, D jest decyzją. Dla danego systemu decyzyjnego TD = (U, A, D), macierz rozróżnialności M(TD)=[cij]nxn definiuje się następująco: = { ∈ : ≠ , , = 1, 2, … , !( ) ≠ !( )} 12 Każdy element macierzy cij jest zbiorem atrybutów różniących i-ty i j-ty obiekt z U, pod warunkiem, że decyzje dla obiektów ui oraz uj są różne. W przypadku, gdy dec(ui) = dec(uj), zbiór cij jest zbiorem pustym. Na podstawie macierzy rozróżnialności tworzona jest funkcja rozróżnialności. Bezpośrednio z M(TD) tworzone jest wyrażenie boolowskie w postaci iloczynu sum (CNF), gdzie sumowanie jest po elementach (atrybutach) niepustego zbioru cij. Wyrażenie to jest następnie przekształcane do wyrażenia postaci „suma iloczynów” (DNF), którego składniki (po odpowiednim uproszczeniu) reprezentują minimalne zbiory atrybutów. Nietrudno zauważyć, że w obu przypadkach cały proces obliczeniowy reduktów sprowadzić można do obliczania tzw. minimalnego pokrycia kolumnowego binarnej macierzy porównań. Pokryciem kolumnowym macierzy porównań (zwanej również macierzą pokryć) M = [mij], i ∈ {1,..., w}, j ∈ {1,..., n} jest zbiór L ⊆ {1,..., n} taki, że dla każdego i ∈ {1,..., w} istnieje j ∈ L, dla którego mij = 1. Pokrycie kolumnowe nazywamy minimalnym, jeżeli nie istnieje L’ ⊆ L, który jest pokryciem macierzy M. Tak definiowana macierz pokryć jest analogiem macierzy blokującej stosowanej w algorytmie ekspansji [5] wykorzystywanym w procesie minimalizacji funkcji boolowskich, jak też w metodzie uogólniania reguł decyzyjnych metodą ekspansji [5]. Z tych powodów metodę redukcji atrybutów zaproponowaną w niniejszej pracy nazywać można „redukcją atrybutów metodą uogólniania reguł decyzyjnych”. 1.5. Redukcja atrybutów metodą uogólniania reguł Redukcja atrybutów metodą uogólniania reguł decyzyjnych przebiega trzyetapowo, a mianowicie: w etapie pierwszym tworzy się macierze porównań M, w etapie drugim następuje wyznaczenie tablic minimalnych pokryć M, w etapie trzecim wyznacza się iloczyn kartezjański zbiorów obiektów (wierszy) wszystkich tablic minimalnych pokryć M. Ostatni etap to analiza dużego zbioru wyników iloczynu kartezjańskiego, w tym etapie odrzucamy wszystkie powtarzające się wyniki oraz mające większe pokrycie kolumnowe. Powstały w ten sposób zbiór daje nam zbiór rozwiązań. 13 1.5.1. Tworzenie macierzy porównań M Dla każdego wiersza w tablicy reguł decyzyjnych tworzy się macierz porównań M poprzez porównanie danego wiersza z pozostałymi wierszami, które mają inną klasyfikację (decyzję) np. dla pierwszego wiersza macierz porównań M1 przedstawia poniższa tabela: Tabela 8 Utworzenie macierzy porównań M1 [5] a b c d e 1 0 0 1 1 a b c 1 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 0 0 1 1 0 1 0 0 1 0 1 1 1 0 2 2 1 1 0 1 2 2 0 2 2 1 1 1 1 2 2 2 2 2 M1 = d Pierwszy wiersz porównujemy z trzecim, czwartym, itd. aż do wiersza siódmego. Wiersz drugi w tym przypadku pomijamy ponieważ należy do tej samej klasyfikacji co wiersz pierwszy, czyli posiada taką samą wartość na wyjściu. Wyniki porównań zapisujemy w macierzy M, jeśli porównywane atrybuty różnią się, zapisujemy w macierzy wartość 1, jeśli są takie same zapisujemy wartość 0. 14 1.5.2. Wyznaczenie tablicy minimalnych pokryć M Tablicę pokryć minimalnych M (tab. 9) wyznacza się w następujący sposób: w macierzy porównań M wyszukujemy wszystkie możliwe kombinacje kolumn, gdzie w każdym wierszu wystąpi co najmniej jedna jedynka, przy czym powinna to być jak najmniejsza liczba kolumn, która spełnia ten warunek. W poniższym przykładzie mamy dwie możliwe kombinacje: kolumny a, b oraz b, d. Tabela 9 Minimalne liczby kolumn pokrywających macierz M (a,b oraz b,d) [5] a b c 0 1 1 0 0 1 0 1 0 0 0 1 0 0 0 1 0 1 0 1 0 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 a b c 1 0 d 1 d Następnie każdą kombinację kolumn zapisujemy w tablicy w taki sposób, że każdej wybranej kolumnie przypisujemy wartość 1. Poszczególne kombinacje kolumn tworzą kolejne wiersze tablicy minimalnych pokryć M. Jeżeli jakaś kolumna występuje we wszystkich wierszach tablicy wtedy jej atrybut jest atrybutem niezbędnym (nieusuwalnym) – co oznacza, że atrybut ten występuje w każdym wyniku algorytmu – nie może powstać rozwiązanie bez tego atrybutu. W literaturze [8] atrybut niezbędny definiowany jest w następujący sposób: Definicja Atrybut " jest nieusuwalny (niezbędny) z jeżeli # − {} ≠ $; w przeciwnym wypadku atrybut jest zbędny w . W poniższym przykładzie jest to kolumna b. Tabela 10 Tablica minimalnych pokryć M [5] a b c d 1 1 - - - 1 - 1 15 1.5.3. Wyznaczenie iloczynu kartezjańskiego zbiorów obiektów wszystkich tablic minimalnych pokryć M Po wyznaczeniu tablic minimalnych pokryć M musimy obliczyć iloczyn kartezjański zbiorów obiektów (wierszy) wszystkich tych tablic, w poniższym przykładzie mamy siedem tablic minimalnych pokryć M, zatem do sprawdzenia jest 2*2*1*1*1*3*4=48 siódemek uporządkowanych (zestawień wierszy po jednym z każdej tablicy). Większość wyników będzie się powtarzała lub będzie miała większe pokrycie. Z tablic minimalnych pokryć można wywnioskować, które atrybuty są atrybutami niezbędnymi: dla pierwszego wiersza będzie to b, dla wiersza drugiego a, trzeciego a, czwartego b i d, a piątego d. Wiersze szósty i siódmy nie mają atrybutów niezbędnych. a b c d 1 1 - - - 1 - 1 0 a b c d 1 0 1 1 - - 0 2 2 1 - - 1 2 2 0 2 2 2 2 2 2 2 a b c d 1 - - - a b c d - 1 - 1 a b c d e 1 0 0 1 1 1 0 0 0 1 0 0 0 0 1 1 0 1 1 a b c d 1 - - - a b c d a b c d - 1 - - 1 - - - - - 1 - - 1 - - 1 - - - - - - - - 1 1 Rysunek 1 Tablice minimalnych pokryć M [5] 16 - Po sprawdzeniu programem PROTON wszystkich zestawień okazało się że dla tego przykładu mamy tylko jedno minimalne rozwiązanie, zatem można zredukować kolumnę c. Tabelę reguł po zredukowaniu przedstawia ilustracja poniżej: Tabela 11 Zredukowana tablica reguł decyzyjnych [5] a b d e 1 0 1 1 1 0 0 1 0 0 0 0 1 1 1 0 1 1 2 2 2 2 2 2 17 2. Rozwiązanie problemu dużej złożoności obliczeniowej algorytmu redukcji w programie PROTON Ze względu na dużą złożoność obliczeniową zastosowałem nietypową strukturę danych. Wszystkie dane pośrednie w programie są przechowywane w 32 bitowym słowie. Umożliwia to szybkie operacje porównania całych wierszy i kolumn w jednym cyklu maszynowym procesora, co znacznie przyspieszyło program. 2.1. Wyznaczenie minimalnych pokryć M w programie PROTON Wyznaczenie minimalnych pokryć M jest bardzo pracochłonne ponieważ trzeba sprawdzić wszystkie kombinacje kolumn, dlatego też zastosowałem optymalizację, która umożliwia pominięcie bardzo wielu porównań. W poniższym przykładzie zaczynamy wyznaczanie minimalnego pokrycia od kolumny a, która na trzeciej pozycji (wierszu) ma wartość zero. Do następnego etapu brane są tylko te kolumny, które mają jedynkę na trzeciej pozycji. Kolumny te są następnie łączone z kolumną a przy użyciu funkcji OR, a następnie sprawdzane jest czy kolumna składa się wyłącznie z jedynek, jeśli nie w następnym kroku dokładana jest kolumna, która ma jedynkę w brakującym miejscu. Jeśli wynik sklejania kolumn składa się z samych jedynek to minimalnym pokryciem są kolumny które zostały sklejone. Tak wyznaczone pokrycia kolumn trzeba jeszcze porównać z innymi wyszukanymi dla tej samej tablicy, ponieważ pojawia się dużo powtórzeń albo wyników z większym pokryciem. Tabela 12 Przeszukiwane macierzy M w celu wyznaczenia minimalnych pokryć Źródło: opracowanie własne a b c d e f g h i 1 1 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 18 j 0 0 1 0 2.2. Wyznaczenie iloczynu kartezjańskiego wszystkich tablic minimalnych pokryć M w programie PROTON Wyznaczenie wszystkich zestawień wierszy z tablic pokryć M to kolejny mocno złożony obliczeniowo problem. Dzieje się tak ponieważ tablice pokryć M potrafią mieć setki wierszy, a należy sprawdzić wszystkie zestawienia tych wierszy. W wyniku badań algorytmu i eksperymentów zauważyłem, że dużo wyników się powtarza albo ma większe pokrycie. Obserwacje te umożliwiły mi opracowanie następującego algorytmu: W kroku pierwszym tworzymy tablicę wyników pośrednich gdzie zapisujemy iloczyn kartezjański pierwszej i drugiej tabeli minimalnych pokryć M, następnie wyniki pośrednie są sprawdzane pod kątem powtórzeń albo większego pokrycia. Ta operacja powoduje nawet usunięcie ponad 99% danych, które są nadmiarowe. W następnym kroku tworzymy kolejną tablicę wyników pośrednich, która jest wypełniana wszystkimi zestawieniami wierszy z poprzedniej tablicy pośredniej i z kolejnej tabeli pokryć M. W momencie kiedy wszystkie tabele pokryć M są przetworzone w tabeli pośredniej otrzymujemy interesujący nas wynik w postaci listy wszystkich minimalnych atrybutów. 19 3. Program PROTON 3.1. Założenia Celem mojej pracy było napisanie programu w języku C++, działającym pod systemem operacyjnym Microsoft Windows, którego zadaniem jest wyszukiwanie w tablicach decyzyjnych wszystkich minimalnych zbiorów atrybutów koniecznych do podjęcia prawidłowej decyzji. Zdecydowałem się na język programowania C++, ponieważ jest to język ogólnego przeznaczenia – służy do pisania programów i systemów operacyjnych. Język C++ jest niezależny od platformy sprzętowej, a kod maszynowy generowany przez kompilatory jest bardzo wydajny. Do tworzenia interfejsu graficznego oraz tworzenia wątków zastosowałem bibliotekę wxWidgets [1]. Jest to biblioteka klas C++, która umożliwia tworzenie oprogramowania dla różnych środowisk graficznych. Program można skompilować i uruchomić pod różnymi systemami operacyjnymi, np.: Windows, Linux, UNIX, MacOS X oraz niezależnie od platformy sprzętowej, np.: x86, x86-64, IA-64, Alpha, ARM, MIPS, PowerPC, SPARC/SPARC64. Projekt programu PROTON jest stworzony w zintegrowanym środowisku programistycznym wxDev-C++, w którego skład wchodzą: edytor kodu, kompilator MinGW oraz edytor interfejsu graficznego. 3.2. Opis programu Dzięki zastosowaniu interfejsu graficznego, obsługa programu jest prosta i intuicyjna. Dodatkowym atutem jest wykonywanie operacji redukcji w oddzielnych wątkach z bardzo niskim priorytetem. Umożliwia to jednoczesne normalne i komfortowe użytkowanie komputera bez widocznego obciążenia systemu. Program PROTON wykorzystuje wolną moc obliczeniową. Górne pole edycyjne jest przeznaczone do wprowadzania danych do programu oraz wyświetlania wyników jego pracy. Dane znajdujące się w tym oknie można dowolnie edytować. Dolne okno wyświetla komunikaty o postępie prac w trakcie działania programu. Na ich podstawie można oszacować czas zakończenia pracy programu. Pomiędzy oknami znajdują się cztery paski postępu, pokazują one postęp pracy poszczególnych wątków pracujących w tle. Program tworzy tyle wątków ile jest procesorów w systemie. Wykorzystuję tu najnowszy trend rozwoju komputerów czyli wieloprocesorowość. Interfejs graficzny programu przedstawiono na rysunku 2. 20 Rysunek 2 Widok ekranu programu PROTON Po prawej stronie okna programu znajdują się przyciski: OPEN - wczytywanie danych ( format ESPRESSO *.pla ) START - uruchamianie procesu redukcji STOP - przerywanie procesu redukcji SAVE - zapisywanie zawartości okna ( format tekstowy *.txt ) RES 1 - wyświetla pokrycia macierzy M RES 2 - wyświetla wynik redukcji w postaci liczbowej RES 3 - wyświetla wynik redukcji w notacji pozycyjnej 21 3.3. Zastosowania programu PROTON 3.3.1. Współpraca z programami LERS oraz ESPRESSO Program LERS (Learning from Examples based on Rough Sets) jak już wspomniano w części teoretycznej niniejszej pracy, został opracowany na Uniwersytecie Kansas przez pana profesora Jerzego W. Grzymala-Busse. Program ten pracuje w środowisku DOS, a ostatnia dostępna wersja pochodzi z czerwca 1992 roku. Zadaniem LERSa jest generowanie reguł na podstawie tablic decyzyjnych. Twórcą ESPRESSO jest prof. Robert K. Brayton, początkowo program został stworzony w IBM a następnie rozwijany na uniwersytecie Berkeley. Współpraca programu PROTON z wyżej wymienionymi programami zostanie przedstawiona na trzech przykładach. Przykład 1 Przykład wykorzystuje dane binarne z pliku N-House1, które składają się z 232 reguł decyzyjnych, gdzie każda reguła ma 16 argumentów i dwie możliwe decyzje 0 lub1 (dane załączono w Dodatku). W wyniku działania programu LERS otrzymujemy 14 reguł decyzyjnych wykorzystujących 9 argumentów (dla (d,1)). Natomiast wynik programu ESPRESSO daje 6 reguł wykorzystujących 11 argumentów. Wyniki przedstawiono na wydruku 1 i 2. Wydruk 1 Wynik programu LERS dla danych N-HOUSE (a4,1) & (a13,0) -> (d,1) (a3,0) & (a4,0) -> (d,1) (a3,0) & (a6,0) -> (d,1) (a3,0) & (a11,0) -> (d,1) (a13,0) & (a14,1) -> (d,1) (a6,1) & (a13,0) -> (d,1) (a1,0) & (a14,1) -> (d,1) (a4,1) & (a6,1) & (a14,1) & (a15,1) -> (d,1) (a11,1) & (a13,0) -> (d,1) (a3,0) & (a13,0) -> (d,1) (a1,0) & (a13,0) -> (d,1) (a6,1) & (a11,0) & (a14,0) -> (d,1) (a1,0) & (a4,0) & (a6,1) -> (d,1) (a1,0) & (a6,1) & (a15,0) & (a16,0) -> (d,1) (a6,0) & (a13,1) -> (d,0) (a1,0) & (a6,0) -> (d,0) (a4,1) & (a13,1) & (a14,0) & (a15,1) -> (d,0) (a1,1) & (a4,1) & (a13,1) & (a14,0) -> (d,0) (a4,0) & (a13,1) & (a14,1) -> (d,0) 1 Jeden z plików przykładowych programu LERS - głosy kongresmenów w sprawie 16 kluczowych problemów zebrane w roku 1984 (tak lub nie) [3]. 22 (a3,0) (a1,1) (a3,1) (a1,0) (a1,1) (a1,0) & & & & & & (a13,1) -> (d,0) (a4,0) & (a11,1) & (a13,1) -> (d,0) (a4,0) & (a6,0) & (a11,0) & (a14,0) -> (d,0) (a13,1) & (a16,1) -> (d,0) (a13,1) & (a15,0) -> (d,0) (a3,0) & (a4,1) -> (d,0) Wydruk 2 Wynik programu ESPRESSO dla danych N-HOUSE .i 16 .o 1 .p 6 -----1---0---1--1----------0-----0--0-------1----------1-0--------------01-0----1--------00 .e 1 1 1 1 1 1 W wyniku działania programu PROTON dla danych N-House otrzymujemy 4 minimalne zbiory atrybutów (redukty): 1,2,4,6,13,14,15,16 1,3,4,6,11,13,14,15,16 1,2,3,4,5,6,7,8,10,14,15,16 1,2,3,4,5,6,7,10,12,14,15,16 Po usunięciu kolumn tablic decyzyjnych tj. pozostawieniu tylko tych, które zaproponował program PROTON jako pierwszy wynik, czyli 1,2,4,6,13,14,15,16, w rezultacie działania programu LERS otrzymujemy 12 reguł decyzyjnych wykorzystujących 8 argumentów (dla (d,1)). Widzimy tutaj zdecydowaną poprawę wyniku, liczba reguł i argumentów została zredukowana. Wynik ESPRESSO natomiast daje 7 reguł wykorzystujących 8 argumentów. W tym przypadku liczba reguł zwiększyła się o jedną, ale zmniejszyła się liczba argumentów o 3. Wyniki przedstawiono na wydruku 3 i 4. Wydruk 3 Wynik programu LERS dla danych N-HOUSE po redukcji programem PROTON (a2,1) & (a13,0) -> (d,1) (a13,0) & (a14,1) -> (d,1) (a1,0) & (a14,1) -> (d,1) (a4,1) & (a6,1) & (a14,1) & (a15,1) -> (d,1) (a4,1) & (a13,0) -> (d,1) (a6,1) & (a13,0) -> (d,1) (a1,0) & (a2,1) & (a6,1) -> (d,1) (a4,0) & (a14,0) & (a15,1) -> (d,1) (a1,0) & (a13,0) -> (d,1) 23 (a1,0) (a1,0) (a1,0) (a6,0) (a1,0) (a1,1) (a4,0) (a2,1) (a2,0) (a4,1) (a1,0) (a1,1) & & & & & & & & & & & & (a4,0) & (a6,1) -> (d,1) (a2,1) & (a4,0) -> (d,1) (a6,1) & (a15,0) & (a16,0) -> (d,1) (a13,1) -> (d,0) (a6,0) -> (d,0) (a4,1) & (a13,1) & (a14,0) -> (d,0) (a13,1) & (a14,1) -> (d,0) (a13,1) -> (d,0) (a4,0) & (a6,0) & (a14,0) -> (d,0) (a13,1) & (a14,0) & (a15,1) -> (d,0) (a2,0) & (a16,1) -> (d,0) (a13,1) & (a15,0) -> (d,0) Wydruk 4 Wynik programu ESPRESSO dla danych N-HOUSE po redukcji programem PROTON .i 8 .o 1 .p 7 ----0--0 --0--01--11-11----01----10--0--1--00 -1--0--.e 1 1 1 1 1 1 1 Ze względu na wielowartościowe atrybuty w dalszej eksploracji danych wykorzystamy tylko programy LERS i PROTON, ponieważ program ESPRESSO działa wyłącznie na danych binarnych. Przykład 2 W przykładzie tym do wygenerowania reguł wykorzystam fikcyjne, przykładowe dane zawarte w tabeli 13. Symulacja pokazuje nie tylko wyniki, ale również metodę przygotowania i sformatowania danych w sposób zrozumiały dla poszczególnych programów. 24 Tabela 13 Przykładowa tablica reguł decyzyjnych x1 x2 x3 x4 y 1 6 2 5 1 2 5 4 3 2 3 4 6 1 3 4 3 1 6 1 5 2 2 5 2 6 1 3 4 3 1 2 4 3 1 3 4 5 2 2 5 6 6 1 3 Pierwszym krokiem będzie przygotowanie danych w formacie LERS. W pierwszym wierszu pomiędzy nawiasami ostrokątnymi <> podany jest rodzaj kolumny: a - atrybut, d - decyzja. W drugim wierszu pomiędzy nawiasami prostokątnymi [] podane są nazwy kolumn, które są następnie użyte w wygenerowanych regułach decyzyjnych (patrz wydruk 5). Wydruk 5 Przykładowa tablica reguł decyzyjnych w formacie LERS < [ 1 2 3 4 5 6 1 3 5 a a a x1 x2 6 2 5 5 4 3 4 6 1 3 1 6 2 2 5 1 3 4 2 4 3 4 5 2 6 6 1 a d > x3 x4 y ] 1 2 3 1 2 3 1 2 3 Wynik działania programu LERS w formacie LERS: Wydruk 6 Wynik działania programu LERS (x1,1) (x1,4) (x1,2) (x3,5) (x1,5) (x3,6) (x1,6) -> (y,1) -> (y,1) -> (y,2) -> (y,2) & (x2,2) -> (y,2) -> (y,3) -> (y,3) 25 oraz wynik działania programu LERS w formie tabelarycznej: Tabela 14 Przykładowa tablica reguł decyzyjnych po redukcji przez program LERS x1 x2 x3 x4 y 1 1 4 1 2 2 5 5 2 2 2 6 6 3 3 Jak widzimy do wygenerowanie reguł wystarczą kolumny x1, x2 i x3 jednak po analizie przykładowej tabeli 13 przez program PROTON okazało się, że do uzyskania prawidłowego wyniku wystarczą kolumny: 1,3 2,3 1,4 2,4 Mamy cztery możliwe kombinacje do wyboru. Do testów wybierzemy np. kolumnę 2 i 3, następnie przygotujemy dane w formacie LERS: Wydruk 7 Przykładowa tablica reguł decyzyjnych w formacie LERS, dane po obróbce przez program PROTON < [ 6 5 4 3 2 1 2 4 6 a a d > x2 x3 y ] 2 1 4 2 6 3 1 1 2 2 3 3 4 1 5 2 6 3 Wynik działania programu w formacie LERS przedstawiono na wydruku 8. Wydruk 8 Wynik działania programu LERS, dane po obróbce przez program PROTON (x2,3) (x2,6) (x2,2) (x2,5) (x3,5) -> (y,1) & (x3,2) -> (y,1) & (x3,4) -> (y,1) -> (y,2) -> (y,2) 26 (x2,2) & (x3,2) -> (y,2) (x3,6) -> (y,3) (x2,1) -> (y,3) Wynik w formie tabelarycznej przedstawiono w tabeli 15. Tabela 15 Przykładowa tablica reguł decyzyjnych po redukcji przez program LERS i po wcześniejszych obliczeniach programem PROTON x1 x2 x3 x4 3 y 1 6 2 1 2 4 1 5 2 2 5 2 2 2 6 3 1 3 Jak widać w przykładzie redukcja atrybutów dokonana przez program PROTON zmniejszyła ilość danych wejściowych potrzebnych do podjęcia decyzji. Przykład 3 W tym przykładzie celowo wykorzystam tablicę reguł decyzyjnych o większych rozmiarach, aby bardziej uwydatnić zalety programu PROTON. Do obliczeń pobrane będą fikcyjne dane zawarte w poniższej tabeli. Tabela 16 Przykładowa tablica reguł decyzyjnych x1 x2 x3 x4 x5 x6 y 1 1 1 1 1 1 1 1 2 2 2 2 1 2 1 1 3 3 3 2 3 1 2 1 4 4 2 4 1 1 2 1 5 3 5 2 2 3 2 5 3 1 2 1 1 3 4 4 2 2 2 2 4 3 4 3 2 1 3 1 2 5 4 2 2 1 2 1 5 5 27 Wynik działania programu LERS w formacie LERS: Wydruk 9 Wynik działania programu LERS (x5,1) (x5,5) (x5,2) (x4,3) (x5,3) (x4,4) (x5,2) (x5,5) (x5,1) & (x6,1) & (x3,3) & (x6,1) & (x5,4) -> (y,3) & (x5,4) & (x6,5) & (x3,2) & (x6,5) -> -> -> -> (y,1) (y,1) (y,2) (y,2) -> -> -> -> (y,4) (y,4) (y,5) (y,5) oraz wynik działania programu LERS w formie tabelarycznej: Tabela 17 Przykładowa tablica reguł decyzyjnych po redukcji przez program LERS i po wcześniejszych obliczeniach programem PROTON x1 x2 x3 x4 3 x5 x6 y 1 1 1 5 2 4 1 2 3 3 4 4 2 2 1 5 5 1 4 5 5 5 Jak widać LERS wygenerował reguły wykorzystując atrybuty: x3, x4, x5, x6. Przy użyciu programu PROTON wyszukujemy wszystkie minimalne zbiory atrybutów i przygotowujemy zredukowaną tablicę dla programu LERS: Wydruk 10 Wynik programy PROTON 1,5 2,5 2,6 3,4 3,6 4,5 4,6 1,2,3 28 Mamy aż 8 możliwych minimalnych zbiorów argumentów, z czego 7 dwuargumentowych i 1 trzyargumentowy. Wybieramy zbiór dwuargumentowy, np. kolumnę x3 i x4. Przygotowujemy dane jak na wydruku 11: Wydruk 11 Przykładowa tablica reguł decyzyjnych w formacie LERS, dane po obliczeniach programem PROTON < [ 1 2 3 1 2 3 1 2 3 1 a a d > x3 x4 y ] 1 1 2 2 3 3 4 4 1 5 2 1 3 2 4 3 1 4 2 5 Wynik działania programu w formacie LERS przedstawiono na wydruku 12: Wydruk 12 Przykładowa tablica reguł decyzyjnych po obróbce przez program PROTON i LERS (x4,1) (x3,3) (x4,3) (x3,2) (x4,3) (x4,4) (x4,4) (x3,3) (x3,2) (x4,2) & & & & & & & & & & (x3,1) (x4,2) (x3,1) (x4,2) (x3,3) (x3,2) (x3,1) (x4,1) (x4,1) (x3,1) -> -> -> -> -> -> -> -> -> -> (y,1) (y,1) (y,2) (y,2) (y,3) (y,3) (y,4) (y,4) (y,5) (y,5) 29 oraz w formie tabelarycznej: Tabela 18 Przykładowa tablica reguł decyzyjnych po redukcji przez program LERS i po wcześniejszych obliczeniach programem PROTON x1 x2 x3 x4 x5 x6 y 1 1 1 3 2 1 1 3 2 2 2 2 3 3 3 2 4 3 1 4 4 3 1 4 2 1 5 1 2 5 Z powyższych przykładów wynika że programy PROTON i LERS znakomicie się uzupełniają. Program PROTON minimalizuje liczbę atrybutów dla danych potrzebnych do prawidłowego podjęcia decyzji. Ponadto atutem programu PROTON jest to, że wyszukuje on wszystkie minimalne zbiory, co umożliwia znalezienie optymalnego zbioru atrybutów. Wiele tablic często jest łączone szeregowo lub równolegle w większe systemy. Dzięki temu, że program PROTON wyszukuje wszystkie minimalne zbiory atrybutów, umożliwia to dla wielu tablic znaleźć powtarzające się kombinacje atrybutów, i uzyskać możliwość dalszej optymalizacji. Wyszukiwanie wszystkich minimalnych zbiorów atrybutów lub argumentów może przynosić zaskakujące rezultaty. Dla przykładu program PROTON w tablicy prawdy kaz.pla która składa się 31 reguł a każdy wiersz z 21 argumentów wyszukuje 5574 minimalnych zbiorów argumentów. Kolejny przykład, tablica trains.pla (Wydruk 13 Plik trains.pla pozbawiony komentarzy, dane w formacie ESPRESSO akceptowanym przez program PROTON), składa się z 10 reguł a każdy wiersz z 32 atrybutów; program PROTON wyszukuje 689 minimalnych zbiorów atrybutów. 30 Wydruk 13 Plik trains.pla pozbawiony komentarzy, dane w formacie ESPRESSO akceptowanym przez program PROTON .type fdr .i 32 .o 1 .ilb size load w0 l0 s0 n0 ls0 w1 l1 s1 n1 ls1 w2 l2 s2 n2 ls2 w3 l3 s3 n3 ls3 a b c d e f g h i j .ob direction .mv 10 .mvc 0 1 2 4 5 6 7 9 10 11 12 14 15 16 17 19 20 21 23016320081311611006100100010010 0 12009130071200020-----0101000000 0 11006100041311013-----0000101000 0 21007130011300212006121100100000 0 12001131101200010-----0101000000 0 010103000613----------0000001000 1 1100110009130150------0000001000 1 011101200910----------0001000000 1 21007100151200612007101001000000 1 000091201622----------1000000000 1 .end Wydruk 14 Plik kaz.pla 100110010110011111101 111011111011110111100 001010101000111100000 001001101100110110001 100110010011011001101 100101100100110110011 001100100111010011011 001101100011011011001 110110010011001001101 100110110011010010011 110011011011010001100 010001010000001100111 100110101011111110100 111001111011110011000 101101011100010111100 110110000001010100000 110110110111100010111 110000100011110010001 001001000101111101101 100100011111100110110 100011000110011011110 110101000110101100001 110110001101101100111 010000111001000000001 001001100101111110000 100100111111001110010 000010001110001101101 101000010100001110000 101000110101010011111 101010000001100011001 011100111110111101111 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 31 Podsumowanie Redukcja atrybutów jest procesem stosowanym w optymalizacji reguł decyzyjnych pierwotnie opisywanych tablicami decyzyjnymi. Zagadnienie to jest analogiczne jak w redukcji argumentów funkcji boolowskich opisywanych tablicami prawdy. Znaczenie obu tych procesów jest z natury rzeczy całkowicie inne, a mianowicie: redukcję atrybutów stosuje się w zagadnieniach należących do eksploracji danych, natomiast redukcję argumentów coraz częściej stosuje się w syntezie logicznej układów cyfrowych, w szczególności dla struktur programowalnych typu FPGA. Różnica pomiędzy atrybutami a argumentami polega na tym, że argument przyjmuje tylko dwie wartości: zero lub jeden, natomiast atrybut przyjmuje wiele różnych wartości. Niniejsza praca wykazuje, że algorytmy redukcji atrybutów mogą być z powodzeniem stosowane również do redukcji argumentów w tablicach prawdy. Dzięki optymalizacji uwzględniającej redukcję argumentów układy cyfrowe są szybsze, pobierają mniej prądu, a także struktura logiczna układu zajmuje mniejszą powierzchnię, i w rezultacie można stosować mniejszy i tańszy układ scalony. W przypadku tablic decyzyjnych proces ten zmniejsza rozmiary tablic i jednocześnie zmniejsza czas potrzebny na podjęcie decyzji. Zadaniem niniejszej pracy była implementacja algorytmu redukcji atrybutów/argumentów w celu stworzenia warunków do przeprowadzenia eksperymentów badających wpływ takiej redukcji na dalsze procedury optymalizacyjne. Znaczenie przeprowadzenia takich eksperymentów zostało już zasygnalizowane w rozdz. 3.3, w którym pokazano jak redukcja argumentów wpływa na wyniki minimalizacji funkcji boolowskich realizowane słynnym programem ESPRESSO, jak też pokazano wpływ redukcji atrybutów na generację reguł decyzyjnych realizowaną wzorcowym w tych zadaniach programem LERS. Wymowny jest przykład House, który potwierdza, że redukcja atrybutów zmniejsza liczbę reguł decyzyjnych, zatem jest to dodatkowa procedura optymalizacji w zadaniach klasyfikacji danych. Przykład jednocześnie wskazuje, że skuteczność uogólniania reguł w algorytmach programu LERS jest mniejsza niż w programie ESPRESSO. Ogólnie można stwierdzić, że zakres zastosowania redukcji argumentów jest w syntezie logicznej znacznie szerzej stosowany (np. w procedurach dekompozycji). Z tych powodów wprowadzona do programu PROTON możliwość obliczania wszystkich reduktów jest – w porównaniu do możliwości programu PANDOR – znaczącym krokiem w rozwoju metod dekompozycji równoległej. Należy zaznaczyć, że z technicznego punktu widzenia w programie PROTON zastosowano odmienne podejście do problemu redukcji atrybutów niż w dotychczasowych (i dostępnych autorowi) implementacjach. W szczególności rozwój komputerów osobistych i ciągle rosnąca moc obliczeniowa były stymulantą do opracowania algorytmu dokładnego. Pomimo wielokrotnie większej złożoności obliczeniowej zastosowanego algorytmu względem algorytmów heurystycznych dzisiejsze komputery bez problemów wyszukują wszystkie minimalne zbiory atrybutów w rozsądnym czasie. Na przykład dla tablicy Kaz.pla komputer z procesorem Intel Core2Duo E8400 3Ghz wyszukuje wszystkie! rozwiązania (ich liczba 32 wynosi 5574) w czasie około 1 godziny. Nowoczesna synteza logiczna wymaga stosowania wszystkich reduktów, nie tylko minimalnych. Ciekawym zastosowaniem programu PROTON mogą być eksperymenty mające na celu zbadanie wpływu nieznanych wartości atrybutów („nieokreśloności”) na jakość generacji reguł decyzyjnych. Zdaniem wielu autorów [10] jest to ważny problem, ale niestety – w porównaniu do metod syntezy logicznej - wiele metod odkrywania wiedzy, w szczególności metod indukcji reguł decyzyjnych, nie jest przystosowanych do uwzględniania niezdefiniowanych wartości. 33 Dodatek Wydruk 15 Dane N-HOUSE w formacie ESPRESSO (house.pla) .type fr .i 16 .o 1 .p 232 1111000000110110 1011100000111010 1100010111000111 1100000111000111 1100001111000101 1100010111000101 1100010111000111 1011100111011001 1100010111000111 0011100000111010 1101001111000111 1011100000111010 1100000111000111 0011100000111010 1011000000111011 0011101000111010 1101011111000101 1000000111000101 1100000111000101 1000000111000111 1010000011000111 1100010111000111 0011101000111011 0011111000111010 1011111000111010 1011101000111010 1011101000111010 0011100000111010 1000010111000111 1011100001111011 1011110001111010 0011101000111010 1100000111000111 1010011111001111 1011001101011101 1110011111100101 0011011000111110 1011111110111110 1011011000110111 0011101000011000 1011101000111000 0011100000111000 1011111000110100 0011101000111000 0011100000111000 1011011101110110 1100001111000101 1100011111000101 1100011101000101 1000000000110101 1010011001110001 1000001111100111 1010110000110001 1010010001110101 1 0 1 1 1 1 1 0 1 0 1 0 1 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1011101101111110 1011100000111010 1011101100111010 1011101000111010 1010101000111000 1100000111000100 1001100011100101 1110001001111000 1110011111000101 1100001110000101 1100011111000101 0011100000111010 0011100000111010 1100000111100111 1011100000111010 1000001111000101 1110001111000101 0010100000011000 1100010111000100 1000000111000101 1000001111000101 1000001111000101 1010101000111000 1010001111000001 1000000111000101 1100000111000111 1110001001011001 0111100000111000 1010001011111100 1011100000111000 0011101000111000 1010001111000100 1011100000111000 1100011111100100 1111011010110111 1111011011100101 1111011111100111 1111101000111100 1100011111000010 1111001111100110 1011101111011000 1011101001111000 0011100000111000 0011101000111000 0011100000111000 0011101000111000 1110001111100001 0111101000111000 1001001111100100 1100001111000111 1011101000111110 1111110011111010 0111110110100000 1100001111000001 1011001110100110 1001001111000111 0011110000111010 1010010111001011 34 0 0 0 0 0 1 1 0 1 1 1 0 0 1 0 1 1 0 1 1 1 1 0 0 1 1 0 0 0 0 0 1 0 1 1 1 1 0 1 1 0 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 1 1100010110000111 1011100000111010 1100001111000100 1100010111000101 1011100001011111 1100011110000110 0011100000111000 1010101000111000 1010001110100100 1011101000111000 0011101000111000 1001111000111010 1010001111100100 1100000111100101 1011001111001000 1011101111111000 1011100000111010 1111101111000000 1011111000111010 1101001111000100 1011101000111011 1101011110100110 1011011111100100 0011100000111010 0011100001111011 0011101000111010 1111100000110010 1011100001110000 1011110001110110 1011100001111010 1110101011111101 1110111011111101 1010011111000101 1011111000110000 1100001111000110 1110001111001100 1100001111000101 1100011111000100 1100011111000100 1100011111000110 1100000111000101 1110010111100000 1100000111000100 1110000111000100 1100000111000111 1100011111100101 1100001111000101 1011100001111100 1000101111100100 1010101000111000 1000011111000111 1100000111100100 1011101000111010 1100010111000100 1101010110100110 1011101000111011 0011101000111010 1110010110000110 1011100000011000 1110010111100100 1 0 1 1 0 1 0 0 1 0 0 0 1 1 0 0 0 1 0 1 0 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 0 1 1 0 0 1 0 1 1011100000111010 1000010111000111 0011101000111010 1100000111000100 1100000111000101 1110001111000101 0011110000111001 1010111000111000 1010001101011000 1100011111000100 1110101001111000 1011101000111000 0011101000111001 1011100111111110 1100010101100010 1111101111111100 1011111001111100 1110001110001101 0011100000111000 0011100000111000 1001001111100101 1001111111100111 0001011000111011 1011010000111011 0011011000110010 1100001011100110 1011000000111010 1011100000111010 0010110000111010 1011100000111000 1011100000111000 1000011110110111 1011110000111111 0111110000110011 0100010110000011 1011110000111011 1101010010110111 1000000010110110 0011111000111010 1011101000111011 1011100000111000 1011001100110101 0011110000111000 0011100000111000 1011110000111000 1000011111100101 1011101000111000 1000000111000111 1011001000111011 1001011111000111 1000001011000111 1000000111000111 1011001011111111 1101010011110110 1100010111100100 1110010111100110 1100001111000101 1011101011111000 1011101100111100 1000001111000100 .e 35 0 1 0 1 1 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 1 1 0 0 1 0 0 1 1 1 1 0 1 1 0 0 0 1 1 0 0 1 0 1 0 1 1 1 0 1 1 1 1 0 0 1 Bibliografia [1] Ganczarski J., Owczarek M.: C++ Wykorzystaj potęgę aplikacji graficznych. Wydawnictwo HELION, 2008. [2] Gatnar E.: Symboliczne metody klasyfikacji danych. Wydawnictwo Naukowe PWN, Warszawa, 1998. [3] Grzymala-Busse J. W.,Ming Hu.: A Comparison of Several Approaches to Missing Attribute Values in Data Mining.., http://sci2s.ugr.es/keel/pdf/specific/congreso/grzymala_busse_hu01.pdf, 2001. [4] Grzymala-Busse, J.W., Sikora D.J.: LERS - A system for learning from examples based on rough sets. Raport TR-88-5, 1988. [5] Łuba T.: Synteza układów logicznych. Oficyna Wydawnicza Politechniki Warszawskiej, Warszawa, 2005. [6] Łuba T., Lasocki R.: On Unknown Attribute Values in Functional Dependencies. Proc. of The Third International Workshop on Rough Sets and Soft Computing, pp.490-497, San Jose, 1994. [7] Majczak A. C++ przykłady praktyczne. Wydawnictwo MIKOM, Warszawa, 2003. [8] Mrózek A., Płonka L.: Analiza danych metodą zbiorów przybliżonych Akademicka Oficyna Wydawnicza PLJ, Warszawa, 1999. [9] Nowak A.: Zbiory przyblizone w obszarze systemów ekspertowych. http://zsi.tech.us.edu.pl/~anowak/index.php?s=file_download&id=22 , 2007. [10] Nowicki R. K.: Rozmyte systemy decyzyjne w zadaniach z ograniczoną wiedzą, Akademicka Oficyna Wydawnicza EXIT, Warszawa, 2009. [11] Pawlak Z.: Rough Sets International Journal of Information and Computer Sciences, vol. 11, pp. 341-345, 1982. [12] Pawlak Z.: Zbiory przybliżone nowa matematyczna metoda analizy danych http://bcpw.bg.pw.edu.pl/Content/2031/zbiory_przyblizone_nowa_mat._metoda_analizy_danych.pdf , 2004. [13] Rauszer C., Skowron A.: The Discernibility Matrices and Functions in Information Systems. In Intelligent Decision Support - Handbook of Application and Advanced of the Rough Sets Theory. Kluwer Academic Publisher, Dordrech, 1992. 36