Drzewa decyzyjne w SAS Enterprise Miner Aneta Ptak-Chmielewska Instytut Statystyki i Demografii Zakład Analizy Historii Zdarzeń i Analiz Wielopoziomowych www.sgh.waw.pl/zaklady/zahziaw 1 struktura ćwiczeń tworzenie zbioru uczącego i walidacyjnego; model domyślny drzewa klasyfikacyjnego; drzewa regresyjne; domyślne informacje dla ilościowej zmiennej objaśnianej; interaktywne tworzenie drzewa; wybór ostatecznego modelu; ocena jakości utworzonego drzewa; 2
Zbiór danych HMEQ Przygotujemy projekt trees, a w nim diagram tree1. Celem projektu jest wspomóc podejmowanie decyzji dotyczących przyznawania lub odmowy kredytu przez bank. Zbiór danych: HMEQ zawiera dane dotyczące 5960 klientów banku wraz z informacją, czy dany klient spłacił terminowo kredyt w przeszłości. Będzie to binarna zmienna objaśniana. Zmienne: BAD REASON DEBTINC CLNO NINQ CLAGE DELINQ DEROG YOJ VALUE MORTDUE LOAN JOB - 1, gdy klient nie spłacił kredytu, 0 - gdy spłacił kredyt - przyczyna wzięcia kredytu (binarna, tekstowa) - stosunek kredytu do dochodu - liczba linii handlowych - liczba ostatnich zapytań - czas najdłuŝszej linii (w miesiącach) - liczba linii z zalegającą zapłatą - liczba krytycznych raportów - liczba lat bieŝącej pracy - wartość własności - wysokość hipoteki - wysokość kredytu - kategoria zawodu (zmienna tekstowa) 3 Prognozowaną zmienną jest BAD 1, klient nie spłacił kredytu, 0, klient spłacił kredyt. NaleŜy nadać jej rolę Target Zmienne Reason i Job są tekstowe. Zmienna Reason jest binarna, a zmienna Job jest nominalna. Pozostałe zmienne mają skalę pomiaru Interval. Wszystkie zmienne objaśniające mają rolę Input. NaleŜy zmienić odpowiednio ustawienia. 4
Diagram tree1 Zbudujemy dwa modele drzew klasyfikacyjnych i porównamy je między sobą. Do diagramu dodamy węzły Multiplot i StatExplore. Aby zmienić nazwę węzła na diagramie, naleŝy kliknąć prawym przyciskiem myszy i wybrać opcję Rename 5 Podział na zbiór treningowy i walidacyjny Podzielimy zbiór na część: treningową 67%, walidacyjną 33%. Nie będziemy tworzyć zbioru testowego Zostawimy domyślną metodę losowania 6
Rozkład zmiennej DEBTINC Zmienna DEBTINC (stosunek kredytu do dochodu) ma 1267 braków danych. 7 Model domyślny drzewa klasyfikacyjnego Zastosujemy domyślne kryterium podziału Braki danych będą brać udział w analizie jako osobna kategoria Zmienne objaśniające mogą być wielokrotnie uŝyte w etapach podziału Domyślnie jest tworzone drzewo binarne Maksymalna głębokość tworzonego drzewa wynosi 6 KaŜdy liść musi zawierać przynajmniej 5 obserwacji 8
Wyniki Wyniki są domyślnie przedstawiane w sześciu oknach: 9 Score Ranking Overlay Jest to porównanie wykresów wzrostu lift (korzyści, pozytywnych odpowiedzi) dla zbioru treningowego i walidacyjnego. Obie krzywe nie powinny duŝo róŝnić się. JeŜeli tak jest, świadczy to o przetrenowaniu lub niedotrenowaniu modelu 10
Leaf Statistics Wykres porównuje udział procentowy wartości y = 1 zmiennej objaśnianej we wszystkich liściach dla danych treningowych i walidacyjnych. JeŜeli są duŝe róŝnice w wysokościach słupków, wskazuje to, Ŝe dany liść naleŝy przyciąć 11 Tree Map Wykres pokazuje strukturę drzewa. Powierzchnia prostokątów odpowiada liczebności w danych węzłach drzewa. Kolory wskazują jednorodność populacji w węzłach (czerwone najbardziej jednorodne) 12
Klikając na dany obszar moŝna zobaczyć liczebność węzłów i rozkład zmiennej objaśnianej w zbiorze treningowym i walidacyjnym 13 Fit Statistics Tabela pokazuje porównanie statystyk dopasowania w zbiorze treningowym, walidacyjnym i ewentualnie testowym. DuŜe róŝnice w wartościach statystyk dopasowania mogą wskazywać na przetrenowanie lub niedotrenowanie modelu. Przykładowo, stopa błędnej klasyfikacji wynosi 11,02% dla zbioru treningowego i 10,77% dla zbioru walidacyjnego 14
Tree 15 UŜywając prawego przycisku myszy moŝna zmieniać rozmiar widoku na ekranie. Na ogół trudno zmieścić całe drzewo i opis węzłów na ekranie. 16
Korzeń drzewa Dane treningowe Dane walidacyjne Wartości zmiennej objaśnianej Udział procentowy dla kaŝdej wartości zmiennej objaśnianej 20% klientów nie spłaciło kredytu Liczba obserwacji ogółem 17 Tree Pierwszą zmienną, która spowodowała podział populacji jest zmienna DEBTINC. W populacji jest około 20% złych kredytów, natomiast dla DEBTINC < 45,1848 jest około 7% złych kredytów. Następnie ten węzeł jest dzielony według zmiennej Value. Gdy Value < 299746, mamy około 6,5% złych kredytów. Grubość linii wskazuje na liczebność podzbioru Dla DEBTINC > 45,1848 jest około 64% złych kredytów. Oznacza to, Ŝe kredyty o wielkości ponad 45-krotnego dochodu są trudno spłacalne. 18
Iteration Plot Po wybraniu z menu Results polecenia View Model Iteration Plot otrzymujemy wykres statystyk błędu (tu: Average Squared Error) wraz ze wzrostem liczby liści Pionowa linia wskazuje najlepszą liczbę liści - wtedy model minimalizuje statystykę dopasowania na zbiorze walidacyjnym 19 Drzewa regresyjne. Domyślne informacje dla ilościowej zmiennej objaśnianej KaŜdy węzeł zawiera domyślnie: liczbę obserwacji w zbiorze treningowym i w zbiorze walidacyjnym, średnią wartość zmiennej objaśnianej w węźle na podstawie danych treningowych i danych walidacyjnych. 20
Interaktywne tworzenie drzewa Zaznaczamy opcję Interactive. Zostaje otwarta aplikacja SAS Enterprise Miner Tree Desktop Application. Jest to aplikacja niezaleŝna od SAS Enterprise Miner 21 Interaktywne tworzenie drzewa W pierwszym oknie jest pokazany rozkład zmiennej zaleŝnej oraz liczba obserwacji w zbiorze treningowym (N = 3992) 22
Interaktywne tworzenie drzewa Klikamy na węźle drzewa (korzeń) prawym przyciskiem myszy i wybieramy opcję Split Node. 23 Otwiera się okno dialogowe Split Node 1. Okno pokazuje malejąco wartości -Log(p) lub logworth wskazujące względną waŝność zmiennej objaśniającej dla pięciu najlepszych zmiennych. Tutaj widać, Ŝe najlepszą zmienną decydującą o podziale zbioru jest Debtinc. Klikając na Edit Rule wywołamy następne okno dialogowe 24
W oknie widzimy, jaki jest najlepszy punkt podziału węzła. Gałąź 1 będzie zawierać obserwacje, dla których zachodzi Debtinc<45,1848, gałąź 2 będzie zawierać obserwacje, dla których zachodzi Debtinc>=45,1848. JeŜeli pojawią się braki danych, to obserwacje zostaną przypisane do drugiej gałęzi. MoŜemy to zaakceptować (Apply) 25 Zbiór treningowy został podzielony na dwie części. Ich liczebności wynoszą 3099 i 893. W pierwszej części mamy 7% złych kredytów, w prawej części 64%, podczas gdy w całym zbiorze treningowym udział ten wynosi 20%. 26
Wykonajmy te same czynności (Split Node) odpowiednio dla lewej i prawej części drzewa. Lewa gałąź została podzielona według wartości zmiennej Value (299746), a prawa część według wartości zmiennej Delinquencies (0,5). 27 Niekiedy dla lepszej interpretacji warto zmienić punkt podziału. Po wybraniu węzła 2 i zmiennej Value i wciśnięciu Edit Rule naleŝy wprowadzić nowa wartość punktu podziału, np. 300000, a następnie wcisnąć przycisk Add Branch. Poprzedni punkt podziału naleŝy usunąć. Następnie kliknąć przycisk OK. 28
Wartości nieznacznie zmieniły się (3072 obserwacje zamiast 3071 jest lewym liściu). 29 MoŜna teŝ zmienić zmienną będącą kryterium podziału. Zamiast zmiennej Delinq weźmy zmienną Derog, drugą pod względem waŝności. Po zaznaczeniu zmiennej i wciśnięciu Edit Rule pojawia się okno dialogowe, w którym moŝna wpisać nową wartość podziału. Tutaj braki danych są zaliczane do pierwszego węzła, ale moŝna to zmienić. 30
Po zaznaczeniu zmiennej i wciśnięciu Edit Rule pojawia się okno dialogowe, w którym moŝna wpisać nową wartość podziału. Tutaj braki danych są zaliczane do pierwszego węzła, ale moŝna to zmienić. 31 Wartości w węzłach drzewa zmieniają się 32
Ocena jakości utworzonego drzewa Drzewo jest budowane w oparciu o zbiór uczący, Ocena jakości jest dokonywana na podstawie zbioru walidacyjnego, Kryteria oceny są uzaleŝnione od skali pomiaru zmiennej objaśnianej (przedziałowa, porządkowa, nominalna, binarna). Uwzględnia się: udział błędnie zaklasyfikowanych obiektów, koszt błędnej klasyfikacji. 33 Wybór lepszego modelu Model Comparison Zaznaczamy kryterium wyboru modelu, w naszym przypadku ROC 34
35 Model drzewa 1 jest lepszy od modelu drzewa 2 ze względu na wyŝszą wartość ROC. Model drzewa 2 zawiera tylko dwie zmienne objaśniające. 36