Podręcznik
8. Redukcja atrybutów
8.2. Algorytm redukcji atrybutów
Systemy informacyjne i systemy decyzyjne są redukowalne co najmniej na dwa sposoby, tj. te same lub nierozróżnialne obiekty mogą być reprezentowane przez tablice wielokrotnie lub – niektóre atrybuty mogą być nadmiarowe [2.19]. Omówione w poprzednim podrozdziale relacje nierozróżnialności oraz zgodności mogą zostać wykorzystane do realizacji zadania redukcji. Nie należy ich traktować jako konkurencyjne techniki, lecz wręcz przeciwnie – jak pokazano w tym rozdziale – techniki, które wzajemnie się uzupełniają.
Niech A = (U, A È D), gdzie A Ç D = Æ, będzie systemem decyzyjnym, gdzie zbiory A, D są odpowiednio zbiorami atrybutów warunkowych oraz decyzyjnych.
Każdy system informacyjny A generuje r-podziały P(A), P(D), gdzie atrybuty ai generują poszczególne r-podziały . r-podziały reprezentują klasy zgodności COM na zbiorze U. Niech B Í A będzie podzbiorem atrybutów oraz up, uq Î U. Para (up, uq) Î COM(B) wtedy i tylko wtedy gdy ρ(up, ai) ~ ρ(uq, ai) dla każdego ai Î B. Jeśli zapiszemy klasy zgodności COM(B) jako P(B),wtedy:
Używając r-podziałów generowanych zbiorem atrybutów możemy wprowadzić pojęcie zależności funkcjonalnej pomiędzy rozłącznymi podzbiorami A oraz D. Mówimy, że D jest funkcjonalnie zależny od A (symbolicznie A Þ D), wtedy i tylko wtedy gdy P(A) jest nie większy niż P(D), (tzn. P(A) £ P(D)). W terminach systemów informacyjnych znaczy to, że zbiór atrybutów D zależy od zbioru atrybutów A. Inaczej mówiąc, jeśli tylko para obiektów nie może być rozróżniona atrybutami ze zbioru A, to również nie można tych obiektów rozróżnić atrybutami ze zbioru D.
Uproszczenie systemu decyzyjnego z punktu widzenia minimalnego zbioru atrybutów zachowujących zdolności klasyfikacyjne systemu (lub zależność funkcjonalną A Þ D) należy do zadań określanych mianem redukcji wiedzy. Redukcja wiedzy w systemach decyzyjnych polega na redukcji liczby atrybutów warunkowych, czyli wyznaczaniu tak zwanych reduktów oraz usuwaniu nadmiarowych obiektów/reguł.
Tablica 2.31
A |
a1 |
a2 |
a3 |
a4 |
a5 |
a6 |
D |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
2 |
1 |
0 |
0 |
0 |
1 |
3 |
2 |
3 |
1 |
1 |
0 |
2 |
2 |
3 |
3 |
4 |
1 |
1 |
0 |
2 |
3 |
3 |
2 |
5 |
1 |
1 |
1 |
0 |
2 |
3 |
4 |
6 |
0 |
0 |
2 |
0 |
2 |
3 |
1 |
7 |
1 |
1 |
2 |
0 |
2 |
2 |
5 |
8 |
1 |
1 |
2 |
0 |
2 |
3 |
6 |
9 |
1 |
0 |
2 |
2 |
1 |
3 |
6 |
10 |
1 |
1 |
2 |
2 |
3 |
1 |
7 |
Zbiór B Í A jest reduktem systemu decyzyjnego A = (U, A È D) wtedy i tylko wtedy, gdy P(B) £ P(D) oraz nie istnieje podzbiór właściwy B’ zbioru B taki, że P(B’) £ P(D). Inaczej mówiąc, reduktem systemu decyzyjnego A = (U, A È D), w którym A Þ D, jest zbiór B Í A taki, że B Þ D oraz nie istnieje podzbiór właściwy B’ zbioru B, gdzie B’ Þ D. Atrybut a Î A nazywamy atrybutem zbędnym w systemie decyzyjnym A wtedy i tylko wtedy, gdy P(A \ {<i>a</i>}) £ P(D), w przeciwnym przypadku a jest atrybutem niezbędnym. Zbiór wszystkich atrybutów niezbędnych nazywamy rdzeniem systemu decyzyjnego lub po prostu rdzeniem.
Obliczymy niezbędność atrybutów dla tablicy decyzyjnej z tabl. 2.31. Skoro P(A \ {<i>a</i><sub>1</sub>}) £ P(D), a1 jest zbędny dla zależności funkcjonalnej A Þ D. W przeciwieństwie, a3 jest atrybutem niezbędnym, gdyż P(A \ {<i>a</i><sub>3</sub>})
Tablica 2.32
A‘ |
a1 |
a3 |
a5 |
a6 |
D |
1 |
0 |
0 |
0 |
0 |
1 |
2 |
1 |
0 |
1 |
3 |
2 |
3 |
1 |
0 |
2 |
3 |
3 |
4 |
1 |
0 |
3 |
3 |
2 |
5 |
1 |
1 |
2 |
3 |
4 |
6 |
0 |
2 |
2 |
3 |
1 |
7 |
1 |
2 |
2 |
2 |
5 |
8 |
1 |
2 |
2 |
3 |
6 |
9 |
1 |
2 |
1 |
3 |
6 |
10 |
1 |
2 |
3 |
1 |
7 |
Pojęciami podstawowymi w algorytmie redukcji atrybutów są: macierz porównań oraz funkcja rozróżnialności. Można wtedy wykazać, że między reduktami systemu decyzyjnego A, a implikantami funkcji rozróżnialności fA , która w rzeczywistości jest monotoniczną funkcją boolowską, zachodzi następujący związek:
, wtedy i tylko wtedy, gdy jest implikantem prostym
Natomiast, wyznaczenie implikantów prostych odbywa się – na przykład – za pomocą przekształcenia monotonicznej funkcji rozróżnialności w postaci iloczynu sum boolowskich do postaci sumy iloczynów. Zgodnie z podrozdziałem 2.6.2, można do tych obliczeń zastosować efektywny algorytm uzupełnienia funkcji boolowskiej.
Funkcja rozróżnialności dla systemu decyzyjnego z tabl. 2.31 jest następująca:
Wtedy macierz porównań powstaje w wyniku rozróżnienia par obiektów wskazanych w r-podziale ilorazowym (tabl. 2.34).
Tablica 2.34
p, q |
atrybuty rozróżniające |
1,7 |
{<i>a</i><sub>2</sub>,<i>a</i><sub>3</sub>,<i>a</i><sub>4</sub>,<i>a</i><sub>5</sub>} |
3,5 |
{<i>a</i><sub>2</sub>,<i>a</i><sub>3</sub>,<i>a</i><sub>4</sub>} |
3,6 |
{<i>a</i><sub>2</sub>,<i>a</i><sub>4</sub>} |
3,7 |
{<i>a</i><sub>3</sub>,<i>a</i><sub>4</sub>,<i>a</i><sub>5</sub>} |
5,6 |
{<i>a</i><sub>2</sub>,<i>a</i><sub>3</sub>,<i>a</i><sub>4</sub>} |
5,7 |
{<i>a</i><sub>2</sub>,<i>a</i><sub>3</sub>,<i>a</i><sub>4</sub>,<i>a</i><sub>5</sub>} |
6,7 |
{<i>a</i><sub>2</sub>,<i>a</i><sub>3</sub>,<i>a</i><sub>4</sub>,<i>a</i><sub>5</sub>} |
2,5 |
{<i>a</i><sub>4</sub>,<i>a</i><sub>5</sub>} |
Zapisując macierz porównań w postaci funkcji rozróżnialności otrzymujemy: fA = (a2+a4)(a4+a5), ponieważ wiele czynników tego wyrażenia upraszcza się ze względu na własność pochłaniania. Ostatecznie po przekształceniu iloczynu sum do sumy iloczynów otrzymujemy: fA = a4 + a2a5.
Stąd, łącząc poszczególne składniki fA z rdzeniem R = {<i>a</i><sub>1</sub>, <i>a</i><sub>6</sub>} otrzymujemy wszystkie redukty systemu decyzyjnego z tabl. 5.4: {<i>a</i><sub>1</sub>,<i>a</i><sub>4</sub>,<i>a</i><sub>6</sub>}, {<i>a</i><sub>1</sub>,<i>a</i><sub>2</sub>,<i>a</i><sub>5</sub>,<i>a</i><sub>6</sub>}.
oraz , następujący r-podział ilorazowy:
Zgodnie z metodą omawianą w podrozdz. 2.6.1 w celu obliczenia reduktów należy obliczyć zmienne niezbędne, a następnie obliczyć podział ilorazowy PN|PD, gdzie PN reprezentuje iloczyn podziałów indukowanych zmiennymi niezbędnymi. Podział PN|PD stanowi punkt wyjścia do obliczenia tablicy porównań.
Zgodnie z metodą omawianą w podrozdz. 2.6.1 w celu obliczenia reduktów należy obliczyć zmienne niezbędne, a następnie obliczyć podział ilorazowy PN|PD, gdzie PN reprezentuje iloczyn podziałów indukowanych zmiennymi niezbędnymi. Podział PN|PD stanowi punkt wyjścia do obliczenia tablicy porównań.
Dla funkcji z tabl. 2.35 zmiennymi niezbędnymi są a4 i a6.
Tablica 2.35
|
a1 |
a2 |
a3 |
a4 |
a5 |
a6 |
a7 |
d |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
2 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
3 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
4 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
5 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
6 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
7 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
8 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
9 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
Odpowiednie obliczenia prowadzące do uzyskania podziału ilorazowego są następujące:
Na tej podstawie tworzymy tablicę porównań (tabl. 2.36), której ostateczna postać nie zawiera nadmiarowego wiersza oznaczonego 4,6.
Tablica 2.36
p, q |
Zmienne rozróżniające |
1,5 |
{<i>a</i><sub>1</sub>,<i>a</i><sub>2</sub>} |
1,7 |
{<i>a</i><sub>3</sub>,<i>a</i><sub>5</sub>,<i>a</i><sub>7</sub>} |
1,9 |
{<i>a</i><sub>2</sub>,<i>a</i><sub>3</sub>} |
4,6 |
{<i>a</i><sub>2</sub>,<i>a</i><sub>3</sub>,<i>a</i><sub>7</sub>} |
4,8 |
{<i>a</i><sub>2</sub>,<i>a</i><sub>7</sub>} |
Zbiory atrybutów w poszczególnych wierszach tablicy porównań reprezentują czynniki wyrażenia boolowskiego typu iloczyn sum, które następnie jest przekształcane do postaci typu suma iloczynów. Po uwzględnieniu atrybutów niezbędnych z wyrażenia typu suma iloczynów uzyskujemy wszystkie redukty funkcji z tabl. 2.35:
{<i>a</i><sub>2</sub>,<i>a</i><sub>3,</sub><i>a</i><sub>4</sub>,<i>a</i><sub>6</sub>}
{<i>a</i><sub>2</sub>,<i>a</i><sub>4</sub>,<i>a</i><sub>5</sub>,<i>a</i><sub>6</sub>}
{<i>a</i><sub>2</sub>,<i>a</i><sub>4</sub>,<i>a</i><sub>6</sub>,<i>a</i><sub>7</sub>}
{<i>a</i><sub>1</sub>,<i>a</i><sub>3,</sub><i>a</i><sub>4,</sub><i>a</i><sub>6</sub>,<i>a</i><sub>7</sub>}
Nietrudno zauważyć, że redukcja atrybutów jest takim samym zadaniem z jakim mieliśmy do czynienia w zagadnieniach redukcji argumentów. Można zatem skorzystać z doświadczeń i metod syntezy logicznej wypracowanych w technice cyfrowej. Godnym polecenia wydaje się algorytm uzupełniania funkcji boolowskich zastosowany do obliczania transformacji CNF na DNF. Jest to istotne o tyle, że transformacja ta jest wykorzystywana w modelowym systemie eksploracji danych jakim jest RSES [5.25]. Równoważność tych dwóch procesów najłatwiej wyjaśnić na przykładzie tablicy funkcji boolowskiej (tabl. 2.35) omawianej w rozdz. 2.6. Interpretując czynniki wyrażenia CNF tej funkcji
jako kostki funkcji boolowskiej, nietrudno zauważyć, że uzupełnienie tej funkcji reprezentowane jest kostkami: a2a3; a2a5; a2a7; a1a3a7.
Taki sam wynik uzyskuje się dokonując transformacji CNF na DNF (por. rozdz.2.6).
Z dokonanego przeglądu systemów klasyfikacji danych wynika, że stosowane w nich algorytmy redukcji atrybutów są mało skuteczne. Potwierdzeniem tego przypuszczenia są eksperymenty przeprowadzone ze znanym i powszechnie stosowanym do tych obliczeń systemem RSES [2.28]. Wykazano, że system ten nie radzi sobie z tablicami danych o dużej liczbie nieokreśloności. Wymownym przykładem jest często cytowana logistyczna baza danych trains (tabl. 2.37).
Tablica 2.37
.type fr .i 32 .o 1 .p 10 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 |
Dla bazy trains program opracowany z zastosowaniem metody uzupełnienia funkcji boolowskiej generuje 689 reduktów, natomiast RSES zaledwie 333 (z pominięciem opcji Don’t discern with missing values). Natomiast uruchomienie RSES dla opcji Don’t discern with missing values kończy się (po kilku godzinach obliczeń) komunikatem Not enough memory. Istotnym jest, że pominięcie opcji Don’t discern with missing values skutkuje uwzględnianiem brakujących wartości podczas tworzenia macierzy porównań. Inaczej mówiąc, w czasie wyznaczania zbioru atrybutów na których różnią się dwa wybrane obiekty, odróżniane są te o wartości NULL. W rezultacie takiego postępowania otrzymujemy wynik, który jest różny od zbioru wszystkich minimalnych zbiorów atrybutów.
Innym przykładem potwierdzającym bezwzględną przewagę metody uzupełnienia funkcji boolowskiej w metodzie redukcji atrybutów jest funkcja KAZ (tabl. 2.38). Jest to funkcja 21 argumentów binarnych, często stosowana w testowaniu zaawansowanych narzędzi syntezy logicznej. Otóż program RSES oblicza wszystkie 5574 redukty tej funkcji w ciągu 39 minut, natomiast opracowana i zaimplementowana procedura z zastosowaniem algorytmu uzupełnienia tworzy zbiór wszystkich 5574 reduktów w czasie 2.5 s.
Tablica 2.38
type fr .i 21 .o 1 .p 31 100110010110011111101 1 111011111011110111100 1 001010101000111100000 1 001001101100110110001 1 100110010011011001101 1 100101100100110110011 1 001100100111010011011 1 001101100011011011001 1 110110010011001001101 1 100110110011010010011 1 110011011011010001100 1 010001010000001100111 0 100110101011111110100 0 111001111011110011000 0 101101011100010111100 0 110110000001010100000 0 110110110111100010111 0 110000100011110010001 0 001001000101111101101 0 100100011111100110110 0 100011000110011011110 0 110101000110101100001 0 110110001101101100111 0 010000111001000000001 0 001001100101111110000 0 100100111111001110010 0 000010001110001101101 0 101000010100001110000 0 101000110101010011111 0 101010000001100011001 0 011100111110111101111 0 .end |