• Nie Znaleziono Wyników

3. Metoda APS inkrementacyjnego pozyskiwania reguł

3.5. Algorytmy przetwarzania danych

3.5.4 Eliminacja wartości nieznanych

Problem usuwania wartości N w przekształconej porcji faktów, realizowanego w cyklu APS przez procedurę Usuń_Wartości_N (wiersz 12.), można sformułować w poniższy sposób.

Problem: Usuwanie wartości nieznanych w porcji faktów

Dane: porcja faktów KB#

H (t1, t2), schemat historii S#, maksymalna dopuszczalna liczba atrybutów z nieznaną wartością w jednym fakcie ηc.

Wyznaczyć: porcję faktów KB#

H (t1, t2) bez wartości N. Algorytm rozwiązania problemu

Algorytm ENV Usuwanie nieznanych wartości atrybutów

Wejście: porcja faktów KB#

H (tsc, tec), maksymalna dopuszczalna liczba atrybutów z nieznaną wartością w jednym fakcie ηc(vc), gdzie vc KBT; zbiory SS

HSH \ {K, T}, SM

HSH \ {K, T}, gdzie SS

H SM

Wyjście: porcja faktów KB#

H (tsc, tec) bez wartości N; zaktualizowane wartości tsc(vc) i tec(vc). 1. Dla każdego faktu s* KB#

H (tsc, tec) powtarzaj kroki 2–4. 2. m := card {Ai(v) S#: Ai(v)(s*) = N}

3. Jeżeli 0 < m ≤ ηc, to KB#

H (tsc, tec) := KB#

H (tsc, tec) ∪

{s' = {(K, K(s*)), (T, T(s*)), (A1(v1), a1(v1)), (A1(v2), a1(v2)), ..., (A1(vk), a1(vk)), ..., (An(vl), an(vl)), (An(v_l+1), an(v_l+1)), ..., (An(vp), an(vp))}: Ai(vj) S# i {1,2, …, n} j {1,2, …, p} ∧ (∀Ai(vj) S#, gdzie Ai SM H.(Ai(vj)(s') ∈ {0, 1}) ∧ (Ai(vj)(s*) ≠ N ⇔ Ai(vj)(s*) = Ai(vj)(s'))) ∧ (∀Ai(vj) S#, gdzie Ai SS H.(Ai(vj)(s') ∈ {0, 1}) ∧ (Ai(vj)(s*) ≠ N ⇔ Ai(vj)(s*) = Ai(vj)(s')) ∧ (∀Ai SS H .card {Ai(vj) S#: Ai(vj)(s') = 1} = 1))} 4. Jeżeli m > 0, to KB# H (tsc, tec) := KB# H (tsc, tec) \ {s*}. 5. Koniec Dla. 6. tsc(vc) := MIN{T(s'): s' KB# H (tsc, tec)}. 7. tec(vc) := MAX{T(s'): s' KB# H (tsc, tec)}. 8. Zwróć KB# H (tsc, tec). Komentarz

Algorytm ENV zastępuje wszystkie fakty z co najmniej 1 i co najwyżej ηc wartościami N, nowymi faktami, w których atrybuty o dotychczas nieznanych wartościach przyjmują wszystkie dopuszczalne wartości. Złożony warunek w kroku 3. zapewnia podstawową spójność danych, gwarantując, że w podzbiorze atrybutów Ai(vj) S#, pochodzących od atry-butu jednowartościowego Ai SS

H, tylko jeden element może przyjąć wartość 1. Z kolei w podzbiorze atrybutów Aw(vj) S#, pochodzących od atrybutu wielowartościowego Aw SM

H, wartość 1 może przyjąć więcej, niż jeden element.

Zaktualizowanie w wektorze danych przebiegu vc wartości czasu pierwszego faktu tsc

i czasu ostatniego faktu tec w badanej porcji jest konieczne, ponieważ w kroku 4. tak najwcześniejszy, jak i najpóźniejszy fakt może być usunięty bez zastąpienia go innymi faktami (w kroku 3.), jeśli zawiera on więcej, niż ηc wartości nieznanych.

Warto jeszcze zauważyć, że w wynikowej porcji KB#

H (tsc, tec) oba atrybuty specjalne, to znaczy zarówno klucz K, jak i czas T, mogą utracić własność unikalności, ponieważ zgodnie z warunkiem w kroku 3. wszystkie nowe fakty s', generowane z faktu s*, zawierającego wartości N, mają takie same wartości K i T, jak bazowy fakt s*. Brak unikalności atrybutów K i T nie powinien stanowić problemu dla algorytmu eksploracji danych, który ma przetwarzać porcję KB#

H (tsc, tec). Gdyby jednak było inaczej (np. przy zastosowaniu nowego algorytmu, który wymaga unikalnych kluczy przetwarzanych faktów), należałoby nieco zmodyfikować algorytm ENV, na przykład dodając na końcu pętlę, w której wszystkie fakty nowej porcji KB#

H (tsc, tec) miałyby nadane nowe, unikalne wartości kluczy K. Nie należy natomiast modyfikować powtarzających się wartości czasu T, gdyż przy obliczaniu średniego czasu

3.5. Algorytmy przetwarzania danych 95 reguły opartej na porcji KB#

H (tsc, tec) zwielokrotnione wartości T działają jak wagi, czyli w pełni zgodnie z intuicją i założeniami metody APS.

Nazwa algorytmu jest utworzona na podstawie pierwszych liter opisu działania w języku angielskim: usunięcie nieznanych wartości (ang. Elimination of N-Values, ENV). Przykład obliczeniowy, ilustrujący działanie algorytmu ENV, jest zamieszczony w Dodatku A.

Analiza złożoności obliczeniowej algorytmu ENV

Szacujemy liczbę operacji wykonywanych przez algorytm, takich, jak: odczyt, porównanie i zapis wartości w strukturach danych. Przypuśćmy, że porcja KB#

H (tsc, tec) zawiera n faktów o schemacie S# = {K, T, U'}, z czego k faktów zawiera przynajmniej jedną wartość nieznaną, a maksymalna liczba wartości nieznanych w pojedynczym fakcie wynosi m; przy czym k, m, nℕ i k n. (Symbole k, m i n nie oznaczają tutaj tych wielkości, które występują w Algorytmie ENV). Wówczas liczba odczytów faktów s* z porcji KB#

H (tsc, tec) w kroku 2. wynosi n. Tyle samo, to znaczy n, jest operacji obliczania liczby wartości N w wierszu (krok 3.). Liczbę nowych faktów s', dodawanych do KB#

H (tsc, tec) w kroku 3. można oszacować z góry za pomocą iloczynu k 2m. Jest to najbardziej pesymistyczna ocena, która zakłada, że we wszystkich k wierszach liczba atrybutów z wartością N jest maksymalna i wynosi m, oraz że żadne dwa z nich nie pochodzą od pojedynczego atrybutu jednowartościowego, przez co liczba generowanych faktów jest również zawsze maksymalna i wynosi 2m. Następnie w kroku 4. wykonywanych jest k operacji usuwania starych faktów z wartościami N. Dodatkowo, w krokach 6 i 7 obliczane są nowe wartości parametrów tsc i tec, co oznacza w najgorszym przypadku około 2(n + k2m) operacji odczytu i porównań. Stąd też sumaryczną liczbę rozważanych operacji możemy oszacować za pomocą poniższej funkcji Tz (k, m, n). |Tz (k, m, n)| = |n + n + k2m + 2n + k2m| = |4n + 2k2m| = |4n + 4k2m-1| ≤ |4(n + n2m)| =

|4n(1 + 2m)| ≤8|n 2m| = c|F(m, n)|, c = 8, dla n ≥ 0, m ≥ 0.

A zatem algorytm ENV ma wysoką, wykładniczą złożoność obliczeniową rzędu O (n2m). Z tego względu może on być wydajnie stosowany tylko dla niskich wartości progu ηc.

3.5.5 Odkrywanie reguł związku

Charakterystyka procesu odkrywania reguł związku, realizowanego przez procedurę Znajdź_Reguły (wiersz 13.), jest zgodna z definicją problemu, podaną w Rozdziale 1. Eksploracja danych jako metoda maszynowego uczenia się. Różnica pomiędzy oboma sformułowaniami problemu polega na zmodyfikowanej reprezentacji reguł r = (X, Y, sup, con, b, tm), stosowanej w metodzie APS, która wymaga opisania reguł za pomocą dodatkowych parametrów: liczby bazowej b oraz czasu tm. Proponowany poniżej algorytm ARM zawiera w sobie wywołanie właściwego algorytmu odkrywania reguł związku, którego wybór zależy od konkretnej aplikacji.

Problem: Znajdowanie reguł związku

Dane są: zbiór atrybutów U', porcja faktów B = KB#

H (tsc, tec) o schemacie S# = {K, T, U'} oraz progi minimalnego poparcia σc i pewności γc, dla bieżącego przebiegu.

Algorytm rozwiązania problemu

Algorytm ARM Znajdowanie reguł związku

Wejście: porcja KB#

H (tsc; tec); ograniczenia Xc(vc), Yc(vc), σc(vc), γc(vc), mx(vc), my(vc), bc(vc), tmc(vc), gdzie vc KBT.

Wyjście: zbiór nowych reguł R.

1. R := ∅.

2. Jeżeli algorytm odkrywania reguł związku przyjmuje ograniczenia atrybutów poprzednika X i następnika Y reguły, to:

R := Algorytm_Odkrywania_Reguł (σc, γc, Xc, Yc, mx, my).

3. Jeżeli algorytm odkrywania reguł związku nie przyjmuje ograniczeń atrybutów poprzednika X i następnika Y reguły, to wykonaj kroki 4–5.

4. R := Algorytm_Odkrywania_Reguł (σc, γc).

5. R := {r R: X(r) Xc Y(r) Yc card X(r) mx card Y(r) my}. 6. Koniec Jeżeli.

7. Jeżeli ¬R ≡ ∅, to wykonaj krok 8.

8. Dla każdej reguły riR, i [1; card R] powtarzaj kroki 9–10. 9. b(ri) := bc(vc). 10. tm(ri) := tmc(vc). 11. Koniec Dla. 12. Koniec Jeżeli. 13. Zwróć: R. Komentarz

Algorytm ARM stanowi jedynie swoistą obudowę właściwego algorytmu odkrywania reguł związku, która umożliwia jego dopasowanie do wymogów metody APS. W algorytmie rozważane są dwa przypadki. W pierwszym z nich algorytm Algorytm_Odkrywania_Reguł, obok standardowych progów minimalnego poparcia i pewności (odpowiednio σc i γc), pozwala także na przekazanie ograniczeń semantycznych dotyczących odkrywanych reguł, a więc: zbioru atrybutów, które mogą wystąpić (w sensie są dozwolone) w poprzedniku i następniku reguły – odpowiednio Xc i Yc, oraz maksymalnej liczby atrybutów w poprzedniku i następniku – odpowiednio mx i my. Wówczas wszystkie ograniczenia są przekazywane do tego algorytmu, a on daje w wyniku zbiór reguł R. W drugim przypadku zakładamy, że wykorzystany Algorytm_Odkrywania_Reguł akceptuje wyłącznie progi σc i γc. W takiej sytuacji algorytm ten zwraca zbiór reguł, który musi być następnie odpowiednio zawężony,

3.5. Algorytmy przetwarzania danych 97 zgodnie z dodatkowymi ograniczeniami Xc, Yc, mx, my (krok 5.). Rozróżnienie na te dwa przypadki zwiększa elastyczność algorytmu ARM, pozwalając na dopasowanie do różnych, gotowych algorytmów odkrywania reguł związku.

Niezależnie od tego, który z powyższych przypadków zachodzi, wszystkim nowo odkrytym regułom nadawane są takie same wartości miar b(r) i tm(r), czyli wspólne dla wszystkich reguł znajdowanych w pojedynczym przebiegu.

Nazwa algorytmu ARM jest utworzona na podstawie pierwszych liter angielskiego opisu realizowanej operacji odkrywanie reguł związku (ang. Association Rule Mining, ARM). Analiza złożoności obliczeniowej algorytmu ARM

Złożoność obliczeniowa algorytmu ARM jest silnie zależna od złożoności wywoływanego w nim, oddzielnego Algorytmu_Odkrywania_Reguł. Dodatkowe operacje, realizowane w krokach 9. i 10. dają złożoność rzędu O (n), przy liczbie n reguł r R, a zatem nie stanowią one poważnego obciążenia obliczeniowego.