Zastosowanie metod eksploracji danych Data Mining w badaniach ekonomicznych SAS Enterprise Miner rok akademicki 2014/2015
Analiza asocjacji i sekwencji
Analiza asocjacji Analiza asocjacji polega na identyfikacji współzależności cech. Umożliwia wykrycie logicznych reguł występujących między zmiennymi w zbiorze danych. Analiza polega na identyfikacji pozycji, które występują razem. Znana jest też pod nazwą analiza koszykowa (market basket analysis). Słowo koszykowa odnosi się do wózka w supermarkecie, do którego klienci wrzucają wybrane towary 3
Analiza asocjacji - problemy Jakie produkty są kupowane najczęściej razem? Które produkty nigdy nie są kupowane razem? Jakie jest prawdopodobieństwo, że klienci, którzy kupili produkt A, kupią również produkt B? 4
Reguły asocjacyjne Dzięki odkryciu współzależności między cechami możemy stworzyć reguły postaci: jeżeli cecha A towarzyszy określonemu zdarzeniu, to cecha B towarzyszy temu zdarzeniu z określonym prawdopodobieństwem (np. 90%) Przykład Reguły asocjacyjne (association rules) maja postać: Jeżeli A, to B Jeżeli [poprzednik], to [następnik] (przyjmuje się, że zbiory A i B są rozłączne) Jeżeli klient kupił kawę i śmietankę, to kupił ciastka Zapisujemy to w postaci [Kawa & Śmietanka] [Ciastka] 5
Reguły asocjacyjne Inne przykłady [Koszula] [Krawat] [Buty] [Skarpety] [Piwo] [Papierosy & Chipsy] Jeżeli transakcja pasuje do reguły, tzn. spełnione są warunki poprzednika i następnika, to mówimy, że reguła zawiera określoną transakcję (transakcja wspiera określona regułę asocjacyjną) 6
Reguły asocjacyjne - oznaczenia I={i 1,i 2,..., i n } zbiór towarów (items) Każdy element i j jest towarem możliwym do nabycia T j transakcje T j I Każda transakcja T j stanowi zbiór towarów zakupionych przez klienta j (tzw. koszyk). Baza transakcji zawiera zbiór par (id j, T j ), gdzie id j - identyfikator klienta j, T j - zbiór towarów zakupionych przez klienta j. 7
Przykład Miejscowy rolnik ma przydrożne stoisko z warzywami i sprzedaje artykuły zamieszczone w tabeli: i 1 i 2 Szparagi Fasola Klienci zjeżdżają na bok drogi i kupują różne kombinacje artykułów. (np.{brokuły, zielona papryka, kukurydza}. i 3 i 4 i 5 i 6 i 7 Brokuły Kukurydza Zielona papryka Kabaczki Pomidory 8
Przykład T 1 brokuły, zielona papryka, kukurydza T 2 szparagi, kabaczki, kukurydza W ciągu jednego popołudnia dokonano 14 transakcji. T 3 T 4 T 5 kukurydza, pomidory, fasola, kabaczki zielona papryka, kukurydza, pomidory, fasola fasola, szparagi, brokuły T 6 kabaczki, szparagi, fasola, pomidory Uwaga W analizie koszykowej nie interesuje nas, jaką ilość towaru klient kupił. Ważne jest tylko, czy kupił dany towar, czy nie. T 7 T 8 T 9 T 10 pomidory, kukurydza brokuły, pomidory, zielona papryka kabaczki, szparagi, fasola, pomidory fasola, kukurydza T 11 zielona papryka, brokuły, fasola, kabaczki T 12 szparagi, fasola, kabaczki T 13 kabaczki, kukurydza, szparagi, fasola T 14 kukurydza, zielona papryka, pomidory, fasola, brokuły 9
Format danych macierzowy Transakcja Szparagi Fasola Brokuły Kukurydza Zielona papryka Kabaczki Pomidory T 1 0 0 1 1 1 0 0 T 2 1 0 0 1 0 1 0 T 3 0 1 0 1 0 1 1 T 4 0 1 0 1 1 0 1 T 5 1 1 1 0 0 0 0 T 6 1 1 0 0 0 1 1 T 7 0 0 0 1 0 0 1 T 8 0 0 1 0 1 0 1 T 9 1 1 0 0 0 1 0 T 10 0 1 0 1 0 0 0 T 11 0 1 1 0 1 1 0 T 12 1 1 0 0 0 1 0 T 13 1 1 0 1 0 1 0 T 14 0 1 1 1 1 0 1 10
Format transakcyjny Wymagane są dwie kolumny: identyfikator transakcji, pozycja (zakupiony towar). Ten sam identyfikator transakcji może występować wiele razy. W kolumnie towaru każdy wiersz zawiera tylko jedną pozycję. EM SAS wymaga, aby dane były zapisane w formacie transakcyjnym. Transakcja T 1 T 1 T 1 T 2 T 2 T 2 T 3.. T 14 T 14 Artykuł brokuły zielona papryka kukurydza szparagi kabaczki kukurydza kukurydza.. fasola brokuły 11
Charakterystyki reguł asocjacyjnych A B Wsparcie reguły (support) n( A B ) =P( A B ) N Ufność reguły (confidence) n( A B ) =P(B A ) n( A ) Przyrost (lift) ufnosc P (B ) = P (B A ) P(B ) N liczba wszystkich transakcji, n (X) liczba transakcji zawierających X 12
Charakterystyki reguł asocjacyjnych A B Analitycy mogą preferować reguły, które mają duże wsparcie i dużą ufność. Mocne reguły są to takie reguły, dla których wsparcie i ufność są większe niż pewne ustalone wartości minimalne. Jeżeli towary B są nabywane często, ufność każdej reguły A B będzie duża. Wtedy należy rozważać przyrosty. Przyrost jest większy niż 1, gdy P(B A )>P (B ) Oznacza to, że gdy klient zakupi towar A, to wzrasta prawdopodobieństwo zakupu towaru B. 13
Przykład Zawarto: Reguła asocjacyjna: [Buty] [Skarpety] N = 1 000 000 transakcji 200 000 - n(buty) 50 000 - n(skarpety) 20 000 - n(buty & skarpety) Policz: wsparcie, ufność, przyrost, prawdopodobieństwo kupienia skarpet 14
Algorytm Apriori Najpopularniejszy algorytm generowania reguł asocjacyjnych Apriori został zaproponowany w pracy [R. Agrawal i R. Srikant, 1993] Apriori jest algorytmem iteracyjnym. W każdej iteracji znajduje się zbiory o rozmiarach 2, 3 (liczba towarów w regule) i sprawdza się, czy są one częste. 15
Algorytm Apriori częstość zbioru Częstość zbioru zdarzeń (towarów) A jest to liczba transakcji zawierająca dany zbiór: n(a) Zbiór A jest częsty, gdy występuje w transakcjach przynajmniej pewną ustaloną minimalną liczbę razy Φ. Przyjmijmy np. Φ = 4 16
Algorytm Apriori częstość zbioru Oznaczmy: F k - zbiór częstych koszyków o liczbie towarów k C k zbiór koszyków o liczbie towarów k Tworzenie reguł asocjacyjnych odbywa się w dwóch etapach: Znajdź wszystkie zbiory częste (dla ustalonego Φ). Na podstawie częstych zdarzeń utwórz reguły asocjacyjne, które spełniają warunek minimalnego wsparcia i poziomu ufności. 17
Algorytm Apriori Tworzenie zbiorów częstych: łączenie do zbioru C k wstawiamy A B takich par, które mają wspólne k-2 A, B F k 1 początkowych elementów Niech F 2 = {ab, ac, ad, ae, bc, bd, be} Wówczas C 3 = {abc, abd, abe, acd, ace, ade, bcd, bce, bde} 18
Algorytm Apriori F 2 = {ab, ac, ad, ae, bc, bd, be} C 3 = {abc, abd, abe, acd, ace, ade, bcd, bce, bde} obcinanie usuwamy z C k zbiory, których nie wszystkie podzbiory (k-1)-elementowe są w F k--1 (np. tu możemy usunąć acd, bo cd nie znajduje się w F k--1 ). Po obcięciu mamy C 3 ={abc, abd, abe} usuwanie usuwamy z C k zbiory, które nie są częste i otrzymujemy zbiór F k 19
Przykład zbiór danych Assoc1 Wymagane są dwie kolumny: identyfikator (numer) transakcji, nazwa produktu (kod produktu nie będzie wykorzystany). Zbiór danych ma 47 obserwacji 20
Projekt Asocjacje Tworzymy projekt Asocjacje, a w nim diagram Warzywa. W Data Sources deklarujemy zbiór ASSOC1 znajdujący się w bibliotece dmlib. Zbiór ten powinien mieć rolę Transaction. 21
Diagram projektu analizy asocjacji Diagram Warzywa zawiera tylko dwa węzły: Input Data i Association 22
Zmienne wykorzystane w analizie asocjacji zmienna transakcja ma rolę id zmienna produkt ma rolę target 23
Parametry węzła Association Zostawimy domyślne wartości węzła, zmieniając tylko pozycję Export Rule by ID na Yes. Spowoduje to utworzenie tabeli zawierającej informacje o znalezionych regułach. Będą brane pod uwagę reguły, które zawierają co najwyżej 4 towary Minimalna ufność wynosi 10% Minimalne wsparcie wynosi 5% Maksymalna liczba generowanych reguł 200 Jeżeli interesujemy się regułami dla rzadko nabywanych towarów minimalne wsparcie powinno być małe. 24
Wyniki Wyniki są przedstawiane domyślnie w czterech oknach: Statistics Plot, Rule Matrix, Statistics Line Plot, Output. 25
Charakterystyki dla reguł Relations - liczba pozycji, jaka występuje w regule (można ustalić maksymalną liczbę pozycji np. 4) Lift - czynnik wskazujący, jak rośnie wiarygodność następnika reguły, przy wzroście wiarygodności poprzednika (pożądane są wartości lift większe od 1); Support - częstość występowania jednocześnie poprzednika i następnika (w %); Confidence - częstość występowania następnika, gdy występuje poprzednik (w %); Transaction Count - liczba transakcji 26
Statistics Plot Jest to wykres zależności wsparcia i ufności. Kolor wskazuje, ile pozycji występuje w znalezionej regule (2 lub 3 lub 4). 27
Statistics Plot Klikając na danej pozycji można odczytać postać reguły oraz wartości ufności i wsparcia reguły, np. reguła kabaczki -> fasola ma ufność 85,71%, wsparcie 42,86%. Występują też reguły, które mają ufność 100%, ale niskie wsparcie, np. zielona papryka & pomidory & kukurydza -> fasola. 28
Rule Matrix Wykres pokazuje wartości ufności (za pomocą kolorów) w rozbiciu na poprzednik reguły (oś pionowa) i następnik reguły (oś pozioma), np. szparagi -> kabaczki.= 83,33% 29
Statistics Line Plot Wykres pokazuje wartości statystyk: przyrost, oczekiwana ufność, ufność, wsparcie dla wszystkich reguł. Reguły są ułożone malejąco według przyrostu.. Przykład dla reguły 127. 30
Reguły Wybierając z menu polecenie View Rules można zobaczyć dodatkowe wykresy i tabele. 31
Reguły Wybierając polecenie View Rules Rules Table można zobaczyć wszystkie reguły w postaci tabeli. Klikając na nagłówkach można posortować wiersze (tutaj malejąco według liczby transakcji (Transaction Count), reguła kabaczki -> fasola występuje 6 razy. 32
Reguły Wybierając polecenie View Rules Rule Description można zobaczyć wszystkie wygenerowane reguły i ich numerację (np. reguła 127 kabaczki ==> fasola). 33
Wyniki graf powiązań Wykres można uzyskać wybierając polecenie View Rules Link Graph. 34
Diagram projektu analizy asocjacji Diagram Banki zawiera dwa węzły: Input Data i Association. Zbiór danych BANK zawiera informacje o około 8000 klientów banku. Zbiór zawiera 32367 obserwacji. Każda obserwacja reprezentuje transakcję klienta. Rola zbioru BANK ma wartość transaction. 35
Zmienne wykorzystane w analizie asocjacji zmienna ACCOUNT ma rolę ID zmienna SERVICE ma rolę Target zmienna VISIT ma rolę Sequence (będzie wykorzystana w analizie sekwencji) 36
Zmienne wykorzystane w analizie asocjacji Po dołączeniu węzła Graph Explore można zobaczyć rozkład zmiennej SERVICE (View Target). 37
Wartości zmiennej SERVICE ATM - automated teller machine debit card AUTO - automobile installment loan CCRD - credit card CD - cetificate of deposit CKCRD - check/debit card CKING - checking account HMEQLC - home equity line of credit IRA - individual retirement account MMDA - money market deposit account MTG - mortgage PLOAN - personal/consumer installment loan SVG - saving account TRUST - personal trust account 38
Parametry węzła Association Podobnie jak poprzenio zostawiamy domyślne wartości węzła, zmieniając tylko pozycję Export Rule by ID na Yes. 39
Zmienne wykorzystane w analizie asocjacji Ponieważ przeprowadzamy tylko analizę asocjacji, a nie analizę sekwencji, zaznaczamy dla zmiennej VISIT opcję Use = No. 40
Wyniki Wyniki: Statistics Plot, Rule Matrix, Statistics Line Plot, Output. 41
Reguły View Rules Rule description Największą wartość przyrostu mają reguły: CKING & CCRD -> CKCRD CKCRD -> CKING & CCRD (checking account and credit card -> check/debit card) Funkcja przyrostu jest symetryczna 42
Rules Table Po wybraniu polecenia View Rules Rules Table widzimy statystyki Expected Confidence, Confidence, Support, Lift, Transaction Count dla reguł. 43
Trójwymiarowy wykres rozproszenia Wybierzmy polecenie View Plot i w Kreatorze Wykresów zaznaczmy trójwymiarowy wykres rozproszenia (Scatter plot in 3 dimensions). 44
Trójwymiarowy wykres rozproszenia Zaznaczmy role X, Y, Z odpowiednio dla statystyk SUPPORT, LIFT, CONFIDENCE 45
Trójwymiarowy wykres rozproszenia Wykres można oglądać jednocześnie z tablicą reguł (View Tables). 46
Analiza sekwencji 47
Analiza sekwencji W analizie sekwencji uwzględnia się kolejność występowania zdarzeń w regułach A B. Reguła ta oznacza, że zdarzenie B występuje po zdarzeniu A. Przykład [Komputer] [Drukarka] Oznacza, że klient, który kupił komputer w następnym okresie (miesiącu) kupuje drukarkę. Przyjmujemy, że odstępy czasowe w regułach sekwencyjnych są takie same (np. dzień, tydzień, miesiąc) 48
Analiza sekwencji W analizie sekwencji wykorzystamy zbiór znajdujący się w bibliotece dmlib BANK 49
Diagram projektu analizy sekwencji Dodajmy do diagramu Banki nowy węzeł Association i zmieńmy (Rename) jego nazwę na Sequence 50
Diagram projektu analizy sekwencji Identyfikator klienta ACCOUNT ma rolę ID Identyfikator kategorii analizowanej SERVICE zmiennej ma rolę Target Zmienna czasowa VISIT ma rolę Sequence Zmienne mają ustawienie Use = Yes. 51
Parametry węzła Sequence Najdłuższy ciąg w sekwencji może zawierać 3 reguły (A->B->C). Maksymalna wartość wynosi 10 Nie łączymy czasów, ponieważ zmienna czasowa jest dyskretna Będą brane pod uwagę towary, które występują przynajmniej w 2% transakcjach (można podać, w ilu % transakcji) Maksymalny czas, w którym transakcje mogą być traktowane jako sekwencja. Na przykład, może być, że odstęp między dwiema transakcjami większy niż 2 nie jest traktowany jako sekwencja Zmieniamy domyślną opcję na Yes. 52
Konsolidacja odcinków czasowych Możemy rozważać sytuację, gdy klient przychodzi do sklepu o godzinie 7 rano i kupuje mleko, chleb i jaja. Potem przychodzi o godzinie 13 i kupuje masło i ser. Potem przychodzi o godzinie 19 i kupuje piwo. Potem przychodzi za 2 dni o godzinie 15 i kupuje chleb, piwo i ciastka. Dane są godzinowe. Mamy więc 4 wizyty (4 różne wartości zmiennej czasowej). Jeżeli chcemy uwzględnić tylko zakupy dokonywane w kolejnych dniach, można połączyć (skonsolidować) transakcje. Wówczas kilka wizyt tego samego dnia jest traktowanych jako jedna wizyta. Transakcje A = {mleko, chleb, jaja, masło, ser, piwo} B = {chleb, piwo, ciastka} 53
Wyniki Wyniki: Statistics Plot, Rule Matrix, Statistics Line Plot, Output. 54
Statistics Line Plot Wykres przedstawia wsparcie i ufność reguł. Reguły są uporządkowane malejąco według wsparcia. 55
Rules Table Największe wsparcie mają reguły sekwencyjne: CKING -> SVG (54,17%), CKING -> ATM (36,17%), SVG -> ATM (25,69%), CKING -> SVG ->ATM -> (36,17%), Ostatnia z tych reguł ma długość 3 56
Output Okno Output przedstawia tablicę z wartościami statystyk reguł i zaznaczeniem numerów reguł. 57