Zastosowanie metod eksploracji danych Data Mining w badaniach ekonomicznych SAS Enterprise Miner rok akademicki 2014/2015
Sieci Kohonena
Sieci Kohonena Sieci Kohonena zostały wprowadzone w 1982 przez fińskiego badacza Tenvo Kohonena. Sa przykładem samoorganizujacych się sieci (selforganizing maps SOMs). Uczenie odbywa się bez nadzoru (unsupervised learning), tzn. dla podawanych przykładów (faktów) nie jest przedstawiana poprawna odpowiedź. Trenowanie sieci odbywa się w procesie samouczenia. 3
Grupowanie SOM może być użyte do grupowania obiektów. SOM stara się znaleźć skupienia, żeby każde dwa skupienia, które są blisko siebie w przestrzeni krat (grid space) były blisko siebie w przestrzeni obiektów. Odwrotna sytuacja nie musi być prawdziwa, tzn. skupienia są blisko siebie w przestrzeni obiektów, to nie muszą odpowiadać skupieniom, które są blisko siebie w przestrzeni krat. SOM stara się wbudować kraty w przestrzeń obiektów w ten sposób, że każda obserwacja jest blisko pewnego środka ciężkości skupienia, ale krata jest wygięta lub ściśnięta możliwie mało. 4
Algorytm Kohonena x t = [x t1,x t2,,x tm ] oznacza wektor wejściowy, m liczba zmiennych w.j = [w 1j,w 2j,,w mj ] wagi połączeń neuronów wejściowych z j- tym neuronem wyjściowym. Początkowe wagi są ustalone, np. wybrane losowo. Ustalmy neuron wejściowy x. Dla każdego neuronu wyjściowego w oblicza się wartość funkcji decyzyjnej (scoring function). Jest to odległość d(w,x)= w-x. Najczęściej bierze się odległość euklidesową. d (w. i,x t )= (w ij x ti ) 2 i=1 m 5
Algorytm Kohonena Neuron wyjściowy, dla którego funkcja decyzyjna ma najmniejszą wartość staje się neuronem wygrywającym (J). Jego wagi są najbardziej podobne do współrzędnych x. Identyfikuje się wszystkie neurony j z otoczenia neuronu wygrywającego, określone przez rozmiar sąsiedztwa R(t), gdzie t - oznacza numer epoki trenowania. Modyfikuje się wagi neuronów z otoczenia neuronu J według wzoru: ' w ij =w ij +η(t ) ( x i w ij ) η(t) nazywamy współczynnikiem uczenia (learning rate) 6
Algorytm Kohonena 0< η(t) < 1 ' w ij =w ij +η(t ) ( x i w ij ) Początkowe wartości η(t) są ustalane (blisko 1) i są zmniejszane (liniowo lub geometrycznie) po każdej epoce. Również wartość rozmiaru sąsiedztwa R(t) jest zmniejszana po każdej epoce. Proces iteracyjny zatrzymuje się, gdy są spełnione warunku stopu. 7
Algorytm Kohonena - przykład Zbiór danych zawiera dwie zmienne: wiek i dochód. Są one normalizowane do przedziału [0; 1] Rozważmy cztery rekordy: x 11 =0.8 x 12 =0.8 osoba starsza z dużym dochodem x 21 =0.8 x 22 =0.1 osoba starsza z małym dochodem x 31 =0.2 x 32 =0.8 osoba młodsza z dużym dochodem x 41 =0.1 x 42 =0.1 osoba młodsza z małym dochodem Niech topologia sieci ma rozmiar 2 x 2 (4 neurony wyjściowe) Ustalmy początkowe wagi: Ustalmy: Neuron 1: w 11 =0.9 w 21 =0.8 η(0) = 0.5 Neuron 2: w 12 =0.9 w 22 =0.2 R(0) = 0, tzn. tylko dla Neuron 3: w 13 =0.1 w 23 =0.8 neuronu wygrywającego Neuron 4: w 14 =0.1 w 24 =0.2 są zmieniane wagi. 8
Algorytm Kohonena - przykład Rywalizacja Obliczamy odległość między pierwszym wektorem (x 11, x 12 ) = (0.8, 0.8) a neuronami: 1: (w 11, w 21 ) = (0.9, 0.8) 2: (w 12, w 22 ) = (0.9, 0.2) 3: (w 13, w 23 ) = (0.1, 0.8) 4: (w 14, w 24 ) = (0.1, 0.2). d(w 1,x 1 )= (0. 9 0. 8) 2 +(0.8 0. 8) 2 =0.1 d(w 2,x 1 )= (0. 9 0. 8) 2 +(0.2 0. 8) 2 =0.61 d(w 3,x 1 )= (0. 1 0.8 ) 2 +(0.8 0.8 ) 2 =0.7 d(w 4,x 1 )= (0.1 0. 8 ) 2 +(0. 2 0. 8 ) 2 =0. 92 Rywalizację wygrał neuron 1, gdyż jego wagi są najbardziej podobne do pierwszego rekordu wejściowego 9
Algorytm Kohonena - przykład Adaptacja Modyfikujemy wagi połączeń z neuronem wyjściowym 1. ' w ij Dla wiek: ' w 11 Dla dochód: =w i1 +0. 5 ( x 1 w i 1 ) =w 11 +0.5 ( x 11 w 11 )=0.9+0.5 (0. 8 0. 9)=0.85 ' w 21 =w 21 +0.5 (x 12 w 21 )=0. 8+0.5 (0.8 0. 8 )=0. 8 Wagi są kierowane w kierunku rekordu wejściowego. Pozostałe wagi nie są tu zmieniane. To pozwoli neuronowi 1 jeszcze bardziej przyciągać rekordy osób starszych o dużych dochodach. 10
Algorytm Kohonena - przykład Rywalizacja Obliczamy odległość między drugim wektorem (x 21, x 22 ) = (0.8, 0.1) a neuronami: 1: (w 11, w 21 ) = (0.85, 0.8) 2: (w 12, w 22 ) = (0.9, 0.2) 3: (w 13, w 23 ) = (0.1, 0.8) 4: (w 14, w 24 ) = (0.1, 0.2). d(w 1,x 2 )= (0.85 0.8 ) 2 +(0. 8 0.1 ) 2 =0. 78 d(w 2,x 2 )= (0.9 0.8 ) 2 +(0. 2 0.1) 2 =0. 14 d(w 3,x 2 )= (0.1 0.8) 2 +(0. 8 0. 1) 2 =0.99 d(w 4,x 2 )= (0.1 0. 8) 2 +(0.2 0. 1) 2 =0.71 Dla drugiego rekordu rywalizację wygrał neuron 2. 11
Algorytm Kohonena - przykład Adaptacja Modyfikujemy wagi połączeń z neuronem wyjściowym 2. ' w ij Dla wiek: =w i 2 +0. 5 (x 2 w i2 ) ' w 12 =w 12 +0. 5 (x 21 w 12 )=0. 9+0.5 (0.8 0. 9 )=0.85 Dla dochód: ' w 22 =w 22 +0.5 ( x 22 w 22 )=0. 8+0.5 (0.1 0.2)=0.15 Wagi połączeń z neuronem 2 są kierowane w kierunku drugiego rekordu wejściowego. Waga w 22 jest zmniejszana. 12
Algorytm Kohonena - przykład Rywalizacja Obliczamy odległość między trzecim wektorem (x 31, x 32 ) = (0.2, 0.9) a neuronami: 1: (w 11, w 21 ) = (0.85, 0.8) 2: (w 12, w 22 ) = (0.85, 0.15) 3: (w 13, w 23 ) = (0.1, 0.8) 4: (w 14, w 24 ) = (0.1, 0.2). d(w 1,x 3 )= (0. 85 0. 2 ) 2 +(0.8 0.9) 2 =0.66 d(w 2,x 3 )= (0. 85 0. 2 ) 2 +(0.15 0. 9 ) 2 =0. 99 d(w 3,x 3 )= (0. 1 0.2) 2 +(0.8 0. 9 ) 2 =0. 14 d(w 4,x 3 )= (0.1 0.2) 2 +(0. 2 0.9) 2 =0.71 Dla trzeciego rekordu rywalizację wygrał neuron 3. 13
Algorytm Kohonena - przykład Adaptacja Modyfikujemy wagi połączeń z neuronem wyjściowym 3. ' w ij Dla wiek: ' w 13 =w i 3 +0. 5 (x 3 w i3 ) =w 13 +0.5 (x 31 w 13 )=0.1+0. 5 (0. 2 0.1)=0.15 Dla dochód: ' w 23 =w 23 +0. 5 ( x 32 w 23 )=0. 8+0.5 (0.9 0.8 )=0. 85 Wagi połączeń z neuronem 3 są kierowane w kierunku trzeciego rekordu wejściowego. 14
Algorytm Kohonena - przykład Rywalizacja Obliczamy odległość między czwartym wektorem (x 41, x 42 ) = (0.1, 0.1) a neuronami: 1: (w 11, w 21 ) = (0.85, 0.8) 2: (w 12, w 22 ) = (0.85, 0.15) 3: (w 13, w 23 ) = (0.15, 0.85) 4: (w 14, w 24 ) = (0.1, 0.2). d(w 1,x 4 )= (0.85 0.1 ) 2 +(0.8 0.1) 2 =1.03 d(w 2,x 4 )= (0.85 0.1 ) 2 +(0.15 0.1) 2 =0.75 d(w 3,x 4 )= (0.1 0.15) 2 +(0.85 0.1) 2 =0.75 d(w 4,x 4 )= (0.1 0.1) 2 +(0. 2 0.1) 2 =0. 1 Dla czwartego rekordu rywalizację wygrał neuron 4. 15
Algorytm Kohonena - przykład Adaptacja Modyfikujemy wagi połączeń z neuronem wyjściowym 4. ' w ij Dla wiek: ' w 14 Dla dochód: ' w 24 =w i 4 +0.5 (x 4 w i 4 ) =w 14 +0.5 ( x 41 w 14 )=0.1+0.5 (0.1 0.1 )=0. 1 =w 24 +0. 5 (x 42 w 24 )=0.2+0. 5 (0.1 0. 2 )=0.15 Wagi połączeń z neuronem 4 są kierowane w kierunku czwartego rekordu wejściowego. 16
Algorytm Kohonena - przykład Po zakończeniu pierwszej epoki: Początkowe wagi: Neuron 1: w 11 =0.9 w 21 =0.8 Można zmniejszyć η(t) Neuron 2: w 12 =0.9 w 22 =0.2 Neuron 3: w 13 =0.1 w 23 =0.8 Neuron 4: w 14 =0.1 w 24 =0.2 Końcowe wagi: rozpoznaje: Neuron 1: w 11 =0.85 w 21 =0.8 osoby starsze o dużych dochodach Neuron 2: w 12 =0.85 w 22 =0.15 osoby starsze o małych dochodach Neuron 3: w 13 =0.15 w 23 =0.85 osoby młodsze o dużych dochodach Neuron 4: w 14 =0.1 w 24 =0.15 osoby młodsze o małych dochodach 17
Przykład CHURN Zmienne do analizy plan międzynarodowy plan poczty głosowej czas współpracy liczba wiadomości dzień minuty wieczór minuty noc minuty międzynarodowe minuty liczba rozmów z BOK 18
Diagram projektu W projekcie An_Clus tworzymy diagram Kohonen. Diagram zawiera trzy węzły: Input Data (CHURN) Replacement SOM/Kohonen 19
Ustalenie roli zmiennych 20
Zastępowanie zmiennych Dla zmiennych przedziałowych zmienimy domyślną opcję na No. Wybierzmy Replacement Editor. 21
Zastępowanie zmiennych Ograniczymy wartości zmiennej L_WIAD do zakresu <=20. Wartości większe przyjmą wartość 20. Należy wybrać Limit Method = User Specified oraz Upper Limit = 20. 22
Węzeł SOM/Kohonen wybór zmiennych Zmienna churn nie bierze udziału w grupowaniu, więc nadajemy jej status Use = No. Nowe zmienne utworzone w węźle Replacement otrzymują nazwy REP_zmienna. Zmienna L_WIAD nie będzie już używana i otrzymuje rolę Rejected. 23
Węzeł SOM/Kohonen wybór zmiennych Zaznaczając zmienną i klikając na przycisk Explore możemy zobaczyć rozkład danej zmiennej, np. zmiennej REP_L_WIAD (liczba wiadomości). 24
Węzeł SOM/Kohonen parametry węzła Ustalamy: Metoda SOM Kohonen (domyślnie Batch SOM) Normalizacja do przedziału [0; 1] Range (domyslnie None). Topologia sieci (domyślnie 10 x 10) 2 x 2 Promień 0 Maksymalna liczba iteracji 10 25
Węzeł SOM/Kohonen wyniki Domyślnie ukazują się dwa okna z wynikami: Map i Output. 26
Węzeł SOM/Kohonen wyniki Okno Map pokazuje liczebności obiektów na mapie ułożonej w dwóch wymiarach (wierszowy i kolumnowy). Tutaj liczebności wynoszą (1,1)=830, (1,2)=2411, (2,1)=92, (2,2)=0. Można wybrać też inne statystyki, np. największa odległość od środka ciężkości skupienia, odległość od najbliższego skupienia 27
Węzeł SOM/Kohonen wyniki Klikając na przycisk i wybierając daną zmienną można zobaczyć jej średnią wartość w skupieniach. 10,15325 10,23957 10,93587 28
Węzeł SOM/Kohonen wyniki Dla zmiennych binarnych wyświetla się ich udział. Na przykład PLAN_M=1 ma udział 0,095811 w skupieniu (1,2), 1 w skupieniu (2,1), tzn. wszystkie elementy w tym skupieniu mają wartość PLAN_M=1 i nie występuje w skupieniu (1,1), tzn. wszystkie elementy w tym skupieniu mają wartość PLAN_M=0. 29
Węzeł SOM/Kohonen wyniki Skupienie (1,1) jest najbardziej jednorodne: Maximum Distance from Cluster Seed = 0,813873. 0,92376 1,39443 30
Węzeł SOM/Kohonen wyniki Wyniki te możemy zobaczyć w formie tabelarycznej wybierając View Model Mean Statistics albo View Model Analysis Statistics. 31
Węzeł SOM/Kohonen parametry węzła Analogicznie można przeprowadzić grupowanie z innymi parametrami węzła Metoda Batch SOM Standaryzacja Standardization Topologia sieci 4 x 4 zmiennych 32
Węzeł SOM/Kohonen przykładowe wyniki Najliczniejsze skupienie (2,4) zawiera 1064 elementy. Skupienie (2,3) zawiera tylko 5 elementów. 33