ED-4.2-m06-lab

From Studia Informatyczne

Laboratorium 6

Indukcja drzew decyzyjnych.

1. Uruchom narzędzie Oracle Data Miner i połącz się z serwerem bazy danych.

2. Z menu głównego wybierz Activity→Build. Na ekranie powitalnym kliknij przycisk Dalej>.

3. Z listy Function Type wybierz Classification. Rozwiń listę Algorithm i wybierz z niej algorytm Decision Tree. Kliknij przycisk Dalej>.

Image:ED-4_2-m06-lab_01.png

4. Wskaż schemat STUDENT i tabelę MINING_DATA_BUILD_V jako źródło danych do eksploracji. Jako klucz podstawowy wskaż atrybut CUST_ID. Kliknij przycisk Dalej>.

Image:ED-4_2-m06-lab_02.png

5. Jako atrybut decyzyjny zaznacz atrybut AFFINITY_CARD (pole radiowe w kolumnie Target). Upewnij się, że atrybuty CUST_ID i PRINTER_SUPPLIES są wyłączone z eksploracji (są bezwartościowe i nie niosą żadnej informacji). Kliknij przycisk Dalej>.

Image:ED-4_2-m06-lab_03.png

6. Z listy rozwijanej wybierz wartość 1 jako preferowaną wartość atrybutu decyzyjnego (jest to wartość, której poprawne przewidywanie jest najważniejsze, interesuje nas dokładna identyfikacja klientów, którzy prawdopodobnie skorzystają z oferowanej im karty lojalnościowej). Kliknij przycisk Dalej>. Wprowadź nazwę i komentarz do procesu eksploracji. Kliknij przycisk Dalej>.

Image:ED-4_2-m06-lab_04.png

7. Kliknij przycisk Advanced Settings. Przejdź na zakładkę Split i podziel zbiór danych na zbiór uczący i zbiór testujący, w proporcjach 70/30.

Image:ED-4_2-m06-lab_05.png

Upewnij się, że na zakładce Sample opcja próbkowania jest wyłączona (pole wyboru Enable Step jest odznaczone). Przejdź na zakładkę Build. Upewnij się, że algorytm będzie się starał osiągnąć maksymalną średnią dokładność (w polu Accuracy Goal wybierz opcję Maximum Average Accuracy). Kliknij na zakładkę Algorithm Settings. Wybierz metodę podziału węzła (w Homogeneity Metric wybierz metodę opartą na mierze zysku informacyjnego wykorzystującego entropię - Entropy). Pozostałe parametry pozostaw bez zmian. Przejdź na zakładkę Test Metrics i wyłącz krok generowania miar oceny dokładności i jakości klasyfikatora. Kliknij przycisk OK. Upewnij się, że opcja Run upon finish jest włączona. Kliknij przycisk Zakończ.

Image:ED-4_2-m06-lab_06.png

Image:ED-4_2-m06-lab_07.png

8. Kliknij na odnośnik Results w bloku Build. Zakładka Tree przedstawia zbudowany klasyfikator. Zaznacz opcję Show Leaves Only. Przeanalizuj otrzymany model pod względem rozkładu wartości atrybutu decyzyjnego w liściach.

Image:ED-4_2-m06-lab_08.png

9. Kliknij na odnośnik Results w bloku Test Metrics. Przeanalizuj parametry zbudowanego modelu.

Image:ED-4_2-m06-lab_09.png

10. Zamknij okno z wynikami budowy klasyfikatora i powróć do głównego okna. Z menu głównego wybierz Activity→Test. Na ekranie powitalnym kliknij przycisk Dalej>.

11. Upewnij się, że zaznaczone jest pole radiowe Build Activity. Rozwiń listę Classification i wybierz model MINING_DATA_BUILD_DT jako model do testowania. Kliknij przycisk Dalej>.

Image:ED-4_2-m06-lab_10.png

12. Kliknij na odnośnik Select…. Rozwiń węzeł odpowiadający Twojemu schematowi w bazie danych. Jako źródło danych do testowania klasyfikatora wskaż tabelę MINING_DATA_TEST_V. Kliknij przycisk OK. Kliknij przycisk Dalej>.

Image:ED-4_2-m06-lab_11.png

13. Jako preferowaną wartość atrybutu decyzyjnego wybierz 1. Kliknij przycisk Dalej>.

Image:ED-4_2-m06-lab_12.png

14. Wprowadź nazwę i opis procesu eksploracji. Kliknij przycisk Dalej>. Upewnij się, że zaznaczona jest opcja Run upon finish. Kliknij przycisk Zakończ.

Image:ED-4_2-m06-lab_13.png

15. Kliknij na odnośnik Result. Na zakładce Predictive Confidence przedstawiona jest dokładność klasyfikatora liczona względem naiwnego klasyfikatora 0-R, który zawsze przewiduje najczęstszą wartość atrybutu decyzyjnego.

Image:ED-4_2-m06-lab_14.png

16. Przejdź na zakładkę Accuracy. Zaznacz pole wyboru Show Cost. Kliknij przycisk More Detail…. Przeanalizuj uzyskaną macierz pomyłek.

Image:ED-4_2-m06-lab_15.png

17. Przejdź na zakładkę ROC. Obejrzyj uzyskaną krzywą Receiver-Operator-Characteristic przedstawiającą stosunek liczby poprawnie sklasyfikowanych instancji (przykładów z wartością atrybutu decyzyjnego 1) do liczby pomyłek (instancji sklasyfikowanych jako należące do klasy 1 podczas gdy w rzeczywistości należą do klasy 0). W dolnej części okna wpisz koszt pomyłki polegającej na niepoprawnym sklasyfikowaniu instancji jako należącej do klasy 1 (False Positive Cost) o wartości 1. Podaj koszt niepoprawnej klasyfikacji instancji jako należącej do klasy 0 (False Negative Cost) o wartości 2 (czyli dwukrotnie większy). Kliknij przycisk Compute Cost. Zobacz, jaką część zbioru testowego należałoby wziąć pod uwagę, aby przy tak zdefiniowanych kosztach pomyłek ogólny koszt błędu klasyfikatora był najmniejszy.

Image:ED-4_2-m06-lab_16.png

18. Przejdź na zakładkę Lift. Zaznacz pole radiowe Cumulative Positive Cases. Jaki procent zbioru testowego należy rozważyć, aby znaleźć 80% wszystkich instancji należących do klasy 1?.

Image:ED-4_2-m06-lab_17.png

19. Powróć do głównego okna programu. Z menu głównego wybierz Activity→Apply. Na ekranie powitalnym kliknij przycisk Dalej>.

20. Upewnij się, że zaznaczone jest pole radiowe Build Activity. Rozwiń listę Classification i wskaż na model MINING_DATA_BUILD_DT jako na model do zastosowania. Kliknij przycisk Dalej>.

Image:ED-4_2-m06-lab_18.png

21. Kliknij na odnośnik Select…. Rozwiń węzeł odpowiadający Twojemu schematowi w bazie danych. Jako źródło danych do zastosowania klasyfikatora wskaż tabelę MINING_DATA_APPLY_V. Kliknij przycisk OK. Kliknij przycisk Dalej>.

Image:ED-4_2-m06-lab_19.png

22. Wskaż atrybuty, które powinny się znaleźć w tabeli wynikowej po zastosowaniu klasyfikatora do danych. Upewnij się, że zaznaczony jest klucz podstawowy CUST_ID. Kliknij przycisk Dalej>.

Image:ED-4_2-m06-lab_20.png

23. Wskaż wykonany wcześniej proces eksploracji zawierający wynik testowania klasyfikatora. Zaznacz pole radiowe Test activity i z listy wybierz proces MINING_DATA_DT_TEST. Kliknij przycisk Dalej>.

Image:ED-4_2-m06-lab_21.png

24. Upewnij się, że w kolejnym kroku wybrana jest opcja Most Probable Target Value or Lowest Cost (dla każdej instancji w zbiorze wejściowym zostanie znaleziona jedna najbardziej prawdopodobna wartość atrybutu decyzyjnego). Kliknij przycisk Dalej>.

Image:ED-4_2-m06-lab_22.png

25. Podaj nazwę i opis procesu eksploracji. Kliknij przycisk Dalej>. Upewnij się, że zaznaczona jest opcja Run upon finish. Kliknij przycisk Zakończ.

Image:ED-4_2-m06-lab_23.png

26. Kliknij odnośnik Results. Obejrzyj wynik zastosowania klasyfikatora do danych wejściowych. Dla każdej instancji wyświetlone są: przewidywana wartość atrybutu decyzyjnego, prawdopodobieństwo predykcji i koszt związany z predykcją.

Image:ED-4_2-m06-lab_24.png

Ćwiczenie samodzielne

Na podstawie tabeli PRACOWNICY zbuduj perspektywę, która:

• zamieni atrybut ID_SZEFA na nazwisko szefa

• doda nowy atrybut ETAT_SZEFA

• zamieni atrybut ZATRUDNIONY na atrybut numeryczny reprezentujący dekadę zatrudnienia (lata 60-te, 70-te, itd.)

• dokona dyskretyzacji atrybutu PLACA_POD na trzy przedziały odpowiadające pensjom niskim, średnim i wysokim

• zamieni atrybut PLACA_DOD na binarną flagę 0 (nie otrzymuje dodatków) 1 (otrzymuje dodatki)

• zamieni atrybut ID_ZESP na nazwę zespołu

Utworzoną przez siebie perspektywę wykorzystaj do zbudowania klasyfikatora drzewiastego, które będą przewidywały wartość atrybutu ETAT. Podczas budowania modelu jako miarę podziału węzła (Homogeneity Metric) wykorzystaj indeks Gini.
Wykorzystaj poniższy kod do stworzenia tabeli, która posłuży do przetestowania jakości klasyfikatorów.

CREATE TABLE pracownicy_test AS

SELECT * FROM pracownicy WHERE 0=1;

INSERT INTO pracownicy_test (id_prac,nazwisko,etat,id_szefa,zatrudniony,placa_pod,placa_dod,id_zesp)

VALUES (240,’NIEBIESKI’,’ASYSTENT’,130,TO_DATE(’01-02-1997’,’dd-mm-yyyy’),510,20,20);

INSERT INTO pracownicy_test (id_prac,nazwisko,etat,id_szefa,zatrudniony,placa_pod,placa_dod,id_zesp)

VALUES (250,’ZOLTY’,’PROFESOR’,100,TO_DATE(’01-10-1975’,’dd-mm-yyyy’),1110,null,20);

INSERT INTO pracownicy_test (id_prac,nazwisko,etat,id_szefa,zatrudniony,placa_pod,placa_dod,id_zesp)

VALUES (260,’FIOLETOWY’,’ADIUNKT’,130,TO_DATE(’01-03-1984’,’dd-mm-yyyy’),580,120,20);

INSERT INTO pracownicy_test (id_prac,nazwisko,etat,id_szefa,zatrudniony,placa_pod,placa_dod,id_zesp)

VALUES (270,’GRANATOWY’,’PROFESOR’,130,TO_DATE(’01-04-1977’,’dd-mm-yyyy’),910,60,40);

COMMIT;

UWAGA:

• pamiętaj, aby dane testowe poddać identycznym transformacjom jak dane treningowe.