class: center, middle, inverse, title-slide .title[ # Metody przetwarzania
i analizy danych ] .subtitle[ ## Grupowanie ] .author[ ### © Łukasz Wawrowski ] --- # Podział metod Uczenie nadzorowane - końcowy wynik jest znany - klasyfikacja - regresja Uczenie nienadzorowane - końcowy wynik nie jest znany - grupowanie obiektów - grupowanie cech --- # Podział metod ![](img/wd.jpg) --- # Grupowanie Metoda iteracyjna: - funkcja `kmeans()` - pakiet [_ClusterR_](https://cran.r-project.org/web/packages/ClusterR/index.html) Metoda hierarchiczna: - funkcja `hclust()` - pakiet [_ggdendro_](https://cran.r-project.org/web/packages/ggdendro/index.html) - pakiet [_clusterCrit_](https://cran.r-project.org/web/packages/clusterCrit/) --- # Idea Liczenie odległości pomiędzy analizowanymi obiektami. Cechy opisujące obiekty mogą być wyrażone w różnych jednostkach np. w segmentacji klientów: - wiek w latach - wydatki na zakupy - liczba wizyt w sklepie W związku z tym konieczna jest **normalizacja** cech czyli pozbawienie ich mian. Najpopularniejszą metodą normalizacji jest standaryzacja: `\(z=\frac{x-\bar{x}}{s}\)` gdzie: `\(\bar{x}\)` - średnia, `\(s\)` - odchylenie standardowe. --- # Standaryzacja ![](06_grupowanie_files/figure-html/unnamed-chunk-2-1.png)<!-- --> --- # Metoda k-średnich 1. Wskaż liczbę grup `\(k\)`. 2. Wybierz dowolne `\(k\)` punktów jako centra grup. 3. Przypisz każdą z obserwacji do najbliższego centroidu. 4. Oblicz nowe centrum grupy. 5. Przypisz każdą z obserwacji do nowych centroidów. Jeśli któraś obserwacja zmieniła grupę - przejdź do kroków nr 3 i 4, a w przeciwnym przypadku zakończ algorytm. --- # Metoda k-średnich ![](img/kmeans.gif) [źródło](https://dashee87.github.io/data%20science/general/Clustering-with-Scikit-with-GIFs/) --- # Przykład Segementacja [klientów sklepu](http://www.wawrowski.edu.pl/data/klienci.csv) w oparciu o następujące dane: - klientID - identyfikator klienta - plec - płeć - wiek - wiek - roczny_dochod - roczny dochód wyrażony w tys. dolarów - wskaznik_wydatkow - klasyfikacja sklepu od 1 do 100 --- class: inverse # Zadanie Dokonaj grupowania danych dotyczących [32 samochodów](http://www.wawrowski.edu.pl/data/auta.csv) według następujących zmiennych: pojemność, przebieg, lata oraz cena.
−
+
10
:
00
--- # Metoda hierarchiczna 1. Każda obserwacji stanowi jedną z `\(N\)` pojedynczych grup. 2. Na podstawie macierzy odległości połącz dwie najbliżej leżące obserwacje w jedną grupę. 3. Połącz dwa najbliżej siebie leżące grupy w jedną. 4. Powtórz kroki nr 2 i 3, aż do uzyskania jednej grupy. --- # Dendrogram <img src="img/dendrogram.png" height="500px"> [źródło](https://www.data-to-viz.com/graph/dendrogram.html) --- class: inverse # Zadanie Do danych z poprzedniego zadania zastosuj metodę hierarchiczną.
−
+
10
:
00
--- # Inne algorytmy grupowania Algorytmów grupowania jest bardzo wiele. - [DBSCAN](https://github.com/mhahsler/dbscan) - [MeanShift](https://cran.r-project.org/web/packages/meanShiftR/) - [GMM](https://cran.r-project.org/web/packages/mclust/) Niektóre z nich mają na celu wykrywanie anomalii, dzieląc dane zawsze na dwie grupy - obserwacji nietypowych oraz typowych. - [Local Outlier Factor](https://github.com/mhahsler/dbscan) - [One Class SVM](https://lsinks.github.io/posts/2023-03-30-One-Class-SVM/one-class-svm.html) --- # Skuteczność algorytmów <img src="img/cluster_comparison.png" width="600px"> Źródło: https://scikit-learn.org/stable/auto_examples/cluster/plot_cluster_comparison.html --- # Redukcja wymiarów - [PCA](https://miroslawmamczur.pl/na-czym-polega-analiza-skladowych-glownych-pca/) - [t-SNE](https://miroslawmamczur.pl/jak-dziala-metoda-redukcji-wymiarow-t-sne/) - [UMAP](https://cran.r-project.org/web/packages/umap/vignettes/umap.html) Wiele narzędzi do wizualizacji wyników można znaleźć w pakiecie [factoextra](https://github.com/kassambara/factoextra). --- # Paradoks Simpsona Efekt działania kilku grup wydaje się odwrócony, kiedy grupy są połączone. <img src="img/simpson.png" width="600px"> -- - Nabór na Uniwersytecie w Berekley w 1951 roku: spośród kandydatów przyjęto 45% mężczyzn i 30% kobiet. - Uniwersytet został oskarżony o seksizm i sprawa została skierowana do sądu. --- # Zbiór palmerpenguins [Zbiór danych na temat pingwinów](https://github.com/allisonhorst/palmerpenguins) <img src="img/lter_penguins.png" width="600px"> --- class: inverse, center, middle # Pytania?