Meta-metody klasyfikacji

W tym tygodniu poznajemy meta-metody uczenia maszynowego. Dowiadujemy się, czy bezpośrednia demokracja (Voting) jest lepsza niż demokracja sterowana (Stacking) i dowiadujemy się, jak zastosować klasyfikator binarny do klasyfikacji danych zawierających więcej niż dwie klasy. A przede wszystkim uczymy się oszczędzać sobie czas wykonując setki eksperymentów za jednym pociągnięciem myszki.

Scikit Learn
Rapid Miner
  • Uruchom narzędzie Rapid Miner
  • Utwórz przepływ ilustrujący metodę Bagging. W tym celu załaduj pobierz zbiór nursery.arff i prześlij do operatora Set Role, wskazując atrybut class jako zmienną celu. Następnie prześlij zbiór danych do operatora Split data w celu podzielenia zbioru na dwie partycje w proporcji 70%-30%. Prześlij większą część zbioru uczącego do operatora Bagging. Wykonaj 10 iteracji uczenia drzewa decyzyjnego, wykorzystując w każdej iteracji 90% danych jako zbiór uczący. Model wynikowy wyślij do operatora Apply Model a jako zbiór testowy wykorzystaj owe 30% oryginalnych danych które nie było wykorzystywane do uczenia klasyfikatora. Wykorzystaj operator Performance do znalezienia dokładności klasyfikatora końcowego. Sprawdź, jaki wpływ na dokładność klasyfikacji ma zmieniająca się liczba iteracji (tj. niezależnie budowanych modeli).
  • Utwórz przepływ wykonujący algorytm AdaBoost. Pobierz zbiór danych arrhythmia.arff i za pomocą operatora Set Role wskaż atrybut class jako zmienną decyzyjną. Prześlij zbiór danych do operatora Split Validation pozostawiając domyślne parametry tego operatora. W fazie uczenia operatora Split Validation umieść meta-operator AdaBoost, a wewnątrz tego operatora umieść algorytm k-NN (użyj dowolnej liczby sąsiadów, ale zaznacz ważenie instancji). W fazie testowania operatora Split Validation umieść tradycyjnie operatory Apply Model oraz Performance w celu określenia dokładności klasyfikacji. Porównaj uzyskany wynik z sytuacją w której zamiast operatora AdaBoost wykorzystujesz bezpośrednio k-NN.
  • Pobierz zbiór danych breast-cancer.arff (zmienną decyzyjną jest Class. Utwórz przepływ realizujący proste głosowanie. Wyślij dane do operatora Split Data i podziel je w proporcji 70%-30%. Większy zbiór prześlij do operatora Vote, wewnątrz którego umieść klasyfikatory CHAID, Naive Bayes Classifier oraz k-NN. Model wynikowy wyślij do operatora Apply Model a jako zbiór testowy wykorzystaj dane nieużyte do uczenia klasyfikatorów. Jaka jest dokładność takiego klasyfikatora? Czy jest on lepszy niż indywidualne klasyfikatory?
  • Zamień głosowanie na operator Stacking, umieszczając w fazie Stacking Model Learner operator Rule Induction. Uruchom przepływ i obejrzyj modele bazowe. Czy operator Stacking wygenerował lepszy model niż Voting?
  • W ostatnim przykładzie postaramy się przeszukać przestrzeń parametrów w celu znalezienia optymalnych wartości. Pobierz ponownie zbiór letter.arff i prześlij go do operatora Optimize Parameter (Grid), wcześniej wskazując atrybut class jako zmienną celu. Wewnątrz operatora umieść operator Split-Validation zawierający w fazie uczenia operator Neural Net, a w fazie testowania tradycyjną kombinację operatorów Apply Model i Performance (Classification). Port wyjściowy ave operatora Validation prześlij do operatora Log i zapisz pod dowolną nazwą na dysku. W konfiguracji operatora Log zaznacz zapisywanie dokładności (wartość z operatora Performance), momentu (parametr z operatora Neural Net) i tempa uczenia (parametr z operatora Neural Net). Konfiguracja operatora Log powinna wyglądać następująco:

  • Wróć do konfiguracji operatora Optimize Parameter (Grid). Kliknij przycisk Edit Parameter Settings i z listy dostępnych operatorów wybierz operator Neural Net, a następnie wybierz dwa parametry operatora: learning_rate i momentum. Przenieś oba parametry do panelu Selected Parameters. Zaznacz parametr learning_rate i wskaż, że powinien się zmieniać od 0 do 1 w 4 krokach. Analogicznie, skonfiguruj parametr momentum aby się zmieniał od 0 do 1 w 4 krokach (w obu przypadkach zwiększanie wartości parametru w każdym kroku powinno być liniowe). Okno konfiguracji operatora Optimize Parameter (Grid) powinno wyglądać następująco:

  • Przejdź jeszcze do konfiguracji operatora Neural Net. Ustaw liczbę cykli uczenia sieci na 5. Wyłącz także normalizację i mieszanie danych wejściowych. Uruchom przepływ a następnie skorzystaj z wizualizacji Surface 3D w celu obejrzenia wyników.
 
meta-metody-klasyfikacji.txt · Last modified: 2020/06/10 22:25 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