Spis treści: 1. Klasyfikacja... 1 2. Ocena dokładności modelu klasyfikacji:...1 2.1. Miary dokładności modelu...2 2.2. Krzywe oceny...2 3. Wybrane algorytmy...3 3.1. Naiwny klasyfikator Bayesa...3 3.2. Drzewa decyzyjne...4 3.2.1. Kryteria wyboru atrybutu...4 3.2.2. Ocena jakości drzewa...4 3.2.3. Algorytmy klasyfikacji...4 4. Wykorzystanie Oracle Data Miner do klasyfikacji...5 4.1. Klasyfikacja z wykorzystaniem algorytmu NCB...5 4.2. Klasyfikacja z wykorzystaniem drzewa decyzyjnego...15 5. Wykorzystanie Rapid Miner a do klasyfikacji...24 1. Klasyfikacja Wartości atrybutu decyzyjnego dzielą zbiór krotek na predefiniowane klasy, składające się z krotek o tej samej wartości atrybutu decyzyjnego Klasyfikator służy do predykcji wartości atrybutu decyzyjnego (klasy) krotek, dla których wartość atrybutu decyzyjnego, tj. przydział do klasy, nie jest znany Etap 1:...budowa modelu (klasyfikatora) opisującego predefiniowany zbiór klas danych lub zbiór pojęć Etap 2: zastosowanie opracowanego modelu do klasyfikacji nowych danych Model klasyfikacyjny (klasyfikator) jest budowany dwuetapowo: Uczenie (trening) klasyfikator jest budowany w oparciu o zbiór treningowy danych Testowanie dokładność (jakość) klasyfikatora jest weryfikowana w oparciu o zbiór testowy danych 2. Ocena dokładności modelu klasyfikacji: Do oceny jakości modelu wykorzystuje się macierz pomyłek/trafności (confusion matrix): 1 0 1 TP FN 0 FP TN Gdzie: TP prawidłowe wskazanie wyróżnionej klasy TN prawidłowe wskazanie klasy niewyróżnionej FP - nieprawidłowe wskazanie wyróżnionej klasy FN niewskazanie klasy wyróżnionej -1-
2.1. Miary dokładności modelu Poprawnośc klasyfikacji ocenia się podając inne miary takie jak: współczynnik dokładności =(TP+TN)/(TP+FP+FN+TN), czułość = TP / ( TP + FN), specyficzność = TN / (TN + FP), Wartość predykcyjna dodatniego wyniku = TP / ( TP + FP) Wartość predykcyjna ujemnego wyniku = TN / (TN + FN) iloraz wiarygodności = (TP / ( TP + FN)) / (FP / (FP+TN)). Współczynnik dokładności (ang. accuracy rate) = % procent przykładów testowych poprawnie zaklasyfikowanych przez model Dla przykładów testowych, dla których znane są wartości atrybutu decyzyjnego, wartości te są porównywane z wartościami atrybutu decyzyjnego generowanymi dla tych przykładów przez klasyfikator. 2.2. Krzywe oceny Do porównań jakości różnych modeli oraz rozpatrywania różnych scenariuszy wykorzystania poszczególnych klasyfikatorów wykorzystuje się krzywe oceny. Krzywe te wykorzystują wcześniej opisane miary bazujące na tabeli trafności. krzywą Lift, krzywą ROC i inne (detektyw, TP) -2-
Wynik klasyfikacji można przedstawić w postaci: Reguły klasyfikacyjne postaci if - then Drzewa decyzyjne 3. Wybrane algorytmy 3.1. Naiwny klasyfikator Bayesa Naiwny klasyfikator Bayesa jest klasyfikatorem statystycznym - oparty na twierdzeniu Bayesa Niech X oznacza przykład, którego klasa nie jest znana. Każdy przykład jest reprezentowany w postaci n-wymiarowego wektora, X=(x1, x2,..., xn) P(C X) prawdopodobieństwo a-posteriori, że przykład X należy do klasy C Klasyfikacje przypadków opiera się na prawdopodobieństwie ich przynależności do poszczególnych klas. Naiwny klasyfikator Bayesa najczęściej jest wykorzystywany dla danych dyskretnych (w przypadku, gdy pewne wymiary przestrzeni są ciągłe, wtedy poddaje sie je dyskretyzacji). Można jednak dokonać oszacowania prawdopodobieństwa dla cech ciągłych, przy założeniu normalności rozkładu każdej z cech dla każdej klasy. -3-
3.2. Drzewa decyzyjne Drzewo decyzyjne jest strukturą złożoną z węzłów, z których wychodzą gałęzie prowadzące do innych węzłów lub liści oraz liści, z których nie wychodzą żadne gałęzie. Węzły odpowiadają testom przeprowadzonym na wartościach atrybutów przykładów, gałęzie odpowiadają możliwym wynikom testów zaś liście etykietom kategorii.. Kryteria optymalizacji można podzielić na: Globalne - średnie prawdopodobieństwo błędu - średnia długość ścieżki - liczba węzłów drzewa Lokalne - stopień zróżnicowania danych - przyrost informacji - współczynnik przyrostu informacji i inne. 3.2.1. Kryteria wyboru atrybutu Można wyróżnić następujące kryteria wyboru atrybutu:: o Przyrost informacji (IM information measure) o Współczynnik przyrostu informacji (GP gain ratio) o Stopień zróżnicowania danych (GINI index) o Statystyka 2. Kryteria wyboru atrybutu nie wpływają na błąd klasyfikacji; można otrzymać równie dobre drzewa wybierając atrybuty w węzłach losowo, Wybór miary ma y wpływ na rozmiary skonstruowanego drzewa (przed przycięciem); drzewa, dla których losowano atrybuty zawierają około dwa razy więcej węzłów; przeważnie korzystając z miary GR otrzymuje się najmniejsze drzewa a za pomocą 2 największe; Na błąd klasyfikacji ma wpływ przycinanie drzewa, które zapobiega nadmiernej specjalizacji drzewa.. 3.2.2. Ocena jakości drzewa Rozmiar Mało węzłów Mała wysokość Mało liści Dokładność klasyfikacji na zbiorze trenującym Dokładność klasyfikacji na zbiorze testującym Q(T) = *rozmiar(t)+ *dokladnosc(t,p) 3.2.3. Algorytmy klasyfikacji - C&RT - ID3 - C4.5-4-
- CHAID i inne 4. Wykorzystanie Oracle Data Miner do klasyfikacji 4.1. Klasyfikacja z wykorzystaniem algorytmu NCB Zaimportuj dane: mining_data_build_v mining_data_test_v mining_data_apply_v A. Naiwny klasyfikator Bayesa. 1. Uruchom narzędzie Oracle Data Miner i polacz sie z serwerem bazy danych. 2. Z menu głównego wybierz Activity_Build. 3. Z listy Function Type wybierz Classification. Rozwiń listę Algorithm i wybierz z niej algorytm Naive Bayes. 4. Wskaż schemat DMUSER i tabele MINING_DATA_BUILD_V jako źródło danych do eksploracji. Jako klucz podstawowy wskaż atrybut CUST_ID. -5-
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). 6. Z listy rozwijanej wybierz wartość 1 jako preferowana 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). Wprowadź nazwę i komentarz do procesu eksploracji. -6-
7. Kliknij przycisk Advanced Settings. Upewnij sie, że na zakładce Sample opcja próbkowania jest wyłączona (pole wyboru Enable Step jest odznaczone). Przejdź na zakładkę Discretize. Naiwny klasyfikator Bayesa wymaga, aby atrybuty numeryczne zostały poddane dyskretyzacji. Upewnij sie, czy automatyczna dyskretyzacja jest włączona. Przejdź na zakładkę Split i upewnij sie, że podział danych wejściowych na zbiór uczący i testujący jest wyłączony. Przejdź na zakładkę Build. Upewnij sie, że algorytm Będzie się starał osiągnąć maksymalna średnia dokładność (w polu Accuracy Goal wybierz opcję Maximum Average Accuracy). Kliknij na zakładkę Algorithm Settings. Wprowadź wartości parametrów: Singleton Threshold 0.1 i Pairwise Threshold 0.01. Przejdź na zakładkę Test Metrics i wyłącz krok generowania miar oceny dokładności i jakości klasyfikatora. Kliknij przycisk OK. Upewnij sie, że opcja Run upon finish jest włączona. Kliknij przycisk Zakończ. -7-
8. Kliknij na odnośnik Results w bloku Build. Na liście rozwijanej Target Class (w lewym górnym rogu okna) wybierz wartość 1. Przeanalizuj prawdopodobieństwa warunkowe wartości poszczególnych atrybutów względem określonej wartości atrybutu decyzyjnego. 9. Kliknij przycisk Filter. Wskaż wartości graniczne prawdopodobieństwa od 0,5 do 1. Kliknij przycisk OK. -8-
10. Zamknij okno z wynikami budowy klasyfikatora i powróć do głównego okna. Z menu głównego wybierz Activity_Test. 11. Upewnij sie, że zaznaczone jest pole radiowe Build Activity. Rozwiń listę Classification i wybierz model NB_MINING_DATA_BUILD jako model do testowania. 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. -9-
13. Jako preferowana wartość atrybutu decyzyjnego wybierz 1. 14. Wprowadź nazwę i opis procesu eksploracji. Upewnij sie, że zaznaczona jest opcja Run upon finish. 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. - 10 -
16. Przejdź na zakładkę Accuracy. Zaznacz pole wyboru Show Cost. Kliknij przycisk More Detail. Przeanalizuj uzyskaną macierz pomyłek. 17. Przejdź na zakładkę ROC. Obejrzyj uzyskaną krzywą Receiver-OperatorCharacteristic przedstawiająca 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, jaka cześć zbioru testowego należałoby wziąć pod uwagę, aby przy tak zdefiniowanych kosztach pomyłek ogólny koszt błędu klasyfikatora był najmniejszy. - 11 -
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? 19. Powróć do głównego okna programu. Z menu głównego wybierz Activity_Apply. 20. Upewnij się, że zaznaczone jest pole radiowe Build Activity. Rozwiń listę Classification i wskaż na model NB_MINING_DATA_BUILD jako na model do zastosowania. 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. - 12 -
22. Wskaż atrybuty, które powinny sie znaleźć w tabeli wynikowej po zastosowaniu klasyfikatora do danych. Upewnij sie, że zaznaczony jest klucz podstawowy CUST_ID. 23. Wskaż wykonany wcześniej proces eksploracji zawierający wynik testowania klasyfikatora. Zaznacz pole radiowe Test activity i z listy wybierz proces NB_MINING_DATA_TEST. - 13 -
24. Upewnij sie, ż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). 25. Podaj nazwę i opis procesu eksploracji. Upewnij sie, że zaznaczona jest opcja Run upon finish. Kliknij przycisk Zakończ. - 14 -
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ą. 4.2. Klasyfikacja z wykorzystaniem drzewa decyzyjnego Dane: mining_data_build_v mining_data_test_v mining_data_apply_v - 15 -
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. 3. Z listy Function Type wybierz Classification. Rozwiń listę Algorithm i wybierz z niej algorytm Decision Tree. 4. Wskaż tabelę MINING_DATA_BUILD_V jako zródło danych do eksploracji. Jako klucz podstawowy wskaż atrybut CUST_ID. 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). - 16 -
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). Wprowadź nazwę (np. MINING_DATA_BUILD_DT) i komentarz do procesu eksploracji. 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. - 17 -
Upewnij się, że na zakładce Sample opcja próbkowania jest wyłączona Przejdź na zakładkę Build. Upewnij sie, że algorytm będzie się starał osiągnąć maksymalną średnią dokładność (w polu Accuracy Goal wybierz opcje 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. Upewnij sie, że opcja Run upon finish jest włączona. Kliknij przycisk Zakończ. 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. - 18 -
9. Kliknij na odnośnik Results w bloku Test Metrics. Przeanalizuj parametry zbudowanego modelu. 10. Zamknij okno z wynikami budowy klasyfikatora i powróć do głównego okna. Z menu głównego wybierz Activity_Test. 11. Upewnij sie, że zaznaczone jest pole radiowe Build Activity. Rozwiń listę Classification i wybierz model MINING_DATA_BUILD_DT jako model do testowania. - 19 -
12. Kliknij na odnosnik Select. Rozwiń węzeł odpowiadający Twojemu schematowi w bazie danych. Jako zródło danych do testowania klasyfikatora wskaż tabele MINING_DATA_TEST_V. 13. Jako preferowana wartość atrybutu decyzyjnego wybierz 1. 14. Wprowadź nazwę i opis procesu eksploracji. Upewnij sie, że zaznaczona jest opcja Run upon finish. 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. 16. Przejdź na zakładkę Accuracy. Zaznacz pole wyboru Show Cost. Kliknij przycisk More Detail. Przeanalizuj uzyskaną macierz pomyłek. - 20 -
17. Przejdź na zakładkę ROC. Obejrzyj uzyskana krzywa Receiver-OperatorCharacteristic 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 wartosci 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, jaka cześć zbioru testowego należałoby wziąć pod uwagę, aby przy tak zdefiniowanych kosztach pomyłek ogólny koszt błędu klasyfikatora był najmniejszy. 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?. - 21 -
19. Powróć do głównego okna programu. Z menu głównego wybierz Activity_Apply. Na ekranie powitalnym kliknij przycisk Dalej>. 20. Upewnij sie, ż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>. 21. Kliknij na odnosnik Select. Rozwiń węzeł odpowiadający Twojemu schematowi w bazie danych. Jako zródło danych do zastosowania klasyfikatora wskaż tabelę MINING_DATA_APPLY_V. 22. Wskaż atrybuty, które powinny sie znaleźć w tabeli wynikowej po zastosowaniu klasyfikatora do danych. Upewnij sie, że zaznaczony jest klucz podstawowy CUST_ID. 23. Wskaż wykonany wcześniej proces eksploracji zawierający wynik testowania klasyfikatora. Zaznacz pole radiowe Test Activity i z listy wybierz właściwy proces - 22 -
24. Upewnij sie, ż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). 25. Podaj nazwę i opis procesu eksploracji. Upewnij się, że zaznaczona jest opcja Run upon finish. 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ą. - 23 -
5. Wykorzystanie Rapid Miner a do klasyfikacji - Dla pliku GOLF z przykładów wygeneruj macierz wykresów rozproszenia, wykres bąbelkowy. - 24 -
- Oceń, które atrybuty mają największy wpływ na możliwość podziału danych na klasy Yes/No. 1. Przygotuj diagram przepływu informacji zawierający operator Retrive i Blok walidacji (Edit->New Building Block) Parametry: Operator Retrive Golf Kliknij dwukrotnie na operatorze Validate. - 25 -
Sprawdź możliwe metody prezentacji wyników: Oceń jakość klasyfikatora na podstawie wyników: - 26 -
2. Przygotuj diagram przepływu informacji: - 27 -
Pametry operatorów: Retrive Golf Retrive 2 Golf Test Decision tree i ModelApplier domyślne parametry Uruchom przepływ danych. Sprawdź jak będą klasyfikowane dane z pliku Golf Test. Źródła: D.Larose, Odkrywanie wiedzy z danych. Wprowadzenie do eksploracji danych, PWN, 2006 D.Hand, H.Mannila, P.Smyth, Eksploracja danych, WNT, 2005 http://download.oracle.com/docs/cd/b28359_01/datamine.111/b28129/algo_nb.htm http://download.oracle.com/docs/cd/b19306_01/datamine.102/b14339/3predictive.ht m#i1005791 http://wazniak.mimuw.edu.pl/index.php?title=eksploracja_danych http://download.oracle.com/docs/cd/b28359_01/datamine.111/b28129/algo_decisiont ree.htm http://download.oracle.com/docs/cd/b19306_01/datamine.102/b14339/3predictive.ht m#i1005791 http://wazniak.mimuw.edu.pl/index.php?title=eksploracja_danych http://www.cs.put.poznan.pl/mmorzy/ - 28 -