1. 2. Odkrywanie asocjacji...1 Algorytmy...1 1. A priori...1 2. Algorytm FP-Growth...2 3. Wykorzystanie narzędzi Oracle Data Miner i Rapid Miner do odkrywania reguł asocjacyjnych...2 3.1. Odkrywanie reguł asocjacyjnych Oracle Data Miner...2 3.2. Odkrywanie reguł asocjacyjnych Rapid Miner...7 1. Odkrywanie asocjacji Odkrywanie asocjacji Klasa metod obejmująca odkrywanie nieznanych zależności pomiędzy występowaniem grup elementów w bazie danych. Ogólna postać reguły X => Y Zbiór atrybutów X przesłanki Zbiór atrybutów Y konkluzje Gdy R jest zbiorem atrybutów to X R, Y R-X Interpretacja reguły Jeśli dana transakcja zawiera X to ma tendencję zawierać Y Odkrywane zależności posiadają pewne miary statystyczne określające ich wsparcie i ufność. Wsparcie {ang. support} informuje jak często dane towary znajdują się razem w jednym koszyku. Formalnie możemy to zapisać jako P{A B}, Gdzie: A liczba sprzedanych produktów A B liczba sprzedanych produktów B Ufność/Zaufanie {ang. confidence} zdefiniowane jako prawdopodobieństwo warunkowe zdarzenia A pod warunkiem zajścia zdarzenia B. 2. Algorytmy 1. A priori Elementy każdej transakcji ze zbioru D są uporządkowane leksykograficznie. 1. wyodrębnienie z bazy danych D zbiorów jednoelementowych, które występują w transakcjach, i sprawdzenie, które z nich są częste (posiadają wsparcie co najmniej minsup). 2. w oparciu o zbiory częste jednoelementowe generowanie zbiorów kandydujących (ang. candidate itemsets) dwuelementowych, które mogą być zbiorami częstymi. Dla każdego wygenerowanego zbioru kandydującego obliczane jest jego wsparcie w bazie danych D. Jeżeli obliczone wsparcie zbioru kandydującego wynosi co najmniej minsup, to jest on dołączany do listy zbiorów częstych 3. W każdym kolejnym kroku, w oparciu o zbiory częste znalezione w poprzednim kroku, generowane są zbiory kandydujące o rozmiarze większym o 1. Działanie algorytmu się kończy, gdy nie ma można już wygenerować kolejnych zbiorów kandydujących. Wynikiem działania algorytmu jest suma k-elementowych zbiorów częstych (k=1, 2,...). -1-
2. Algorytm FP-Growth 1. 2. W algorytmie FP-Growth proces odkrywania zbiorów częstych jest realizowany w dwóch krokach: Kompresja bazy danych D do FP-drzewa: baza danych D jest kompresowana i przekształcana do postaci tak zwanego FP-drzewa. Eksploracja FP-drzewa: FP-drzewo jest analizowane w celu znalezienia zbiorów częstych. Kompresja danych: 1. Pierwszy krok algorytmu rozpoczyna się od odczytu bazy danych D w celu znalezienia wszystkich 1elementowych zbiorów częstych (analogicznie jak w przypadku algorytmu Apriori). 2. Z każdej transakcji Ti D, i = 1,..., n, są usuwane te elementy, które nie są częste, to jest, nie są 1elementowymi zbiorami częstymi. 3. W wyniku otrzymujemy zmodyfikowany zbiór transakcji T zawierających wyłącznie elementy będące 1elementowymi zbiorami częstymi (otrzymana w wyniku tej transformacji baza danych ma, najczęściej, znacznie mniejszy rozmiar aniżeli wyjściowa baza danych stąd nazwa kroku - krok kompresji bazy danych). 4. Dla każdej transakcji Ti, i = 1, 2,..., n, elementy transakcji są, sortowane według malejących wartości ich wsparcia, tworząc listę elementów. Posortowane transakcje T1, T2,..., Tn, w ostatnim etapie tego kroku, są transformowane do FP-drzewa. Transformacja skompresowanej bazy danych D do FP-drzewa jest realizowana w następujący sposób. 1. Tworzymy korzeń FP-drzewa i przypisujemy mu etykietę null". 2. Dokonujemy ponownego odczytu bazy danych D i dla pierwszej transakcji T1 D tworzymy ścieżkę w FP-drzewie, której początkiem jest korzeń drzewa. 3. Kolejność występowania elementów w posortowanej transakcji odpowiada kolejności wierzchołków w ścieżce reprezentującej daną transakcję. Dla każdego wierzchołka należącego do ścieżki, wartość licznika transakcji jest, początkowo, równa 1. 4. Dla kolejnej transakcji T2 D tworzymy kolejną ścieżkę rozpoczynającą się od korzenia. 5. Jeżeli lista elementów transakcji T2 posiada wspólny prefiks z listą elementów transakcji T1, wówczas, ścieżka reprezentująca T2 jest konstruowana w następujący sposób:. Załóżmy, że wspólny prefiks transakcji T1 i T2 składa się z następujących elementów: I1, I2,..., Ik, gdzie Ii T1, i = 1,..., k i Ii T2, i = 1,..., k. Transformacja elementów transakcji T2 należących do wspólnego prefiksu I1, I2,..., Ik nie tworzy nowych wierzchołków drzewa, lecz współdzieli istniejąca w FP-drzewie ścieżkę I1, I2,..., Ik utworzona przy transformacji transakcji T1. Pozostałe elementy transakcji T2, nie należące do wspólnego prefiksu, tworzą nowe wierzchołki połączone lukami - początkiem tej ścieżki jest wierzchołek Ik. 6. W celu przyspieszenia i ułatwienia przeszukiwania FP-drzewa, algorytm FP-Growth utrzymuje dodatkową strukturę pełniącą rolę katalogu, nazywaną tablicą nagłówków elementów lub, krotko, tablicą nagłówkową, która dla każdego elementu wskazuje na jego lokalizację w FP-drzewie. 7. Jeżeli dany element występuje wielokrotnie w FP-drzewie, to wskaźniki do wierzchołków reprezentujących dany element tworzą listę wskaźników 3. Wykorzystanie narzędzi Oracle Data Miner i Rapid Miner do odkrywania reguł asocjacyjnych. 3.1. Odkrywanie reguł asocjacyjnych Oracle Data Miner. 1. Z menu głównego wybierz Activity Build. Na ekranie powitalnym kliknij przycisk Dalej>. 2. Z listy Function Type wybierz Association Rules. Jedyny dostępny algorytm, Apriori, zostaje automatycznie wybrany jako algorytm przetwarzający. Kliknij przycisk Dalej>. -2-
3. Oracle Data Miner wymaga do odkrywania asocjacji pionowej organizacji bazy danych. 4. Wskaż schemat DMUSER i tabelę MARKET_BASKET_DATA jako źródło danych do eksploracji. Jako atrybut Item ID wybierz z listy atrybut PROD_NAME. Kliknij przycisk Dalej>. 5. Jako identyfikator transakcji wskaż atrybut CUST_ID. Kliknij przycisk Dalej>. -3-
6. Podaj nazwę i opis dla procesu eksploracji. Kliknij przycisk Dalej>. 7. Kliknij przycisk Advanced Settings. Upewnij się, że na zakładce Sample opcja Enable Step jest wyłączona (eksploracja zostanie przeprowadzona na całym zbiorze danych). Przejdź na zakładkę Build. Zmień wartość parametru minimalnego wsparcia (Minimum Suport %) na 2, a wartość parametru minimalnej ufności (Minimum Confidence %) na 50. Ogranicz długość znajdowanych reguł asocjacyjnych do 4 (Limit Number of Attributes in each Rule). Kliknij przycisk OK. Upewnij się, że opcja -4-
Run upon finish jest zaznaczona. Kliknij przycisk Zakończ i poczekaj na zakończenie wykonywania się algorytmu Apriori. 8. Kliknij odnośnik Results w bloku Build. Kliknij przycisk Get Rules w prawym górnym rogu okna. Kliknij przycisk Edit umieszczony pod lewym oknem, zaznacz wartość Mouse Pad i przenieś ją do prawego panelu. Podobnie wybierz element Standard Mouse. Kliknij przycisk OK. 9. W prawym panelu w oknie pobierania reguł pozostaw wpisaną tam wartość <Any>. Upewnij się, że pola wyboru związane z filtrowaniem reguł według wsparcia i ufności są odznaczone. Kliknij przycisk OK. -5-
10. Wybierz dowolną regułę z listy i zaznacz ją. W dolnym oknie pojawi się szczegółowy raport na temat znalezionej reguły asocjacyjnej. 11. Kliknij na (ikonkę eksportu) umieszczoną w prawym górnym rogu tuż nad listą znalezionych reguł asocjacyjnych. Jako format pliku eksportu wybierz CSV. Kliknij przycisk OK. Zapisz plik w lokalnym systemie plików. Obejrzyj zawartość pliku. -6-
3.2. Odkrywanie reguł asocjacyjnych Rapid Miner. Rapid Miner umożliwia wyszukanie reguł asocjacyjnych o odpowiednim wsparciu i zaufaniu. Podstawowymi parametrami, które mają wpływ na wynik eksploracji, są: minimalna wartość wsparcia i minimalna wartość ufności. Najwięcej czasu zużywa wczytywanie i przetwarzanie danych z plików CSV. Dane pobrane należało dodatkowo przekształcić do postaci macierzy, któraprzekazywana była algorytmowi FP-Growth. Pierwszy problem rozwiązano, implementując bezpośrednio w programie Rapid Miner odczyt transakcji z bazy danych za pomocą kwerend SQL. Następnie dane przetwarza się do postaci macierzy użytej do wyszukiwania reguł przez algorytm FP-Growth. Przykładowy proces przedstawia rysunek: Selekcja danych W celu wybrania określonych atrybutów można wykorzystać operator Select Attributes, który daje możliwość ustalenia podzbioru atrybutów. -7-
Czyszczenie danych Rapid Miner umożliwia zidentyfikowanie tzw. Outliers a także pozwala na uzupełnienie brakujących danych. Brakujące wartości atrybutów. W przypadku danych niekompletne można próbować wypełnić puste miejsca na podstawie znanych wartości danego atrybutu w innych przykładach, np. przypisując w puste miejsce średnią wartość tego atrybutu dla wszystkich przykładów należących do tej samej klasy, dla których wartość tego atrybutu jest znana. Uzupełnianie brakujących danych jest możliwe przy zastosowaniu operatora Replace MissingValues. Wynikowy zestaw danych, uzupełniony o estymowane brakujące wartości, otrzymamy korzystając min. z operatora Write CSV. Dane te następnie można w kolejnym procesie przetwarzania danych. -8-
-9-