Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Nowa wersja
Poprzednia wersja
Nowa wersja Both sides next revision
pl:dydaktyka:ml:2018lab8 [2018/05/29 09:08]
esimon utworzono
pl:dydaktyka:ml:2018lab8 [2018/05/29 11:52]
esimon [Instrukcje do laboratorium]
Linia 1: Linia 1:
 ====== Laboratorium 10 -- Drzewa decyzyjne ====== ====== Laboratorium 10 -- Drzewa decyzyjne ======
 ===== Instrukcje do laboratorium ===== ===== Instrukcje do laboratorium =====
-  - Notebook do pobrania: [[|decisiontrees.ipynb]]+  - Notebook do pobrania: [[https://​drive.google.com/​file/​d/​1mdTmhWDSoAXpZwiTMUwFM-a1GNctJ_GN/​view?​usp=sharing|decisiontrees.ipynb]]
   - W celu załadowania,​ wybierz '​File->​Upload Notebook'​ w Google Colab. W przypadku lokalnej wersji, po prostu nawiguj w oknie przeglądarki do miejsca gdzie zapisany jest notebook.   - W celu załadowania,​ wybierz '​File->​Upload Notebook'​ w Google Colab. W przypadku lokalnej wersji, po prostu nawiguj w oknie przeglądarki do miejsca gdzie zapisany jest notebook.
 +
 +
 +
 +===== Wprowadzenie do Weki =====
 +[[http://​www.cs.waikato.ac.nz/​~ml/​weka/​|Weka]],​ to narzędzie opensource do data miningu.
 +Uruchom je wykonując w konsoli polecenie. Jeśli program nie jest zainstalowany,​ ściagnij go ze strony ​
 +<​code>​
 +$ weka 
 +</​code>​
 +
 +Jeśli program nie jest zainstalowany,​ ściągnij go ze strony: ​ [[http://​www.cs.waikato.ac.nz/​~ml/​weka/​|Weka]] i uruchom:
 +<​code>​
 +$ java -jar weka.jar
 +</​code>​
 +
 +==== Wczytywanie i analiza danych ====
 +  - Pobierz paczkę plików z danymi: {{:​pl:​dydaktyka:​ml:​data.tar.gz|}}
 +  - Otwórz w Gedicie plik o nazwie swimming.arff i poznaj strukturę plików uczących dla weki z danymi symbolicznymi.
 +  - Uruchom Wekę i kliknij w przycisk **Explorer**
 +  - Przeanalizuj pierwszą zakładkę GUI i odpowiedz na pytania poniżej: \\ {{:​pl:​dydaktyka:​ml:​weka-preprocess.png?​600|}}
 +**Pytania**
 +  - Jaki jest rozmiar zbioru uczącego?
 +  - Ile atrybutów występuje w zbiorze uczącym?
 +  - Ile jest instancji jest pozytywnych (//​Enjoy=yes//​) a ile negatywnych?​
 +  - Który z atrybutów najlepiej rozdziela dane? ;)
 +  - Ile elementów ze zbioru danych ma atrybut wilgotność (//​humidity//​) ustawioną jako //high//?
 +
 +==== Drzewa decyzyjne ====
 +  - Wczytaj plik swimming.arff ze zbioru danych
 +  - Kliknij w zakładkę **Clasify**
 +  - Wybierz za pomocą przycisku **Choose** klasyfikator Id3.
 +  - Upewnij się, że w oknie //Test options// zaznaczona jest opcja //Use training set//. Uwaga! W przyszłości **nie** będziemy korzystać z tej formy testowania ​ - tutaj jesteśmy zmuszeni, z uwagi na niewielki zbiór uczący.
 +  - Kliknij w przycisk **Start**. Przyjrzyj się rezultatowi. Co oznaczają wyniki? \\ {{:​pl:​dydaktyka:​ml:​weka-clasify-1.png?​600|}}
 +  - Wybierz za pomocą przycisku **Choose** klasyfikator J48 i kliknij **Start**, następnie zwizualizuj drzewo tak jak to pokazano poniżej: \\ {{:​pl:​dydaktyka:​ml:​weka-visualize-tree.png?​600|}}
 +  - Czy drzewo wygląda tak jak je narysowałeś(aś) na początku laboratorium?​ \\ {{:​pl:​dydaktyka:​ml:​tree-begining.png|}}
 +
 +==== Poprawność klasyfikacji ====
 +  - Załaduj plik {{:​pl:​dydaktyka:​ml:​credit-g.arff.gz|credit-g.arff}} do Weki. Zawiera on dane uczące dla systemu, który na podstawie atrybutów zawartych w pliku powinien określać czy dany zestaw wartości atrybutów wskazuje na wiarygodnego klienta banku, czy też nie - czy można przyznać mu kredyt, czy jest to ryzykowne.
 +  - Przejdź do zakładki **Classify** i wybierz algorytm J48.
 +  - W obszarze //Test options// wybierz opcje //​Percentage split// z wartością 66% Oznacza to, ze 66% danych posłuży do uczenia, a 34% do walidacji. Jakie to ma znaczenie?
 +  - Uruchom algorytm. Ile procent przypadków zostało poprawnie zaklasyfikowanych?​ Czy to dobry wynik?
 +  - Zmień klasyfikator na //ZeroR// z gałęzi //rules//. Jakie są wyniki? ​
 +  - Wypróbuj inne klasyfikatory. Jakie dają wyniki?
 +  - Przejdź do zakładki **Preprocess** i zobacz jak wygląda rozkład atrybutu określającego czy danych zestaw jest //dobry// czy //zły//. Jaka byłaby skuteczność algorytmu który niezależnie od wartości atrybutów "​strzelałby"​ że użytkownik jest wiarygodny?
 +  - Dlaczego przed przystąpieniem do klasyfikacji,​ warto wcześniej przyjrzeć się danym? ;P
 +
 +==== User Classifier ====
 +  - Zbuduj drzewo z wykorzystaniem klasyfikatora "User Classifier"​ dla danych z pliku (użyj PPM do "​domknięcia"​ wielokąta):​ \\ {{:​pl:​dydaktyka:​ml:​polygon.png|}}
 +  - Zaakceptuj zbudowane drzewo i zobacz wyniki:\\ {{:​pl:​dydaktyka:​ml:​user-accept.png|}}
 +
 +
  
  
pl/dydaktyka/ml/2018lab8.txt · ostatnio zmienione: 2019/06/27 15:50 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0