Úvod do hierarchického klastru v R
Hierarchické shlukování v R je nejčastější formou učení. Clustering je jeden z algoritmů strojového učení, který bere závěry z neznačených dat.
Existují hlavně dva typy algoritmu strojového učení:
- Algoritmy učení pod dohledem
- Neupozorované algoritmy učení
Algoritmy pod dohledem jsou kategorie algoritmů strojového učení, ve kterých se stroj učí z označených dat. Příkladem supervidovaných algoritmů učení je klasifikace a regrese. Neupozorované algoritmy učení jsou kategorie algoritmu strojového učení, ve kterém se stroj učí z neznačených dat. Příkladem nepodřízených učebních algoritmů jsou shlukové algoritmy.
Jak funguje Clustering?
Algoritmy shlukování seskupují sadu podobných datových bodů do shluků. Hlavním cílem algoritmu shlukování je vytvořit shluky datových bodů, které jsou ve vlastnostech podobné. Jinými slovy, datové body v klastru jsou podobné a datové body v jednom klastru jsou odlišné od datových bodů v jiném klastru.
V hierarchickém klastrovacím algoritmu se používají hlavně dva přístupy, jak je uvedeno níže:
1. Aglomerát
Začíná každým pozorováním v jednom klastru a na základě míry podobnosti v pozorování dále spojuje klastry do jednoho klastru, dokud není možné další sloučení, tento přístup se nazývá aglomerativní přístup.
2. Divisivní
Začíná veškerým pozorováním v jednom klastru a dále se dělí na základě míry podobnosti nebo klastru míry odlišnosti, dokud není možné rozdělení, tento přístup se nazývá dělicí metoda.
Nyní začněme hierarchické klastrové algoritmy, hierarchické klastrování lze provádět shora dolů nebo zdola nahoru. Začneme přístupem zdola nahoru nebo aglomerací, kde začneme vytvářet jeden klastr pro každý datový bod a poté sloučíme klastry na základě nějaké míry podobnosti v datových bodech. Dalším důležitým bodem je to, jak můžeme měřit podobnost. K dispozici je mnoho matic vzdálenosti, jako jsou Euklidovský, Jaccard, Manhattan, Canberra, Minkowski atd., Aby se zjistila míra odlišnosti. Volba distanční matice závisí na typu dostupného datového souboru, například pokud datový soubor obsahuje spojité číselné hodnoty, pak je dobrou volbou euklidovská distanční matice, zatímco pokud datový soubor obsahuje binární data, dobrou volbou je Jaccard vzdálenost matice a tak dále.
Implementace hierarchického klastru v R
Kroky potřebné k provedení hierarchického klastrování v R jsou:
1. Nainstalujte všechny požadované balíčky R
Budeme používat níže uvedené balíčky, takže před použitím nainstalujte všechny tyto balíčky:
install.packages ( "cluster" ) # for clustering algorithms
install.packages ( "tidyverse" ) # for data manipulation
install.packages ( "factoextra" ) # for clustering visualization
# includes package in R as –
library ( "cluster" )
library( "tidyverse" )
library( "factoextra" )
2. Příprava dat
Data Připravte se na hierarchickou shlukovou analýzu, tento krok je velmi základní a důležitý, musíme zde provést hlavně dva úkoly, které jsou škálování a odhad chybějící hodnoty. Aby bylo možné proměnné porovnat, musí být údaje škálovány nebo standardizovány nebo normalizovány. Měřítko nebo standardizovaný nebo normalizovaný je proces transformace proměnných tak, že by měly mít standardní odchylku jedna a střední nulu.
Pokud je v naší datové sadě přítomna nějaká chybějící hodnota, pak je velmi důležité tuto chybnou hodnotu napodobit nebo odstranit samotný datový bod. K dispozici jsou různé možnosti pro přičítání chybějící hodnoty, jako je průměrná, střední, střední hodnota pro odhad chybějící hodnoty. Zde například používáme vestavěný datový soubor duhovky, ve kterém chceme klastrovat rostliny typu iris, sada dat iris obsahuje 3 třídy pro každou instanci třídy 50. Obsahuje 5 funkcí jako Sepal. Délka, samostatná šířka, okvětní délka, délka, okvětní šířka a druh.
R kód:
data <- iris
print(data)
# the sample of data set showing below which contain 1 sample for each class
"Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width" "Druh"
1 4, 9 3, 5 1, 3 0, 2 setosa
51 7.0 3.1 4.5 1.3 Versicolor
101 6, 3 3, 2 6, 0 1, 9 Virginia
data <- na.omit(data) # remove missing value
data <- scale(df) # scaling the variables or features
3. Určete, které hierarchické klastrové algoritmy používají
Různé typy hierarchických klastrových algoritmů, jako je aglomerativní hierarchické klastrování a dělící hierarchické klastrování, jsou k dispozici v R. Požadované funkce jsou -
- Aglomerativní hierarchické klastrování (HC): funkce hclust, která je k dispozici v balíčku statistik a funkce Agnes, která je k dispozici v balíčku clusterů) pro
- Divisive hierarchical clustering: Diana function, která je k dispozici v balíčku clusterů.
4. Výpočet hierarchického klastru
Pro výpočet hierarchického shlukování je třeba vypočítat matici vzdálenosti a dátový bod do správného shluku. Existuje několik způsobů, jak můžeme vypočítat vzdálenost mezi klastry, jak je uvedeno níže:
Kompletní propojení: Maximální vzdálenost se vypočítá mezi klastry před sloučením.
Single Linkage: Minimální vzdálenost se vypočítá mezi klastry před sloučením.
Průměrná vazba: Vypočítá průměrnou vzdálenost mezi klastry před sloučením.
R kód:
cluster <- hclust(data, method = "average" )
Centroid Linkage: Vzdálenost mezi dvěma centroidy klastrů se vypočítá před sloučením.
R kód:
# matrix of Dissimilarity
dis_mat <- dist(data, method = "euclidean")
# Hierarchical clustering using Complete Linkage
cluster <- hclust(data, method = "complete" )
# or Compute with agnes
cluster <- agnes(data, method = "complete")
5. Dendrogramy
Dendrogram se používá ke správě počtu získaných klastrů. Provádí totéž jako v k-znamená, že k provádí kontrolu počtu shluků. Aktuální funkce, kterou můžeme použít pro snížení dendrogramu.
R kód:
cutree(as.hclust(cluster), k = 3)
Úplný kód R:
ibrary(scatterplot3d)
data <- iris
print( data )
data <- na.omit(data)
data <- scale(data)
# matrix of Dissimilarity
dis_mat <- dist(data, method = "euclidean")
# creating hierarchical clustering with Complete Linkage
cluster <- hclust(data, method = "complete" )
# Dendrogram plot
plot(cluster)
# or agnes can be used to compute hierarchical clustering
Cluster2 <- agnes(data, method = "complete")
# Dendrogram plot
plot(cluster2)
Graf výše uvedeného R kódu:
Závěr
Existují hlavně dva typy algoritmů strojového učení, které jsou dohlíženy na algoritmy učení, a nepodléhající algoritmy na učení. Algoritmy klastrování jsou příkladem nepodložených algoritmů učení. Algoritmy klastrování seskupují sadu podobných datových bodů do klastrů. V algoritmu hierarchického klastrování se vyskytují hlavně použití dvou přístupů, jak je uvedeno níže, aglomerativní hierarchické klastrování a dělící hierarchické klastrování.
Doporučené články
Toto je průvodce hierarchickým klastrem v R. Zde diskutujeme o tom, jak klastrování funguje a jak implementujeme hierarchické klastrování do R podrobně. Další informace naleznete také v dalších souvisejících článcích.
- Clustering Algorithm
- Co je klastrování v těžbě dat?
- Metody shlukování
- Metody strojového učení
- Přehled analýzy hierarchického klastru
- Seznam R balíčků