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

Podobne dokumenty