Wnioskowanie boolowskie w biklasteryzacji danych
dr inż. Marcin Michalak
Instytut Technik Innwacyjnych EMAG, Katowice
Personalizacja leczenia ostrej białaczki limfoblastycznej u dzieci w Polsce (PersonALL)
Profilaktyka i leczenie chorób cywilizacyjnych — Strategmed III (STRATEGMED3/304586/5/NCBR/2017)
Agenda
1 Biklasteryzacja
2 Wnioskowanie boolowskie
3 Generowanie biklastrów w macierzy dyskretnej 4 Generowanie biklastrów w macierzy ciągłej 5 Inne zagadnienia
Agenda
1 Biklasteryzacja
2 Wnioskowanie boolowskie
3 Generowanie biklastrów w macierzy dyskretnej
4 Generowanie biklastrów w macierzy ciągłej
klasteryzacja
(inaczej grupowanie, klasyfikacja nienadzorowana, analiza skupień), proces, w którym na zbiorze obiektów ustalany jest podział (w matematycznym rozumieniu tego słowa).
biklasteryzacja
(ang. biclustering, co-clustering, two-mode clustering, two-dimensional clustering) proces wyszukiwania w danym dwuwymiarowym zbiorze danych (macierzy) podmacierzy której elementy będą jednakowe lub podobne,
f1 f2 f3 f4 o1 1 2 3 4 o2 2 3 4 5 o3 10 11 12 13 o4 11 12 13 14 o5 101 102 103 104 f1 f2 f3 f4 o1 1 3 88 91 o2 1 4 87 95 o3 2 4 90 93 o4 2 5 91 94 o5 3 5 90 94 f1 f2 f3 f4 o1 1 1 2 2 o2 1 1 8 19 o3 1 32 31 32 o4 12 18 32 34 o5 20 27 35 36 f1 f2 f3 f4 o1 1 1 2 2 o2 1 1 8 19 o3 1 32 31 32 o4 12 18 32 34 o5 20 27 35 36 f1 f2 f3 f4 o1 1 1 2 2 o2 1 1 8 19 o3 1 32 31 32 o4 12 18 32 34 o5 20 27 35 36
podobieństwa:
poszukiwanie podobieństw w danych,
danymi wejściowymi jest dwuwymiarowa tabela,
różnice
w klasteryzacji dane są heterogeniczne, w biklasteryzacji — homogeniczne,
grupowanie ustala pewien podział (pomijając metody rozmyte) pewnego zbioru (obiektów bądź cech), podczas gdy biklasteryzacja nie musi,
elementem wyniku grupowania jest zbiór wielowymiarowych obiektów, elementem wyniku biklasteryzacji jest podmacierz wartości (podzbiór indeksów wierszy i indeksów kolumn — uporządkowana para),
Pola zastosowania biklasteryzacji:
dane bioinformatyczne, text mining,
monitorowanie i diagnostyka urządzeń.
Generalnie
Generalnie biklasteryzacja ma zastosowanie tam, gdzie dane mają charakter macierzy skalarów, gdzie jest sens interpretowania podgrupy wierszy i podgrupy kolumn jednocześnie.
Agenda
1 Biklasteryzacja
2 Wnioskowanie boolowskie
3 Generowanie biklastrów w macierzy dyskretnej
4 Generowanie biklastrów w macierzy ciągłej
5 Inne zagadnienia
Wnioskowanie boolowskie
Technika analizy danych, polegająca na zakodowaniu problemu w postaci funkcji boolowskiej, przezkształceniu jej a następnie interpretacji wyników.
Wnioskowanie boolowskie — najpopularniejszy wariant
Poszukuje się implikantów prostych zakodowanej funkcji, a każdy znaleziony implikant prosty ma swoją interpretację.
Typowe zastosowania:
poszukiwanie reduktów w systemach informacyjnych, poszukiwanie bireduktów w systemach informacyjnych, poszukiwanie biklastrów ,.
Agenda
1 Biklasteryzacja
2 Wnioskowanie boolowskie
3 Generowanie biklastrów w macierzy dyskretnej
4 Generowanie biklastrów w macierzy ciągłej
Przykładowa macierz dyskretna M:
a b c
1 1 0 2
2 1 1 0
3 1 1 1
Przez B oznaczamy zbiór indeksów wierszy, a przez X zbiór indeksów kolumn.
Cel
Poszukiwanie maksymalnych (w sensie inkluzji) biklastrów dokładnych, czyli podzbiorów wierszy i kolumn, które na przecięciu mają tę samą wartość.
Definicja
Funkcją odróżnialności dla biklastrów w macierzy dyskretnej M nazywamy następującą funkcję:
fM =
^
(a ∨ b ∨ x) ∧^(c ∨ y ∨ z)
gdzie a, b, c ∈ B x, y, z ∈ X takich że:
Przykład
a b c
1 1 0 2
2 1 1 0
3 1 1 1
(1, 2, 3 traktujemy jako etykiety, nie jako wartości) fM = (1 + a + b)(1 + a + c)(1 + b + c)
(2 + a + c)(2 + b + c)(b + 1 + 2) (b + 1 + 3)(c + 1 + 2)(c + 1 + 3) (c + 2 + 3)
f = 12 + 1c + bc + 13ab + 23ac + 23ab
Interpretacja
Biklaster odpowiadający, implikantowi prostemu, to para zbioru obiektów, nie reprezentowanych w implikancie przez zmienną logiczną oraz zbioru atrybutów, również nie reprezentowanych w implikancie przez zmienną logiczną.
Biklastry
f = 12 + 1c + bc + 13ab + 23ac + 23ab
a b c 1 1 0 2 2 1 1 0 3 1 1 1 bc : ({1, 2, 3}, {a}) a b c 1 1 0 2 2 1 1 0 3 1 1 1 a b c 1 1 0 2 2 1 1 0 3 1 1 1 1c : ({2, 3}, {a, b}) a b c 1 1 0 2 2 1 1 0 3 1 1 1 a b c 1 1 0 2 2 1 1 0 3 1 1 1 13ab : ({2}, {c}) a b c 1 1 0 2 2 1 1 0 3 1 1 1
Poprawność podejścia
Można udowodnić, że każdemu implikantowi tak zbudowanej funkcji boolowskiej odpowiada dokładny biklaster jak również każdemu dokładnemu biklastrowi w macierzy odpowiada implikant tej funkcji boolowskiej.
Maksymalność podejścia
Udowodniono również, że uzyskane w ten sposób biklastry są
maksymalnymi, w sensie inkluzji (to znaczy nie da się ich rozszerzyć o żaden wiersz i żadną kolumnę, nie tracąc dokładności tego biklastra). To oznacza, że implikantom prostym funkcji odróżnialności odpowiadają m. w s.i. dokładne biklastry (i vice versa).
Złożoność obliczeniowa
DUŻA ,
Problem rozstrzygalności formuł postaci 3-CNF (a z takimi mamy do czynienia) jest problemem NP-zupełnym. Uprościć klasę zadania oraz jego rozmiar można, sprowadzając problem do analizy danych w macierzy binarnej, w której kodowanie informacji następuje za pomocą formuł postaci 2-CNF, rozstrzygalnych jako problem P-zupełny.
Macierz binarna Mb
a b c
1 1 0 1
2 1 0 0
3 1 1 1
Kodowanie wg poprzedniego schematu:
fMb= (1 + 2 + c)(1 + 3 + b)(2 + 3 + b)(2 + 3 + c)(a + b + 1)
(a + b + 2)(a + c + 2)(b + c + 1)
Rozważmy inny sposób kodowania danych w macierzy binarnej. Załóżmy, że będziemy kodować tylko komórki o określonej wartości, za pomocą ich współrzędnych wyrażonych jako indeks wiersza i indeks kolumny.
Przykład a b c 1 1 0 1 2 1 0 0 3 1 1 1 fMb(0) = (1 + b)(2 + b)(2 + c) fMb(0)= 12 + 2b + bc
fMb(1) = (1 + a)(1 + c)(2 + a)(3 + a)(3 + b)(3 + c)
fMb(1)= 13a + 123 + 3ac + abc
Interpretacja
Implikanty proste funkcji fMb(0) kodują biklastry jedynek na tle zer,
podczas gdy implikanty proste funkcji fMb(1) kodują biklastry zer na tle
Puste biklastry
W poprzednim przykładzie, wśród implikantów prostych pojawiły się takie, które kodują pusty biklaster (składają się z literałów kodujących wszystkie wiersze, bądź wszystkie kolumny). Częściowo można zapobiec ich
powstawaniu modyfikując sposób budowania funkcji boolowskiej: jeśli cały wiersz (kolumna) jest zerami (jedynkami), to kodujemy wiersz (kolumnę) pojedynczym literałem.
Interpretacja
Pusty biklaster uzyskany z implikanta prostego nadal pozostaje zgodny z naszą definicją: jest on maksymalny w sensie inkluzji oraz dokładny.
Przykład a b c 1 1 0 1 2 1 0 0 3 1 1 1 fMb(1)= a3(1 + c) fMb(1)= a31 + a3c
Czy ta poprawka eliminuje ostatecznie problem pojawiania się pustych biklastrów?. . .
. . . nie! a b 1 1 0 2 0 1 fMod(0) = (1 + b)(2 + a) = 12 + 1a + 2b + ab fMod(1) = (1 + a)(2 + b) = 12 + 1b + 2a + ab
Rysunek:Oryginalne dane 100x100 (z lewej) a także kolejno z wydzieleniem trzech macierzy binarnych: # 0 (lewy środek), # 77 (prawy środek) and #237 (z prawej).
liczba
wartość jedynek klauzul biklastrów
#0 1 415 2 256 5 463 (+2 puste)
#77 1 327 4 560 503 (+2 puste)
Agenda
1 Biklasteryzacja
2 Wnioskowanie boolowskie
3 Generowanie biklastrów w macierzy dyskretnej
4 Generowanie biklastrów w macierzy ciągłej
5 Inne zagadnienia
Motywacja
Nie zawsze dane wejściowe sa binarne (lub nawet dyskretne, z czym poradzilibyśmy sobie sprowadzając zagadnienie do n zagadnień binarnych). Nie zawsze binaryzacja (dyskretyzacja, a co za tym idzie dalsza
binaryzacja) danych musi się okazać sensowną strategią preprocessingu danych.
Przykład
Macierz (wiersz): interesują nas komórki, pomiędzy którymi rozrzut nie wynosi więcej niż 3.
0 1 2 5 8
0 1 2 5 8
Biklaster rozrzutu
Załóżmy że w macierzy ciągłej M interesuje nas problem znalezienia maksymalnych (w sensie inkluzji) biklastrów, których rozrzut wartości nie przekracza zadanego progu wartości T .
f1 f2 f3 f4 o1 1 1 2 2 o2 1 1 8 19 o3 1 32 31 32 o4 12 18 32 34 o5 20 27 35 36 f1 f2 f3 f4 o1 1 1 2 2 o2 1 1 8 19 o3 1 32 31 32 o4 12 18 32 34 o5 20 27 35 36 f1 f2 f3 f4 o1 1 1 2 2 o2 1 1 8 19 o3 1 32 31 32 o4 12 18 32 34 o5 20 27 35 36
T−biklaster
Niech T będzie maksymalnym akceptowalnym rozrzutem wartości w
obrębie biklastra BX . Wtedy T −biklastrem macierzy Mr ,c nazwiemy
podzbiór wierszy i podzbiór kolumn, których przecięcie wskazuje na komórki, pomiędzy którymi największa różnica (co do modułu) nie przekracza zadanego progu T (ograniczenie to nazwiemy T −warunkiem).
max
i,j ∈ B
m,n ∈ X
Funkcja T −odróżnialności
Zdefiniujmy funkcję T −odróżnialności fT jako koniunkcję klauzul
następującej postaci:
(a ∨ b ∨ x ∨ y ) gdzie:
|M[a, x] − M[b, y ]| > T , (a 6= b) ∧ (x 6= y )
Innymi słowy: klauzula koduje pary różnych komórek, które naruszają T−warunek.
Przykład
Niech będzie dana następująca macierz danych ciągłych:
a b c
1 1 2 3
2 2 3 5
T−ograniczenia
Ponieważ największa różnica pomiędzy komórkami wynosi 4, a wszystkie wartości są naturalne, jako wartości progu jest sens użyć tylko 3, 2, czy 1.
Funkcja odróżnialności dla progu T = 3 f3 = (1 + a + 2 + c) a b c 1 1 2 3 2 2 3 5 a b c 1 1 2 3 2 2 3 5 a b c 1 1 2 3 2 2 3 5 1 : ({2}, {a, b, c}) a: ({1, 2}, {b, c}) 2 : ({1}, {a, b, c}) a b c 1 1 2 3 2 2 3 5 c : ({1, 2}, {a, b})
Funkcja odróżnialności dla progu T = 2 f2 = (1 + a + 2 + c)(1 + b + 2 + c)(2 + a + c) = 2 + c + 1a + ab a b c 1 1 2 3 2 2 3 5 a b c 1 1 2 3 2 2 3 5 a b c 1 1 2 3 2 2 3 5 2 : ({1}, {a, b, c}) c : ({1, 2}, {a, b}) 1a : ({2}, {b, c}) a b c 1 1 2 3 2 2 3 5
Poprawność i maksymalność podejścia
W przygotowywanym kolejnym artykule udowodniono już, że w taki sposób generowane T −biklastry są dokładne (z punktu widzenia zadanego rozrzutu wartości) jak i są maksymalne w sensie inkluzji, to znaczy do uzyskanego biklastra nie można dołączyć wiersza bądź kolumny, bez naruszenia T −ograniczenia.
T−biklasteryzacja
Można powiedzieć — przez pewną analogię — że próg T wprowadza nam pewną binaryzację biklastrów: te, które spełniają T −warunek pozostają w formule (tzn. formuła będzie składać się implikantów prostych, kodujących te biklastry), natomiast pozostałe wcale w nią nie wchodzą.
Wprowadzając sztucznie próg T nie wiemy nic na temat, jak zachowują się biklasteryzowane dane nieco powyżej (jak i dużo powyżej) zadanego progu. Rozwiązaniem jest poszukiwanie wszystkich istniejących T −biklastrów dla wszystkich sensownych progów.
a b
1 1.1 1.1
2 2.3 4.4
vals= {1.1, 2.3, 4.4}
Kodowanie
Każda para różnych komórek kodowana jest jako klauzula zawierająca indeksy wierszy i kolumn tych komórek, jak również kody tych różnic α, które są nie większe od (modułu) różnicy rozpatrywanych komórek.
Przykład a b 1 1.1 1.1 2 2.3 4.4 fα = (1 + a + 2 + α1)(1 + a + 2 + b + α1) (1 + a + 2 + b + α2)(1 + a + 2 + b + α3) (1 + b + 2 + a + α1)(1 + b + 2 + α1) (1 + b + 2 + α2)(1 + b + 2 + α3) (2 + a + b + α1)(2 + a + b + α2) fα = (1 + a + 2 + α1)(1 + a + 2 + b + α1α2α3)(1 + b + 2 + a + α1) (1 + b + 2 + α1α2α3)(2 + a + b + α1α2) fα= 2 + 1a + 1b + ab + bα1+ 1α1α2+ α1α3α3 Interpertacja
Biklastry puste i dokładne
fα = 2 + 1a + 1b + ab + bα1+ 1α1α2+ α1α3α3
Tabela:Dokładne biklastry w macierzy C i odpowiadające im implikanty proste.
a b 1 1.1 1.1 2 2.3 4.4 a b 1 1.1 1.1 2 2.3 4.4 a b 1 1.1 1.1 2 2.3 4.4 2 : ({1}, {a, b}) 1a : ({2}, {b}) 1b : ({2}, {a})
T−biklastry
fα = 2 + 1a + 1b + ab + bα1+ 1α1α2+ α1α3α3
Tabela:T−biklastry macierzy C i odpowiadające im implikanty proste.
a b 1 1.1 1.1 2 2.3 4.4 a b 1 1.1 1.1 2 2.3 4.4 a b 1 1.1 1.1 2 2.3 4.4
bα1: ({1, 2}, {a}) 1α1α2: ({2}, {a, b}) α1α2α3: ({1, 2}, {a, b})
T = α1= 1.2 T = max{α1, α2} = 2.1 T = max{α1, α2, α3} = 3.3
Biklastry chaosu
Z punktu widzenia np. monitorowania urządzeń interesuje nas nie tyle podobieństwo, co często niepodobieństwo danych. Można zatem odwrócić definicję biklastra w następujący sposób: ch−biklastrem chaosu nazywamy taką podmacierz danej macierzy, w której żadna para komórek nie różni się o mniej niż ch.
Przykład (biklastry chaosu, niekoniecznie m.w.s.i.)
a b c d e f
1 1 2 3 1 2 2
2 51 45 1 88 98 122
3 38 32 2 105 68 112
Przykład (inny)
Rozpatrzmy następującą macierz wartości ciągłych chM:
a b c
1 0 0 1
2 0 0 2
3 3 4 1
Kodujemy pary różnych komórek takich, których wartości różnią się o mniej niż 1 (ponieważ macierz zawiera wartości całkowite, to w zasadzie kodujemy pary różnych komórek o tej samej wartości):
f1= (1 + a + b)(1 + 2 + a)✭✭✭ ✭✭ ✭✭✭ (1 + a + 2 + b)✭✭✭ ✭✭ ✭✭✭ (1 + b + 2 + a) . . . . . .(1 + 2 + b)(2 + a + b)(1 + 3 + c) a w postaci DNF:
a b c 1 0 0 1 2 0 0 2 3 3 4 1 a b c 1 0 0 1 2 0 0 2 3 3 4 1 a b c 1 0 0 1 2 0 0 2 3 3 4 1 a b c 1 0 0 1 2 0 0 2 3 3 4 1
1b: ({2, 3}, {a, c}) 1a: ({2, 3}, {b, c}) 23a: ({1}, {b, c}) 3ab: ({1, 2}, {c})
a b c 1 0 0 1 2 0 0 2 3 3 4 1 a b c 1 0 0 1 2 0 0 2 3 3 4 1 a b c 1 0 0 1 2 0 0 2 3 3 4 1
Przykład (ciąg dalszy)
Poszukujemy biklastrów chaosu o rozrzucie pomiędzy każdą parą elementów nie mniejszym niż 2 (kodujemy pary komórek, o różnicy mniejszej od 2): f2 = (1 + a + b)(1 + a + c)(1 + a + 2)✭✭ ✭✭ ✭✭✭✭ (1 + a + 2 + b)✭✭ ✭✭ ✭✭✭✭ (1 + a + 3 + c) . . . . . .(1 + b + c)✭✭✭ ✭✭ ✭✭✭ (1 + b + 2 + a)(1 + b + 2)✭✭✭ ✭✭ ✭✭✭ (1 + b + c + 3) . . . . . .✭✭✭ ✭✭ ✭✭✭ (1 + c + 2 + a)✭✭✭ ✭✭ ✭✭✭ (1 + c + 2 + b)(1 + c + 2)(1 + c + 3)(a + 2 + b) . . . . . .✭✭✭ ✭✭ ✭✭✭ (a + 2 + 3 + c)✭✭✭ ✭✭✭ ✭✭ (2 + b + 3 + c)✭✭✭ ✭✭✭ ✭✭ (2 + c + 3 + b)(2 + c + 3) Formuła w postaci DNF:
a b c 1 0 0 1 2 0 0 2 3 3 4 1 a b c 1 0 0 1 2 0 0 2 3 3 4 1 a b c 1 0 0 1 2 0 0 2 3 3 4 1 a b c 1 0 0 1 2 0 0 2 3 3 4 1
1bc: ({2, 3}, {a}) 13b: ({2}, {a, c}) 1ac: ({2, 3}, {b}) 13a: ({2}, {b, c})
a b c 1 0 0 1 2 0 0 2 3 3 4 1 a b c 1 0 0 1 2 0 0 2 3 3 4 1 a b c 1 0 0 1 2 0 0 2 3 3 4 1
Poprawność i maksymalność
Dowody wiążące implikanty proste i m. w s.i. biklastry chaosu zostały przeprowadzone i czekają na opublikowanie.
Podejście wyczerpujące
Należy się spodziewać, że w podobny wyczerpujący sposób można poszukiwać jednocześnie wszystkich sensownych ch−biklastrów.
a b
1 1.1 1.1
2 2.3 4.4
vals= {1.1, 2.3, 4.4}
Kodowanie
Każda para różnych komórek kodowana jest jako klauzula zawierająca indeksy wierszy i kolumn tych komórek, jak również kody tych różnic α, które są większe od (modułu) różnicy rozpatrywanych komórek.
Każda para różnych równych komórek również jest kodowana przez pewną klauzulę.
Formalna definicja fch = ^ (a ∨ b ∨ x ∨ y ) ∧^(a ∨ b ∨ x ∨ y ∨ αi) gdzie (a 6= b) ∨ (x 6= y ), αi ∈ ∆ takich że: a(x) = b(y ) lub (albo ,) |a(x) − b(y )| < αi
Przykład a b 1 1.1 1.1 2 2.3 4.4 fch = (1 + a + b)(1 + 2 + a + α2) (1 + 2 + a + α3)(1 + b + 2 + a + α2) (1 + b + 2 + a + α3)(2 + a + b + α3) fch = (1 + a + b)(1 + 2 + a + α2α3)(1 + b + 2 + a + α2α3)(2 + a + b + α3) fch= a + 12 + 1b + 2b + 1α3+ bα2α3 Interpertacja
Wizualizacja
fch = a + 12 + 1b + 2b + 1α3+ bα2α3
Tabela:Biklastry chaosu macierzy C i odpowiadające im implikanty proste.
a b 1 1.1 1.1 2 2.3 4.4 a b 1 1.1 1.1 2 2.3 4.4 a b 1 1.1 1.1 2 2.3 4.4 A: ({1, 2}, {b}), 1∧ 2 : ({∅}, {a, b}) 1∧ B : ({2}, {a}) α3= 3.3 α3= 3.3 α3= 3.3 a b 1 1.1 1.1 2 2.3 4.4 a b 1 1.1 1.1 2 2.3 4.4 a b 1 1.1 1.1 2 2.3 4.4 2∧ B : ({1}, {a}), 1∧ α3: ({2}, {a, b}), B∧ α2α3: ({1, 2}, {a}),
Agenda
1 Biklasteryzacja
2 Wnioskowanie boolowskie
3 Generowanie biklastrów w macierzy dyskretnej
4 Generowanie biklastrów w macierzy ciągłej
5 Inne zagadnienia
biklaster w szczególności możemy potraktować jako obraz cyfrowy, a jego poszczególne elementy jak piksele. Wtedy stosowanie pewnych prostych przekształceń kontekstowych może przynieść pewne pozytywne
(oczekiwane) efekty jak na przykład skrócenie czasu obliczeń, uogólnienie uzyskiwanych wyników.
Filtr kontekstowy
Rozpatrzmy proste progowanie binarne: dla zadanej maski 3x3 i progu
t = 1 procedura wygląda następująco: jeśli liczba zer w pikselach
znajdujących się pod maską jest mniejsza lub równa 1, to piksel w centrum maski nadpisujemy jedynką.
Efekty
W przypadku obu zbiorów liczba wyznaczonych biklastrów nie zmieniła się, zmieniła się jednak ich powierzchnia.
dane posortowany rozmiar biklastrów
oryginalne 3 3 5 5 5 6 8 8 8 8 8 8 8 9 9 9 9 10 przetworzone 3 4 4 5 5 5 6 8 8 8 9 10 10 10 12 12 12 12
Uzasadnienie wstawiania zer
Wstawienie dodatkowych zer powoduje, że uzyskane w ten sposób biklastry nie pokrywają całego zbioru jedynek, jednak nadal będą to biklastry dokładne, w kontekście oryginalnych danych.
Uzasadnienie wstawiania jedynek
Wstawienie dodatkowych jedynek sprawi, że zachowamy pokrycie
wszystkich jedynek w oryginalnych danych, jednak niekoniecznie wszystkie biklastry będą biklastrami dokładnymi.
Efekty stosowania przekształcania kontekstowego danych wejściowych:
liczba liczba
wartość iteracji jedynek klauzul biklastrów
#0 1 415 2 256 5 463 (+2 puste) #77 0 1 327 4 560 503 (+2 puste) #237 2 148 5 267 30 194 (+2 puste) #0 1 495 (+80) 2 176 576 (+2 puste) #77 1 1 334 (+7) 4 553 349 (+2 puste) #237 2 179 (+29) 5 236 8 397 (+2 puste) #0 1 505 (+90) 2 166 428 (+2 puste) #77 2 1 354 (+27) 4 533 260 (+2 puste) #237 2 258 (+110) 5 156 910 (+2 puste)
algorytm Johnsona
Zachłanny algorytm Johnsona, standardowo stosowany w zagadnieniach związanych z poszukiwaniem implikantów prostych, nie zdaje egzaminu. Poszukiwanie prostego implikantu odbywa się na wyszukiwaniu stopniowo najczęściej pojawiającego się w klauzulach literału, a następnie na
f = (a + b + c + e)(b + c + d)(e + f + g )(d + e + f )(h + i ) (formuła posiada 20 implikantów prostych)
literał a b c d e f g h i częstość 1 2 2 2 3 2 1 1 1 f{e}′ =✭✭ ✭✭ ✭✭ ✭✭ (a + b + c + e)(b + c + d) ✘✘ ✘✘ ✘✘ (e + f + g ) ✘✘ ✘✘ ✘✘ (d + e + f )(h + i ) f{e}′ = (b + c + d)(h + i ) ⇒ f{e,b}′′ = (h + i ) ⇒ f{e,b,h}′′′ = ∅
Rozpatrzmy następujący przykład — poszukiwanie biklastrów jedynek, więc kodujemy zera:
a b c d e f g h 1 0 0 1 1 0 0 0 0 2 0 1 1 0 0 0 0 0 3 0 1 0 0 0 0 0 0 literał a b c d e f g h 1 2 3 częstość 3 1 1 2 3 3 3 3 6 6 7
Po poprzednim kroku pozostały w formule tylko te klauzule, które są związane z kodowaniem zer w pierwszych dwóch wierszach macierzy:
a b c d e f g h 1 0 0 1 1 0 0 0 0 2 0 1 1 0 0 0 0 0 literał a b c d e f g h 1 2 częstość 2 1 0 1 2 2 2 3 6 6 f{1,2,3}′′′ = ∅
Propozycja modyfikacji:
1 Tak długo, jak dodanie pary literałów kodujących wiersz i kolumnę nie
powoduje uzyskania pustego biklastra, postępujemy standardowo.
2 Jeśli dodanie pary literałów powoduje wymienioną sytuację to:
1 dodajemy literały kodujące wszystkie wiersze, poza ostatnim, 2 sprawdzamy, które klauzule nie zostały pokryte przez wiersze
wspomniane powyżej,
Efekt zastosowania:
liczba
wartość jedynek klauzul biklastrów Johnson
#0 1 415 2 256 5 463 (+2 puste) 224
#77 1 327 4 560 503 (+2 puste) 129
#237 2 148 5 267 30 194 (+2 puste) 201
. . . nie wspominając już o przyspieszeniu czasu obliczeń z tygodni do minut ,.
Agenda
1 Biklasteryzacja
2 Wnioskowanie boolowskie
3 Generowanie biklastrów w macierzy dyskretnej
4 Generowanie biklastrów w macierzy ciągłej
5 Inne zagadnienia
Podziękowania
Serdeczne podziękowania dla p. prof. Dominika Ślęzaka za cierpliwość, czas i merytoryczne wsparcie.
Serdeczne podziękowania dla p. prof. Marka Sikory, za udostępnienie mocy obliczeniowej.
Lista A
Michalak M., Ślęzak D.: Boolean Representation for Exact biclustering, Fundamenta Informaticae (przyjęte do druku),
Michalak M., Ślęzak D.: On Boolean Representation of Continuous Data Biclustering, (w przygotowaniu - na ukończeniu)
Konferencje WoS lub lista A
Michalak M., Jaksik R., Ślęzak D.: Herustic Search of Exact Biclusters (pre-produkcja ,)
Problemy na już i na później:
rozwój i udostępnienie wykorzystywanego oprogramowania, inne heurystyki znajdowania implikantów,
heurystyki znajdowania minimalnego pokrycia jedynek w danych, za pomocą maksymalnych biklastrów,
sterowanie rozmiarem (proporcją wymiarów) biklastra np. w zmodyfikowanym Johnsonie,
definiowanie innych warunków, jakie mają spełniać biklastry i przełożenie problemu na wnioskowanie boolowskie,
przykłady zastosowania w praktyce (dane biomedyczne, monitorowanie urządzeń),