9. Indukcja reguł decyzyjnych

9.1. Strategia dwustopniowej selekcji reguł

Naturalną strategią indukcji reguł jest strategia dwustopniowej selekcji reguł. W strategii tej dla każdego obiektu ui klasy K tworzy się zbiór wszystkich minimalnych reguł pozytywnych (ozn. R(ui )). Suma zbiorów R(ui ) dla wszystkich obiektów klasy K tworzy rodzinę minimalnych reguł tej klasy. Rodzina ta jest następnie poddawana procesowi selekcji, którego  celem jest wyznaczenie minimalnej rodziny minimalnych reguł. Zarówno w procesie uogólniania pojedynczego obiektu, jak też w procesie selekcji korzysta się z pojęcia pokrycia kolumnowego binarnej macierzy M, omawianym już w rozdz. 1.2.

 

Obliczanie pokrycia kolumnowego jest standardowym zadaniem polegającym na transformacji wyrażenia boolowskiego typu CNF (Conjunctive Normal Form) na wyrażenie DNF (Disjunctive Normal Form). W wyrażeniu CNF czynniki koniunkcji są dysjunkcjami zmiennych boolowskich etykietujących te kolumny M dla których w danym wierszu mij=1. Liczba czynników jest równa liczbie wierszy macierzy M. Istotnym problemem jest transformacja CNF na DNF, gdyż składniki wyrażenia DNF są koniunkcjami zmiennych reprezentujących kolumny macierzy M.

 

Zastosowanie pokrycia kolumnowego do uogólnienia reguły decyzyjnej obiektu ui dotyczy tzw. macierzy rozróżnialności.

 

Macierz rozróżnialności tworzymy przez porównanie obiektu ui z każdym obiektem uj należącym do innej klasy decyzyjnej. Porównanie polega na utworzeniu binarnego wektora w, w którym na pozycja k jest wartość zero, jeśli wartość atrybut Ak(ui) obiektu ui jest taka sama jak wartość atrybutu Ak(uj) obiektu uj lub co najmniej jedna z tych wartości jest nieokreślona. W przeciwnym przypadku wartość składowej k  wektora w jest równa jeden. Zbiór wektorów w tworzy macierz rozróżnialności.

 

Z definicji macierzy rozróżnialności wynika, że aby uogólniona reguła obiektu ui nie pokrywała zdanego obiektu innej klasy decyzyjnej, to w odpowiedniej R(ui) należy  zostawić atrybuty, które odróżniają R(ui) od każdego obiektu innej klasy decyzyjnej.

 

Istotę zjawiska możemy zaobserwować na hipotetycznym przykładzie reprezentującym wyniki sondażu przed wyborami prezydenckimi w pewnej republice.

 

Sondaż przed wyborami prezydenckimi w pewnej republice przeprowadzono wg reguł decyzyjnych uzyskanych z danych (tabl. 2.39) reprezentujących odpowiedzi na pytania (tak, nie) uzyskane od 9 respondentów. W tablicy tej odpowiedziom tak przyporządkowano war­tość 1, odp. nie – 0, przy jednoczesnym wyróżnieniu zwolenników ocenianego kandydata na prezy­denta atrybutem TAK, a przeciw­ników, atry­butem NIE. Celem jest obliczenie uogólnionych reguł decyzyjnych określających zwolenników tego kandydata dla respondentów o dowolnych odpowiedziach na pytania sondażowe.

 

Tablica 2.39

 

a1

a2

a3

a4

a5

a6

a7

d

1

1

0

0

0

1

1

0

1

2

0

1

0

0

1

0

1

1

3

1

0

1

0

0

0

0

1

4

1

0

1

0

1

1

0

1

5

1

1

1

0

1

0

1

1

6

1

0

0

0

1

0

1

0

7

1

0

1

1

1

1

0

0

8

1

1

0

1

1

1

0

0

9

1

1

1

0

1

1

1

0

 

Na przykład dla obiektu u1 systemu decyzyjnego z tablicy 2.39 odpowiednia macierz rozróżnialności będzie:

 

\mathbf{M} =\begin{matrix} \begin{array}{ c c c c c c c } 1 & 2 & 3 & 4 & 5 & 6 & 7 \end{array}\\ \begin{bmatrix} 0 & 0 & 0 & 0 & 0 & 1 & 1\\ 0 & 0 & 1 & 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 1 & 0 & 0 & 0\\ 0 & 1 & 1 & 0 & 0 & 0 & 1 \end{bmatrix} \end{matrix},

 

czyli dla zapewnienia „pełnego rozróżnienia” w regule  R(u1) należy zostawić atrybuty: a6 lub a7 i a3 lub a4a2 lub a4 i a2 lub a3 lub a6. Zapisując te warunki w postaci wyrażenia CNF:

 

(a6 + a7) (a3 + a4) (a2 + a4) (a2 + a3 + a7)

 

dochodzimy do wniosku, że w celu obliczenia wszystkich uogólnionych reguł obiektu u2 (o minimalnej liczbie atrybutów) należy dokonać transformacji wyrażenia CNF do postaci DNF. Wtedy składniki DNF reprezentują minimalne zbiory atrybutów R(u2). Wynik takiej transformacji jest następujący:

 

a4a7 + a2a4a6 + a3a4a6 + a2a3a7 + a2a3a6

 

Oczywiście najlepsza reguła będzie dla  a4a7, czyli R(u2) = (a4,0) & (a7,0)  i jak łatwo sprawdzić żaden obiekt klasy d = 0 nie spełnia tej reguły.

Podstawowe znaczenie w metodzie ma procedura obliczająca pokrycie kolumnowe macierzy M. Ze względu na złożoność obliczeniową, zadanie generowania reguł nie jest zwykle możliwe do rozwiązania w czasie wielomianowym. W szczególności zbiór pokryć macierzy M  może zawierać zbyt wiele elementów, aby program mógł znaleźć rozwiązanie w rozsądnym czasie. W związku z tym zaproponowano zastosowanie algorytmu uzupełnienia funkcji boolowskiej.

 

Możliwość zastosowania  uzupełnienia funkcji boolowskiej do obliczenia wszystkich minimalnych pokryć kolumnowych macierzy binarnej M omówiona była w rozdz. 2.6.2. Na tej podstawie stwierdzamy: zamiast stosować transformację CNF na DNF wystar­czy obliczyć uzupełnienie funkcji boolowskiej reprezentowa­nej macierzą M. Metoda jest dokładnie przedstawiona w rozdz. 2.6.2, dlatego ograniczymy jej omówienie jedynie do obliczenia uzupełnienia macierzy M. Funkcja boolowska macierzy M oraz jej uzupełnienie podane są w tablicy 2.40.

 

Tablica 2.40

 

 

 

x1

x2

x3

x4

x5

x6

x7

f

1

 

1

1

1

2

 

1

1

1

3

 

1

1

1

4

 

1

1

1

1

5

 

0

0

0

0

6

 

0

0

0

0

7

 

0

0

0

0

8

 

0

0

0

0

9

 

0

0

0

 

 

Procedura uzupełniania – jak wykazano w [2.17],[2.18] – jest bardzo szybka, zatem jej zastosowanie do indukcji reguł jest wskazane. Dysponując szybkim algorytmem indukcji reguł dla pojedynczych obiektów możemy pokusić się o indukcję dla wszystkich reguł danej klasy decyzyjnej i wybrać z nich reguły najogólniejsze, przeznaczone do następnego etapu selekcji. Przy takiej organizacji trzeba będzie jednak wprowadzić heurystyczne algorytmy selekcji.

Dla binarnego systemu decyzyjnego podanego w  tabl. 2.39 obliczamy minimalne reguły decyzyjne dla obiektów u1 do  u5.  Oznaczając przez Ri  reguły generowane przez obiekt ui uzyskujemy kolejno:

 

r1 = (a4,0) & (a7,0)     r2 = (a1,0)     r3 = (a5,0)    

r4 = (a4,1) & (a7,0)   r= (a2,1) & (a6,0)  oraz  (a3,1) & (a6,0) 

 

Usuwając reguły powtarzające się ostateczną listę reguł minimalnych zapisujemy jak następuje:

            R1 = (a1,0)    R2 = (a4,0) & (a7,0)    R3 = (a5,0) 

            R4  = (a2,1) & (a6,0)   R= (a3,1) & (a6,0)  

Na tej podstawie dla każdej obliczonej wyżej reguły Ri wyznaczamy wszystkie obiekty decyzji d = 1 pokrywane przez Ri.

Przykładowo:

 

 R1 Ê u1

 R2 Ê u2, u3, u4    

 R4  Ê  u1, u5

 

Tabelę  pokryć  pokazano w tabl. 2.41.

 

Tablica 2.41

 

R1

R2

R3

R4

R5

u1

1

0

0

1

0

u2

0

1

0

0

0

u3

0

1

1

0

1

u4

0

1

0

0

0

u5

0

0

0

1

1

Tablica pokryć umożliwia wybór (selekcję) takiego minimalnego zbioru reguł, który pokrywa wszystkie obiekty ustalonej klasy decyzyjnej. Minimalny zbiór reguł klasy decyzyjnej d = 1 można wyznaczyć obliczając minimalne pokrycie kolumnowe tablicy pokryć. W tym celu zapisujemy wiersze tablicy w postaci zbiorów kolumn wskazywanych przez pozycje jedynek w danym wierszu. Metoda selekcji pokryć zastosowana w proponowanym algorytmie indukcji oblicza wszystkie minimalne pokrycia kolumnowe metodą uzupełnienia funkcji boolowskiej, której specyfikacja (również jej uzupełnienia) jest podana w tabl. 2.42.

 

Tablica 2.42

 

x1

x2

 

x3

x4

x5

f

1

1

 

1

1

2

1

 

1

3

1

 

1

1

1

4

 

1

1

1

5

0

0

 

0

0

9

0

 

0

0

 

Z zapisu uzupełnienia wynika, że wszystkie minimalne pokrycia kolumnowe są: R2, R4 oraz R1, R2, R5. Oczywiście taki sam wyniki uzyskamy dokonując transformacji wyrażenia typu CNF na DNF:

 

r2(r1 + r4) (r2 + r3 + r5) (r4 + r5) = r2r4 + r1 r2r5

 

Z powyższych rozważań wynika, że zadanie uogólnienia reguł decyzyjnych ustalonej klasy Dk jest analogiczne do zadania minimalizacji funkcji boolowskiej f= (F, R), w której wektory zbioru F odpowiadają obiektom klasy Dk, a zbiór R jest macierzą rozróżniającą. Złożoność obliczeniową tego problemu można oszacować złożonością obliczeniową zadania minimalizacji funkcji boolowskiej. Obliczeniem decydującym o eksplozji kombinatorycznej tego problemu jest zatem obliczenie wszystkich pokryć kolumnowych Tablicy Pokryć. O złożoności tego problemu decyduje szybko rosnąca (ze wzrostem liczby atrybutów) liczność rodziny minimalnych reguł klasy Dk.

 

Otóż w przypadku systemu decyzyjnego z tablicy 2.39 liczba wszystkich minimalnych  reguł jest 5:  tym samym odpowiednia tablica pokryć (tabl. 2.41) ma 5 kolumn. W rezultacie obliczenie minimalnych pokryć kolumnowych tej tablicy można wykonać „ręcznie” – jest widoczne „gołym okiem”. Zjawisko występującej w tym problemie eksplozji kombinatorycznej dobrze wyjaśnia przykład tablicy decyzyjnej podanej w tablicy 2.43.  W tym przypadku liczba wszystkich minimalnych reguł jest 68. Zatem odpowiednia tablica pokryć ma aż 68 kolumn, co znacznie utrudnia obliczenie uzupełnienia.

 

Tablica 2.43

 

x1

x2

x3

x4

x5

x6

x7

x8

x9

x10

y

1

0

0

1

0

1

1

1

0

1

0

0

2

1

0

1

0

0

1

0

1

0

0

0

3

0

1

0

0

0

1

1

1

1

0

0

4

1

0

1

1

1

0

1

0

1

1

0

5

1

1

0

0

0

1

0

0

1

1

0

6

0

1

0

0

0

1

0

1

1

0

0

7

1

1

1

0

1

0

0

1

1

0

0

8

0

1

0

0

1

1

0

0

0

0

0

9

0

1

0

1

0

0

0

0

1

0

0

10

0

1

1

1

1

1

1

0

1

1

1

11

0

0

0

0

0

1

0

1

0

0

1

12

1

1

0

1

1

1

0

0

1

1

1

13

0

1

0

0

1

0

0

0

0

0

1

14

0

1

0

0

0

1

1

1

1

1

1

15

0

0

1

0

0

0

0

1

1

0

1

16

1

1

1

1

0

1

0

0

0

1

1

17

1

1

1

1

1

0

1

0

0

1

1

18

1

1

1

1

1

1

1

1

1

1

1

19

0

0

1

0

0

0

0

0

0

0

1

20

1

1

0

1

1

0

0

1

1

1

1

21

0

0

1

0

0

0

1

1

1

1

1

22

1

1

1

1

1

0

0

0

1

0

1

23

1

0

1

0

1

1

1

1

0

1

1

24

0

1

1

0

0

0

0

1

1

0

1

25

0

1

0

0

1

1

1

0

0

0

1

 

 

Z powyższych rozważań wynika, że obliczenie uogólnionych reguł decyzyjnych dla rzeczywistych baz danych muszą być – przynajmniej dla tablicy pokrycia – realizowane algorytmami heurystycznymi. Natomiast rewelacyjna procedura uzupełniania (Complement) może być zastosowana wyłącznie do obliczania minimalnych pokryć kolumnowych macierzy rozróżnialności.

 

Należy pamiętać, że algorytm uzupełnienia funkcji boolowskiej (complement) jest algorytmem systematycznym. Uzyskuje najlepsze wyniki pokrycia, a co ważne dla generacji reguł, tworzy wszystkie rozwiązania problemu. Zalet tego algorytmu niestety nie da się zawsze wykorzystać, szczególnie dla bardziej złożonych problemów. Algorytm uzupełniania jest szczególnie wrażliwy na ilość kolumn w tablicy rozróżnialności. Praktyka pokazuje, że tablice rozróżnialności podczas uogólniania reguł zawierają zazwyczaj więcej obiektów (wierszy), niż kolumn (atrybutów), dlatego dla małych i średnich baz w rozumieniu ilości atrybutów (od 1 do 30 atrybutów) z powodzeniem używamy uzupełnienia. Niestety odwrotną strukturę posiadają tablice rozróżnialności reguł. Ilość kolumn jest zawsze niemniejsza niż ilość wierszy. Wynika to z faktu, że z każdego obiektu (wiersza) indukowana jest minimalnie jedna reguła.

 

Ograniczenia w stosowaniu algorytmu uzupełniania funkcji boolowskich spowodowały potrzebę użycia szybkich, heurystycznych algorytmów minimalizacji tablic boolowskich. Możliwe do zastosowania są dwa algorytmy iteracyjne: MaxCol i MinRow, omawiane poprzednio w rozdz. 2.4.2.

 

Algorytmy Complement, MaxCol, MinRow stanowią strategię indukcji reguł decyzyjnych, którą nazywać będziemy strategią dwustopniowej selekcji.

 

Regułowy system decyzyjny

Procedura dwustopniowej selekcji reguł składa się z następujących etapów.

  1. Wyznaczenie macierzy rozróżnialności dla obiektu ui ustalonej klasy decyzyjnej
  2. Obliczenie wszystkich uogólnionych reguł obiektu ui

Macierz rozróżnialności jest wykorzystywana do obliczenia wszystkich uogólnionych reguł obiektu ui. Obliczenie zbiory wszystkich minimalnych reguł sprowadzić można do problemu obliczenia pokryć kolumnowych macierzy rozróżnialności.

Załóżmy, że kolumny macierzy rozróżnialności są indeksowane kolejnymi atrybutami warunkowymi tablicy decyzyjnej. Wtedy każde minimalne pokrycie kolumnowe tej macierzy jest zbiorem atrybutów warunkowych uogólnionej i minimalnej reguły decyzyjnej obiektu ui. W celu utworzenia tej reguły atrybutom zbioru reprezentującego pokrycie kolumnowe przyporządkowuje się odpowiednie wartości obiektu ui, czyli jeśli minimalny zbiór atrybutów jest {<i>a<sub>i</sub>, a<sub>j</sub>,…,a<sub>k</sub></i>} oraz obiekt ui ma wartości atrybutów odpowiednio {<i>w<sub>i</sub>, w<sub>j</sub>,…,w<sub>k</sub></i>} to ugólnioną regułą jest:

 

( ai = wi ) & ( aj = wj ) & ( ak = wk ) = dk

 

  1. Obliczenie rodziny minimalnych ugólnionych reguł klasy decyzyjnej Dk

Powtarzając obliczenia z punków 1 i 2 dla każdego obiektu ui ustalonej klasy decyzyjnej Dk uzyskuje się rodzinę minimalnych uogólnionych reguł klasy Dk:

 

R(Dk) = (r1,..., rmax)

 

Reguły wchodzące w skład tej rodziny stanowią zbiór najlepszych reguł reprezentujących wszystkie obiekty klasy Dk.

  1. Wyznaczenie tablicy pokryć klasy Dk

Chcąc uzyskać minimalny zbiór reguł (niekoniecznie o najmniejszej liczności) reprezentujących klasę Dk  należy utworzyć tablicę pokryć (TP). Tablicą pokryć jest binarna tablica o liczbie kolumn n (n jest licznością rodziny R(Dk)) i liczbie wierszy równej k ( k – liczba obiektów klasy klasy Dk). Element TP(i,j) tej tablicy przyjmuje wartość 1, gdy reguła rj  pokrywa obiekt ui, w przeciwnym przypadku 0.

  1. Obliczenie minimalnego zbioru uogólnionych reguł klasy Dk.

Minimalny zbiór uogólnionych reguł reprezentujących (pokrywających) klasę Dk można wyznaczyć obliczając minimalne pokrycie kolumnowe TP.

 

            Ze względu na złożoność obliczeniową, zadanie generowania reguł nie jest zwykle możliwe do rozwiązania w czasie wielomianowym. W szczególności zbiór pokryć macierzy Mp może zawierać zbyt wiele elementów, aby program mógł znaleźć rozwiązanie w rozsądnym czasie.