1a. (MATLAB, na wirtualnym systemie Windows XP / Octave) Dla zbioru 'outlook' wykonaj grupowanie algorytmem hierarchicznym aglomeracyjnym (pomiń atrybut Play; możesz skorzystać z tablicy X zapisanej w pliku X.txt). Wykorzystaj poniższe funkcje (spawdzając ich składnię poleceniem help ): y = pdist(X) - z 'hamming' - tworzenie macierzy odległości (opis: https://ch.mathworks.com/help/stats/pdist.html) Z = linkage(y) - z 'average' - tworzenie dendrogramu (opis: https://ch.mathworks.com/help/stats/linkage.html) dendrogram(Z) - wyświetlenie dendrogramu //T = cluster(Z,'maxclust',n) - utworzenie rozłącznych klastrów z dendrogramu Z clusterdata - zbiorcza funkcja, wykonująca powyższe operacje (opis: https://ch.mathworks.com/help/stats/clusterdata.html) - tylko MATLAB 1b. (WEKA Explorer) /alternatywna wersja zad. 1a/ Dla zbioru 'outlook' wykonaj grupowanie algorytmem hierarchicznym aglomeracyjnym (pomiń atrybut decyzyjny Play; uwaga 1: WEKA nie obsługuje odległości Hamminga, trzeba wybrać inną miarę, np. euklidesową; uwaga 2: WEKA niestety oferuje dość podstawową wizualizację stworzonego dendrogramu): - wczytaj zbiór danych outlook.arff w progamie WEKA (plik pobrany ze strony https://gist.github.com/myui/2c9df50db3de93a71b92) - przejdź do zakładki Cluster i ustaw Clusterer = HierarchicalClusterer - dostosuj parametry algorytmu: distanceFunction = EuclideanDistance -R 2-5 (dla tych samych wartości atrybutu odległość wyniesie 0, dla różnych wyniesie 1; pomijamy atrybut nr 1 - id i nr 6 - decyzyjny) linkType = AVERAGE numClusters = 1 (oznacza generowanie pojedynczej hierarchii) printNewick = True - Ustaw "Cluster mode" równe "Use training set" - upewnij się, że zaznaczony jest checkbox "Store clusters for visualization" - możesz kliknąć przycisk "Ignore attributes", podświetlić atrybut "play" i wcisnąć "Select" (ale i tak atrybut decyzyjny, jak i pierwszy atrybut id typu string są automatycznie pomijane) - uruchom grupowanie przyciskiem Start - przeanalizuj strukturę drzewa zapisaną w postaci tekstowej w formacie Newick'a (https://en.wikipedia.org/wiki/Newick_format) w panelu "Clusterer output"; możesz stworzyć jego reprezentację graficzną (np. wklejając drzewo w aplikacji Javascript http://www.atgc-montpellier.fr/aquapony, dodając na końcu średnik, wciskając "Figure Creation", a następnie w "Options" zmieniając "Type of graph of the main tree" na "Linear" i zatwierdzając przez "Update Options") - kliknij prawym przyciskiem na uzyskanych wynikach i wybierz "Visualize tree" (widać strukturę dendrogramu, a etykiety wierzchołków wynikają z wartości obiektów na atrybucie id typu string) 1c. /alternatywna wersja zad. 1a/ Dla zbioru 'outlook' wykonaj grupowanie algorytmem hierarchicznym aglomeracyjnym (pomiń atrybut decyzyjny Play, użyj jednego z poniżej wymienionych programów) 2. (WEKA) Dla zbioru 'IRIS' (UCI Machine Learning Repository: http://archive.ics.uci.edu/ml/datasets/Iris) wykonaj grupowanie algorytmem simple k-means (weka.clusterers.SimpleKMeans), najpierw dla k=4, a następnie dla k=3. Porównaj uzyskane grupowania. 3. (ćw.) Zastosuj algorytm AQ do indukcji reguł dla zbioru danych 'attractiveness' - wyindukuj pokrycie klasy "+" i "-" 4. (WEKA) Uruchom algorytm COBWEB (weka.clusterers.Cobweb) na zbiorze danych 'oneCell' (ustaw parametr saveInstanceData na True). Skomentuj otrzymane wyniki. ----- Dostępne implementacje algorytmów grupowania: a) Orange - zakładka Unsupervised: - Hierarchical Clustering - k-Means b) RapidMider: - Modeling/Segmentation/k-Means - Modeling/Segmentation/k-Medoids - Modeling/Segmentation/Agglomerative Clustering - Modeling/Segmentation/DBSCAN c) KNIME: - Analytics / Mining / Clustering / k-Means - Analytics / Mining / Clustering / Fuzzy c-Means - Analytics / Mining / Clustering / Hierarchical Clustering - Analytics / Mining / Clustering / DBSCAN d) WEKA: - możliwe jest doinstalowanie opcjonalnego pakietu z algorytmem DBSCAN (optics_dbScan 1.0.6) - w tym celu w oknie WEKA GUI Chooser należy wybrać opcję Tools / Package manager - weka.clusterers.DBSCAN -E 0.2 -M 5 -A "weka.core.EuclideanDistance -R first-last" e) scikit-learn: - sklearn.cluster.KMeans - sklearn.cluster.AgglomerativeClustering - sklearn.cluster.DBSCAN