Wprowadzenie do klasyfikacji

Celem laboratorium jest przedstawienie podstawowych pojęć wykorzystywanych w zadaniach klasyfikacji, takich jak: zbiór uczący, zbiór testujący, czy walidacja krzyżowa. W trakcie laboratorium sprawdzamy, jak wykonać najbardziej podstawowe algorytmy klasyfikacji w środowiskach Weka i RapidMiner.

Weka
  • Uruchom narzędzie Weka::Explorer
  • Kliknij przycisk Generate w górnym panelu. Z listy dostępnych generatorów wybierz operator Agrawal, a następnie kliknij na nazwę operatora aby edytować jego własności. Zwiększ liczbę generowanych rekordów do 1000 i jako nazwę relacji podaj People. Naciśnij ponownie przycisk Genearte aby wygenerować zbiór danych. Obejrzyj informacje wyświetlane dla pojedynczego atrybutu. Zauważ, że Weka automatycznie jako zmienną celu wskazuje ostatni atrybut na liście atrybutów.
  • Dokonaj dyskretyzacji atrybutów numerycznych na trzy przedziały o równej szerokości. W tym celu na zakładce Preprocess kliknij przycisk Choose i znajdź operator Filters : Unsupervised : Attribute : Discretize, a następnie kliknij na nazwę operatora żeby edytować jego własności. Po ustawieniu parametrów nie zapomnij kliknąć na przycisk Apply. Zobacz, jak zmieniły się atrybuty Salary i Commission.
  • Przejdź do zakładki Classify. Kliknij przycisk Choose i z listy dostępnych klasyfikatorów wybierz operator Classifiers : Rules : ZeroR. Zaznacz opcję Use training set w sekcji Test options i kliknij przycisk Start. Przeanalizuj uzyskane wyniki. Następnie zmień sposób generowania zbioru testowego na Percentage split i przyjmij, że uczenie odbędzie się na 20% oryginalnych danych. Porównaj wyniki klasyfikacji uzyskane teraz i w przypadku korzystania ze zbioru uczącego. Który wynik jest Twoim zdaniem bardziej wiarygodny?
  • Kliknij przycisk Choose i zmień używany klasyfikator na operator One-R. Tym razem skonstruujesz zbiór testowy za pomocą metody 10-krotnej walidacji krzyżowej. Zbuduj model i postaraj się samodzielnie stwierdzić, na jakiej podstawie ludzie są przypisywani do jednej z grup. Sprawdź, w jaki sposób liczba grup przy konstrukcji zbioru testowego wpływa na trafność klasyfikacji. Starannie przeanalizuj raport dostarczony przez narzędzie i obejrzyj wynikową macierz pomyłek. Czy ta macierz jest wystarczająca, aby uznać klasyfikator za bardzo dobry?

  • Uruchom algorytm klasyfikacji Decision Table. W ustawieniach algorytmu włącz wyświetlanie znalezionych reguł decyzyjnych. Jaki atrybut jest wykorzystywany do zbudowania tablicy decyzyjnej? Wróć do zakładki Preprocessing i usuń ten atrybut, a następnie powtórz budowanie modelu. Porównaj uzyskane wyniki.
  • W tej chwili poszukiwanie reguł decyzyjnych odbywa się za pomocą zachłannej metody BestFirst. Sprawdź, czy zamiana procedury przeszukiwania przestrzeni rozwiązań na przeszukiwanie pełne (ang. Exhaustive Search) poprawi uzyskany wynik.
  • Usuń ze zbioru danych atrybuty age i car a następnie uruchom algorytm klasyfikacji PART. Obejrzyj uzyskane reguły decyzyjne.
  • Odtwórz oryginalny zbiór danych i przetestuj działanie klasyfikatorów IB1 i IBk. Postaraj się tak dobrać wartość parametru k aby uzyskać jak najwyższą dokładność klasyfikacji.
  • Uruchom narzędzie Weka::Experimenter
  • Na zakładce Setup kliknij przycisk New i utwórz nową konfigurację eksperymentu.
  • W polu Datasets umieść (za pomocą przycisku Add new…) zbiory weather.arff, vote.arff oraz labor.arff
  • W polu Algorithms umieść algorytmy Zero-R, One-R, Decision Table, PART oraz IB1 i IBk
  • W polu Results destination wybierz jako format ARFF file i podaj ścieżkę do pliku na lokalnym dysku (ten plik zostanie utworzony w wyniku uruchomienia eksperymentu). Liczbę powtórzeń eksperymentu ustaw na 10
  • Przejdź na zakładkę Run i kliknij przycisk Start
  • Przejdź na zakładkę Analyze i wczytaj plik wynikowy. Upewnij się, że punktem odniesienia do oceny algorytmów jest proste głosowanie większościowe (Zero-R). Metodą porównywania wyników eksperymentu powinien być sparowany test Studenta. Uruchom test klikając na przycisk Perform test.
  • Sprawdź, jak zachowują się poszczególne algorytmy i który z nich jest “najlepszy”, manipulując też poziomem ufności. Zmień kryterium porównywania algorytmów na zwrot (ang. IR_recall).

Rapid Miner
  • Uruchom narzędzie Rapid Miner 5
  • Znajdź operator Generate Data. Wskaż jako liczbę generowanych obiektów 1000, a jako funkcję zmiennej celu podaj two gaussians classification. Liczbę atrybutów ustaw na 2, ich zakres możesz zostawić z wartościami domyślnymi. Uruchom swój przepływ i obejrzyj wygenerowany zbiór danych. Zmień funkcję zmiennej celu na gaussian mixture clusters i jeszcze raz obejrzyj wynik.
  • Wstaw do przepływu operator Split Validation i ustaw proporcje 60%-40%. Zauważ, że jest to operator dominujący, który wymaga sprecyzowania operatorów wewnętrznych.
  • Kliknij dwukrotnie na operatorze Split Validation. W sekcji Training umieść operator Rule Induction i prześlij na wejście operatora zbiór trenujący, zaś wyjście operatora oznaczone mod (model) przekaż dalej.
  • W sekcji Testing umieść sekwencję operatorów Apply Model i Performance (Classification), przesyłając do operatora Apply Model przepływy mod i tes (testing set). Etykietowane dane z operatora Apply Model (port lab (labeled data)) przekaż do operatora Performance (Classification). Port wyjściowy per (performance vector) przekaż jako wynik działania całego operatora złożonego.

  • Uruchom przepływ i zaobserwuj uzyskane wyniki.
  • Zamień operator Split Validation na X-Validation ustawiając 10-krotną walidację krzyżową. Zamień zbiór danych na Iris, a algorytm do klasyfikacji kolejno na Tree to Rules (to także operator dominujący, do środka możesz wstawić Decision Tree lub Random Tree) i k-NN. Za każdym razem sprawdź uzyskiwane wyniki.
 
pisbi-introduction.to.classification.txt · Last modified: 2015/05/23 16:44 by Mikołaj Morzy
 
Except where otherwise noted, content on this wiki is licensed under the following license:Public Domain
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Debian Driven by DokuWiki