Przykład Rezygnacja z usług operatora Zbiór CHURN Zbiór zawiera dane o 3333 klientach firmy telefonicznej razem ze wskazaniem, czy zrezygnowali z usług tej firmy Dane pochodzą z UCI Repository of Machine Learning Databases w University of California w Irvine http://www.ics.uci.edu/~mlrepository.html www.spps.pl/larose Opis w książce: Daniel T. Larose, Odkrywanie wiedzy z danych. Wprowadzenie do eksploracji danych, Wydawnictwo Naukowe PWN, Warszawa 2006. 1
Zbiór danych CHURN Zbiór zawiera 21 zmiennych jakościowych lub ilościowych Zmienne Stan- kod stanu USA (jakościowa) Czas_W - czas posiadania konta (całkowita) Kod - kod obszaru kraju (jakościowa) Telefon - numer telefonu klienta, zastępuje ID klienta (jakościowa) Plan_M - czy klient przystąpił do planu międzynarodowego (0-1) Plan_G - czy klient przystąpił do planu poczty głosowej (0-1) M_min - liczba minut na połączenia międzynarodowe (rzeczywista) M_roz- liczba połączeń międzynarodowych (całkowita) M_opl- całkowita opłata za rozmowy międzynarodowe (rzeczywista) L_Rozbok - liczba połączeń z biurem obsługi klienta (całkowita) Churn - informacja o rezygnacji (0-1) 2
CHURN cd Zmienne (cd) L_wiad - liczba wiadomości w poczcie głosowej (całkowita) DzienMin- liczba minut rozmowy w dzień (rzeczywista) DzienRoz - liczba połączeń w dzień (całkowita) DzienOpl - całkowita opłata za rozmowy w dzień (rzeczywista) WieczMin- liczba minut rozmowy wieczorem (rzeczywista) WieczRoz - liczba połączeń wieczorem (całkowita) WieczOpl - całkowita opłata za rozmowy wieczorem (rzeczywista) NocMin - liczba minut rozmowy w nocy (rzeczywista) NocRoz - liczba połączeń w nocy (całkowita) NocOpl - całkowita opłata za rozmowy w nocy (rzeczywista) 3
Diagram projektu An_Clus Diagram projektu o nazwie churn_norm zawiera węzły Input Data z grupy Sample oraz Cluster z grupy Explore. Nie definiujemy zbioru walidacyjnego ani testowego. 4
Usunięcie zmiennych skorelowanych Zbiór zawiera 21 zmiennych jakościowych lub ilościowych. Należy unikać wprowadzania do modeli zmiennych silnie skorelowanych. Użycie zmiennych skorelowanych wyolbrzymia część danych, powoduje niestabilność modeli. Zmienne: minuty, rozmowy i opłata są skorelowane. Ponadto opłata = minuty * rozmowy Dlatego z tych grup zmiennych wybraliśmy tylko po jednej zmiennej: DZIENMIN, WIECZMIN, NOCMIN, M_MIN. Zmienne wybrane do analizy: CZAS_W, PLAN_M, POCZTA_G, L_WIAD, DZIENMIN, WIECZMIN, NOCMIN, M_MIN, L_ROZBOK Zmienna TELEFON jest identyfikatorem obserwacji (Model Role ID) 5
Okno Cluster - Variables Zmienna CHURN nie będzie brać udziału w analizie. Nadamy jej status Use = No. 6
Cluster parametry węzła Rodzaj standaryzacji: Range (normalizacja) zamiast Stardardization (standaryzacja) Metoda ustalania liczby skupień jest domyślna. Najpierw losowane jest 50 zalążków skupień, a potem skupienia są konsolidowane za pomocą hierarchicznej metody Warda. Stosowana jest metoda CCC, a końcowa liczba skupień jest wybierana w przedziale [2; 20] 7
Cluster parametry węzła Tutaj sami ustalimy liczbę segmentów = 3 (User Specify). Utworzymy nową zmienną _SEGMNT_ - numer skupienia, do którego należy obiekt. Będzie ona miał rolę Segment. Uruchamiamy węzeł (Run), a następnie oglądamy wyniki (Results). 8
Cluster - Results W wyniku otrzymujemy domyślnie 4 okna: Segment Plot, Mean Statistics, Segment Size, Output. Wybierając pozycje z menu View można otrzymać też inne wykresy lub tabele. 9
Segment Plot Okno pokazuje rozkład każdej zmiennej o roli Input występującej w analizie skupień. 10
Mean Statistics Okno pokazuje różne statystyki w przekroju według skupień. _SEGMENT_ - nazwa (numer) skupienia, Frequency of Cluster liczebność skupień, Maximum Distance from Cluster Seed - promień skupienia, Distance to Nearest Cluster - odległość do najbliższego skupienia. 11
Mean Statistics Okno pokazuje różne statystyki w przekroju według skupień. Dla wszystkich zmiennych przedziałowych są wyświetlane wartości średnie, dla zmiennych binarnych są wyświetlane częstości dla poziomu 0 i 1. Widzimy np., że w pierwszym skupieniu zmienna PLAN_M ma zawsze wartość 0, w trzecim skupieniu ma zawsze wartość 1, a w drugim skupieniu 90,4% obserwacji ma wartość 0, a 9,6% obserwacji ma wartość 1. 12
Segment Size Okno pokazuje na wykresie kołowym liczebności i częstości skupień. Trzy skupienia różnią się rozmiarem (liczbą obiektów: 1. 830 (24.9%) 2.2411 (72.3%) 3. 92 ( 2.8%) 13
Segment Size Po wyświetleniu wykresu kołowego można kliknąć prawym przyciskiem myszy na wykresie i wybrać Graph Properties, a następnie zaznaczyć pozycję Value i Percentage. Można zaznaczyć pozycję, gdzie będą wyświetlane wartości (domyślnie Inside, zmienimy na Outside). 14
Output Okno pokazuje różne wyniki przebiegu procedury oraz statystyki, np. ważności zmiennych (Importance) 15
Cluster Distance Po wybraniu polecenia View Cluster Distance Table otrzymujemy tablicę odległości między skupieniami. Tablica jest symetryczna. Widzimy, że najbliższe są skupienia 1 i 3 Odległość 11.5), a najdalsze 2 i 3 (odległość 31.8). 16
Variable Importance Po wybraniu polecenia View Cluster Profile Variable Importance otrzymujemy tablicę ważności zmiennych. 17
Tree Po wybraniu polecenia View Cluster Profile Tree otrzymujemy drzewo, w którym zmienną objaśnianą jest numer skupienia. Widzimy, że o przyporządkowaniu obiektów do skupień decydują zmienne: POCZTA_G i PLAN_M. 18
Input Mean Plot Wykres Input Mean Plot (View Summary Statistics Input Mean Plot pokazuje porównanie znormalizowanych wartości zmiennych ogółem i w skupieniach. Można zobaczyć jakie są różnice w wartościach zmiennych w skupieniach. 3 2 Ogółem 1 Np. NOC_MIN ma najmniejsze wartości w skupieniu 3, a największe w skupieniu 1. 19
Exported data Po wyborze pozycji Exported Data w oknie właściwości widzimy, jakie pliki są utworzone i eksportowane przez węzeł Cluster. 20
Exported data Po zaznaczeniu pierwszego wiersza (TRAIN) i wybraniu Explore otwiera się okno (domyślnie dotyczy ono 2000 pierwszych obserwacji): 21
Exported data Żeby zobaczyć więcej obserwacji, należy wybrać opcję Fetch Size = Max Wybierane są obserwacje początkowe (Top). Żeby uzyskać losowy wybór obserwacji, należy zmienić na Random. 22
Exported data Po kliknięciu na przycisk Plot (w lewym górnym rogu ekranu) możemy zdefiniować różne wykresy, np. tutaj wykres rozproszenia (Scatter) zmiennych L_wiad (X) i M_min (Y). 23
Exported data Wybierając dla zmiennej _SEGMENT_ rolę Color można zaznaczyć, w których skupieniach są obserwacje na wykresie rozproszenia. Liczba wiadomości ma zawsze wartość 0 w drugim skupieniu. 24
Exported data Po wciśnięciu Plot, wybraniu wykresu słupkowego (Bar) i zaznaczeniu dla zmiennej _SEGMENT_ roli Category oraz Response Statistics Frequency otrzymamy wykres słupkowy liczebności skupień. 25
Exported data Należy kliknąć prawym klawiszem myszy na wykresie i wybrać Graph Properties i następnie Show labels, aby zobaczyć liczebności skupień. 26
Rezygnacja w segmentach Po wybraniu Exported Data Train Explore (jak poprzednio) i wciśnięciu Plot, wybierzmy Lattice, a następnie Next, w oknie Lattice Type Pie Next zaznaczmy dla zmiennej _SEGMENT_ roli Lattice-X a dla zmiennej CHURN roli Category. Po wciśnięciu Finish otrzymamy wykresy kołowe. 27
Rezygnacja w segmentach Wykresy pokazują rozkład zmiennej CHURN w poszczególnych segmentach. Można zobaczyć liczebność wartości CHURN=0 lub CHURN=1. 28
Exported data Do zbioru danych zostały dodane dwie zmienne: Segment.ID, Distance. W oknie danych EMWS.Clus_TRAIN można zobaczyć, jakie jest przyporządkowanie obserwacji do skupień. Należy przeciągnąć kolumny Segment.Id i Distance na początek, żeby łatwiej oglądać wraz z identyfikatorem obserwacji. 29
Segment Profile Dołączymy do diagramu węzeł Segment Profile (z grupy Access). Węzeł Segment Profile pozwala na porównanie rozkładu zmiennej w indywidualnym skupieniu z całkowitym rozkładem zmiennej. Zmienne są posortowane według ważności w grupowaniu zbioru danych. 30
Segment Profile W oknie Output widzimy ważność wybranych zmiennych w poszczególnych skupieniach 31
Okno Profile: _SEGMENT_ Zakładka: Profiles Po kliknięciu prawym przyciskiem myszy na wykresie i wybraniu Sort segments Name można uporządkować segmenty według nazw (domyślnie według liczebności). 32
Okno Variable Worth: _SEGMENT_ Wszyscy klienci z grupy 1 i część klientów z grupy 2 przystąpili do planu międzynarodowego, nikt z grupy 3 nie przystąpił. Wszyscy klienci z grupy 1 i 3 przystąpili do planu poczty głosowej, nikt z grupy 2 nie przystąpił. 33
Opis profili Grupa 1: Użytkownicy planu poczty głosowej Grupa klientów o średnim rozmiarze (830 osób), którzy przystąpili do planu poczty głosowej, ale nie przystąpili do planu międzynarodowego Grupa 2: Przeciętna większość Najliczniejsza grupa klientów (2411 osób), z których część przystąpiła do planu poczty głosowej, ale nikt nie przystąpił do planu międzynarodowego Grupa 3: Wyrafinowani użytkownicy Mała grupa klientów (92 osoby), którzy przystąpili do planu międzynarodowego i poczty głosowej 34
Cluster parametry węzła Dodajmy do diagramu nowy węzeł Cluster i ustalmy w nim automatyczny wybór liczby skupień za pomocą algorytmu CCC. Należy, podobnie jak poprzednio, wyłączyć zmienną CHURN z analizy. Po uruchomieniu węzła można oglądać wyniki 35
CCC Plot Okazuje się, że uzyskaliśmy identyczne wyniki jak poprzednio. Dodatkowo dostępny jest wykres CCC Plot (View Summary Statistics CCC Plot). Wskazuje on, że liczba skupień 3 jest optymalna. 36