PDF - 270 kB
Transkrypt
PDF - 270 kB
Redukcja atrybutów Poszukuje się takich podzbiorów atrybutów, które zachowują podział obiektów na klasy decyzyjne taki sam, jak wszystkie atrybuty 1 2 3 4 5 6 7 8 9 10 a1 a2 a3 a4 a5 a6 0 0 0 0 0 0 0 0 1 1 0 0 1 2 2 0 1 1 0 1 1 0 0 1 0 1 0 2 0 1 1 2 2 3 2 0 1 2 2 2 0 1 0 0 1 1 0 1 0 1 0 3 2 0 2 2 2 3 2 0 d 1 1 2 2 3 2 1 3 4 4 {a1 , a4 , a6 } , {a1 , a2 , a3 , a5 , a6 } ZPT 1 2 3 4 5 6 7 8 9 10 a1 a4 a6 0 0 0 0 1 0 1 0 1 0 0 1 0 2 1 1 3 0 1 2 1 0 1 1 0 3 0 2 3 0 d 1 1 2 2 3 2 1 3 4 4 1 Redukcja atrybutów Jak obliczać minimalne zbiory atrybutów? Tak samo jak minimalne zbiory argumentów Metoda obliczania reduktów: Obliczyć: atrybuty niezbędne, iloczyn (PN) podziałów indukowanych atrybutami niezbędnymi (PN) , podział ilorazowy PN|PD (podział ilorazowy wskazuje na wszystkie pary obiektów, których porównanie utworzy tablicę porównań) z tablicy porównań utworzyć funkcje wyróŜniającą (typu CNF) przekształcić CNF na DNF DNF reprezentuje wszystkie redukty! ZPT 2 Przykład redukcji atrybutów atrybuty niezbędne: a1 a2 a3 a4 a5 a6 d 1 0 0 0 0 0 0 1 2 0 0 1 1 0 0 1 3 5 1 0 0 2 1 1 2 1 0 0 0 2 1 0 0 1 1 1 2 2 3 6 1 2 2 3 2 0 2 7 1 2 2 2 0 1 1 8 0 0 1 1 0 1 3 9 0 1 0 3 2 0 4 10 2 2 2 3 2 0 4 4 ZPT a1 a6 poniewaŜ wiersze 6 i 10 róŜnią się na pozycji a1 skoro wiersze 2 i 8 róŜnią się na pozycji a6 3 Przykład redukcji atrybutów a1 a2 a3 a4 a5 a6 d 1 0 0 0 0 0 0 1 2 0 0 1 1 0 0 1 3 5 1 0 0 2 1 1 2 1 0 0 0 2 1 0 0 1 1 1 2 2 3 6 1 2 2 3 2 0 2 7 1 2 2 2 0 1 1 8 0 0 1 1 0 1 3 9 0 1 0 3 2 0 4 10 2 2 2 3 2 0 4 4 P1 = (1,2,4,5,8 , 9 ; 3,6,7 ;10) P6 = (1,2,6,9,10 ;3,4,5,7,8) PD = (1,2,7;3,4,6;5,8 ;9,10) P1 • P6 | PD = (1,2)(9);(4)(5,8);(6) ;(3)(7);(10) ZPT 4 Przykład redukcji atrybutów a1 a2 a3 a4 a5 a6 d 1 0 0 0 0 0 0 1 2 0 0 1 1 0 0 1 3 5 1 0 0 2 1 1 2 1 0 0 0 2 1 0 0 1 1 1 2 2 3 6 1 2 2 3 2 0 7 1 2 2 2 0 8 0 0 1 1 9 0 1 0 10 2 2 2 4 Redukty: ZPT P1 • P6 | PD = (1,2)(9);(4)(5,8);(6) ;(3)(7);(10) 1,9 a2 , a4 , a5 2,9 a2 , a3 , a4 , a5 4,5 a3 , a4 2 4,8 a2 , a4 1 1 3,7 0 1 3 a4 , a5 3 2 0 4 3 2 0 4 WyraŜenie CNF DNF (a4 + a2) (a4 + a3) (a4 + a5) = a4 + a2a3a5 {a1 , a4 , a6 } {a1 , a2 , a3 , a5 , a6 } 5 Plik danych RSES TABLE EXPLOR ATTRIBUTES 7 x1 numeric 0 x2 numeric 0 x3 numeric 0 x4 numeric 0 x5 numeric 0 x6 numeric 0 x7 numeric 0 OBJECTS 10 0 0 0 0 0 0 1 0 0 1 1 0 0 1 1 2 2 0 1 1 2 0 1 1 0 0 1 2 0 1 0 2 0 1 3 1 2 2 3 2 0 2 1 2 2 2 0 1 1 0 0 1 1 0 1 3 0 1 0 3 2 0 4 2 2 2 3 2 0 4 ZPT REDUCTS (2) { x1, x4, x6 } { x1, x2, x3, x5, x6 } Inna metoda obliczania reduktów… Omówioną metodę moŜna znacznie usprawnić wykorzystując stosowaną w syntezie logicznej procedurę uzupełniania funkcji boolowskiej. Twierdzenie: KaŜdy wiersz i macierzy , stanowiącej uzupełnienie macierzy porównań M reprezentuje pokrycie kolumnowe M, gdzie j ∈ L wtedy i tylko wtedy, gdy M ij = 1 PowyŜsze twierdzenie sprowadza proces obliczania reduktów do obliczania uzupełnienia jednorodnej funkcji boolowskiej. Procedura ta (nazwana UNATE_COMPLEMENT) została opracowana jako fragment procedury COMPLEMENT programu Espresso. Nigdy nie była stosowana do obliczania reduktów ZPT 7 Przykład – metoda klasyczna Pokrycie kolumnowe (przypomnienie) M: 1 0 1 1 1 0 1 0 0 1 0 0 1 1 0 1 x1 x3 x1 x1 x2 x4 x4 x2 x4 (x1 + x2 + x4) (x3 + x4) (x1 + x2)(x1 + x4) = = x1x3 + x2x4 +x1x4 To są wszystkie minimalne pokrycia kolumnowe macierzy M ZPT 8 8 Przykład – metoda uzupełniania M: 1 0 1 1 1 0 1 0 1 1 1 0 0 0 0 1 x 3x 4 x 1x 2 = x1x 4 + x 3 x 4 + x1x 2 00 01 11 00 1 01 1 11 10 x1x3 + x2x4 +x1x4 ZPT f M = x1x 2 x 4 + x 3 x 4 + x1x 2 + x1x 4 = 1 1 1 1 1 10 1 fM = x1x 3 + x x + x x 2 4 1 4 To samo co poprzednio! 9 Metoda obliczania reduktów… jest równowaŜna obliczaniu Complementu (Uzupełnienia) funkcji boolowskiej, reprezentowanej Tablicą porównań. Espresso F,D Complement Expand Essential primes Irredundant-Cover Reduce FM Last-gasp ZPT 10 Przykład TL27 .i 7 .o 1 .type fr .p 9 1000101 0 1011110 0 1101110 0 1110111 0 0100101 1 1000110 1 1010000 1 1010110 1 1110101 1 .e ZPT Tablica porównań Tablica porównań nie jest funkcją boolowską 1100000 0000011 0010101 0010011 0110000 1111011 0011000 0001110 0001000 0101011 1001011 0101000 0111110 0111000 0011011 1010010 0110001 0100111 0100001 0000010 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 Redukcja (usuwanie) wierszy tabl. porównań .i 7 .o 1 .type fr .p 9 1000101 0 1011110 0 1101110 0 1110111 0 0100101 1 1000110 1 1010000 1 1010110 1 1110101 1 .e ZPT 1100000 0000011 0010101 0010011 0110000 1111011 0011000 0001110 0001000 0101011 1001011 0101000 0111110 0111000 0011011 1010010 0110001 0100111 0100001 0000010 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Zredukowana tablica porównań 1100000 0010101 0110000 0110001 0100001 1 1 1 1 1 .i 7 .o 1 .p 6 11------1-1-1 -11----1----1 ---1-------1.end 1 1 1 1 1 1 reprezentuje funkcję boolowską 12 Do obliczenia uzupełnienia zastosujmy… Espresso F,D .i 7 .o 1 .p 6 11------1-1-1 -11----1----1 ---1-------1.end {x1,x3,x4,x6,x7} Complement {x2,x3,x4,x6} Expand 1 1 1 1 1 1 {x2,x4,x5,x6} Essential primes {x2,x4,x6,x7} Irredundant-Cover ESPRESSO Reduce FM Last-gasp .i 7 .o 1 .p 4 0-00-00 -000-0-0-000-0-0-00 .end 0 0 0 0 13 ZPT Algorytm obliczania reduktów… polega na obliczaniu Complementu (Uzupełnienia) jednorodnej funkcji boolowskiej, reprezentowanej Tablicą (macierzą) porównań. Uzupełnienie oblicza się dla zero-jedynkowej macierzy M. Sprytna procedura uzupełniania polega na iteracyjnym rozkładzie zbioru kostek macierzy M na kofaktory. Kofaktory te są obliczane tak długo, aŜ odpowiadające im zbiory kostek staną się „łatwe” do obliczenia ich uzupełnienia. Proces kończy „scalanie” wyników cząstkowych. ZPT 14 Obliczanie… Complementu (Uzupełnienia) funkcji boolowskiej, reprezentowanej Tablicą porównań: f = x j fxj + x j fxj f = x j fxj + x j fxj Sprytna procedura uzupełniania polega na iteracyjnym rozkładzie zbioru kostek reprezentującego funkcję f na kofaktory. Kofaktory te są obliczane tak długo, aŜ odpowiadające im zbiory kostek staną się „łatwe” do obliczenia ich uzupełnienia. Proces kończy „scalanie” wyników cząstkowych. ZPT 15 Complement funkcji jednorodnej Szczególnie prosto oblicza się uzupełnienie funkcji jednorodnej. F = x j Fx j + Fx j F = xj ⋅ F0 + F1 Kostki funkcji jednorodnej reprezentuje się binarnie. 0 1 ∗ 0 F = ∗ ∗ 1 ∗ 0 ∗ 1 ∗ 1 1 0 1 M = 0 0 1 0 1 0 1 0 Uzupełnienie oblicza się dla macierzy M. ZPT 16 Rozkład macierzy M Wybór zmiennej: 1)Wybieramy kostkę (wiersz macierzy M) z największą liczbą zer. 2) W wybranej kostce wybieramy zmienne, które mają jedynkę w tej kostce. 3) Spośród wybranych w punkcie 2) zmiennych wybieramy tę, która ma najwięcej jedynek w swojej kolumnie. ZPT 17 Rozkład macierzy M Obliczanie kofaktorów: Kofaktory macierzy M oblicza się według następującego schematu: Kofaktor jedynkowy macierzy M względem zmiennej xj otrzymujemy przez ustawienie wszystkich pozycji j-tej kolumny macierzy M na zera. Kofaktor zerowy macierzy M względem zmiennej xj otrzymujemy przez wypisanie z M tych kostek (wierszy), w których zmienna xj przyjmuje wartość zero. ZPT 18 Complement kofaktorów Podstawą uzupełnienia funkcji jednorodnej jest rozszczepianie macierzy M na podzbiory kostek, których uzupełnienie łatwo moŜna obliczyć. 1)JeŜeli kofaktor zawiera tylko jedną kostkę, jego uzupełnienie oblicza się wg prawa De Morgana. 2) JeŜeli kofaktor zawiera kostkę (wiersz) samych 0, jego uzupełnienie jest zbiorem pustym. 3) JeŜeli kofaktor jest zbiorem pustym, jego uzupełnienie jest Tautologią. ZPT 19 Scalanie uzupełnionych kofaktorów F = xj ⋅ F0 + F1 Znaczy to, Ŝe jeŜeli otrzymany kofaktor był zerowy (ozn. F0), to jego Complement mnoŜymy go przez odpowiednie xj i dodajemy, a jeŜeli był jedynkowy (ozn. Complement tylko dodajemy. ZPT F1), to jego 20 ROZKŁAD 1 2 3 4 5 6 7 1 0 0 0 0 0 0 0 C = [1 0 x1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 C=Φ ZPT 1 1 0 0 0 0 0 0 0 1 0 1 0 1 0 1 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 1 1 2 3 4 5 6 7 0 1 1 0 0 0 0 0 1 0 0 1 0 0 C= 0 1 0 0 0 0 1 1 0 1 0 0 0 1 x2 x2 1 0 0 0 1] x1 [0 0 1 0 1 0 1] 0 0 1 0 0 0 0 C = 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 C=[0 0 1 0 0 0 1] C=Φ x7 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 x7 [0 0 1 0 0 0 0] =C 21 SCALANIE C(x7) = x7 [0010000]+ Φ = [0010001] C(x1) = x1 [0010001]+ Φ = [1010001] 1 2 3 4 5 6 7 C(x2) = 0 x2 0 0 0 1 0 0 0 0 0 0 0 1 0 0 + [1010001] = 0 0 0 0 0 1 Minimalne pokrycia: x2, x3, x2, x5, x2, x7, x1, x3, x7 ZPT 0 1 1 0 0 1 0 0 0 1 0 0 1 0 1 0 Niezbędne: + x4, x6 0 0 0 1 0 0 0 0 1 00 1 Dokładnie tak samo jak w metodzie klasycznej! 22 Funkcja KAZ Przed redukcją redukcją .type fr .i 21 .o 1 .p 31 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 .end ZPT Po redukcji 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 Redukcja argumentów/atrybutów Ile jest takich rozwiązań 01010 10110 00100 01001 01000 11010 10011 01110 10100 11000 11011 10000 00010 01111 00011 11111 00000 01101 00110 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 Jedno z wielu rozwią rozwiązań zań po o redukcji argumentów 23 Funkcja KAZ .type fr .i 21 .o 1 .p 31 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 .end 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 Wszystkich rozwiązań: z minimalną i najmniejszą liczbą argumentów jest 35, z minimalną liczbą argumentów jest: 5574 Czas obliczeń RSES = 70 min. Czas obliczeń dla nowej metody= 234 ms. 18 tysięcy razy szybciej! 24 ZPT