Introduktion til hierarkisk klynge i R
Hierarkisk klynge i R er den mest almindelige form for læring. Clustering er en af algoritmerne til maskinlæring, der tager konklusionerne fra de umærkede data.
Der er hovedsageligt to typer af en maskinlæringsalgoritme:
- Overvåget indlæringsalgoritmer
- Ikke-overvågede læringsalgoritmer
Overvåget indlæringsalgoritmer er en kategori af en maskinlæringsalgoritme, hvor maskinen lærer af de mærkede data. Et eksempel på overvåget indlæringsalgoritmer er klassificering og regression. Ikke-overvågede læringsalgoritmer er en kategori af en maskinlæringsalgoritme, hvor maskinen lærer af de umærkede data. Et eksempel på uovervåget indlæringsalgoritmer er grupperingsalgoritmer.
Hvordan klynge fungerer?
Clustering-algoritmer grupperer et sæt lignende datapunkter i klynger. Hovedmålet med klyngerealgoritmen er at oprette klynger af datapunkter, der ligner funktionerne. Med andre ord er datapunkter inden for en klynge ens, og datapunkter i en klynge er forskellige fra datapunkter i en anden klynge.
Der er hovedsageligt to-tilgangsanvendelser i den hierarkiske klynge-algoritme, som beskrevet nedenfor:
1. Agglomerativ
Det begynder med hver observation i en enkelt klynge, og baseret på lighedstiltaket i observationen længere sammen fletter klyngerne til at skabe en enkelt klynge, indtil ingen længere fusionering er mulig, kaldes denne tilgang en agglomerativ tilgang.
2. Opdelende
Det begynder med al observation i en enkelt klynge og længere splittelse baseret på lighedstiltag eller forskelligartethedsklynge, indtil ingen split er mulig, kaldes denne tilgang en opdelende metode.
Lad os nu starte hierarkiske klyngealgoritmer. Hierarkiske klynger kan udføres top-down eller bottom-up. Vi starter med en bottom-up eller agglomerativ tilgang, hvor vi begynder at oprette en klynge for hvert datapunkt og derefter flette sammen klynger baseret på et eller andet lighedstal i datapunkterne. Det næste vigtige punkt er, hvordan vi kan måle ligheden. Der er mange afstandsmatrixer, som f.eks. Euclidean, Jaccard, Manhattan, Canberra, Minkowski osv. For at finde forskelligheden. Valget af afstandsmatrix afhænger af typen af det tilgængelige datasæt, for eksempel hvis datasættet indeholder kontinuerlige numeriske værdier, er det gode valg den euklidiske afstandsmatrix, mens hvis datasættet indeholder binære data, er det gode valg Jaccard afstandsmatrix og så videre.
Implementering af hierarkisk klynge i R
De trin, der kræves for at udføre for at implementere hierarkisk klynger i R, er:
1. Installer alle nødvendige R-pakker
Vi vil bruge nedenstående pakker, så installer alle disse pakker, før du bruger:
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. Forberedelse af data
Dataene Forbered dig på hierarkisk klyngeanalyse, dette trin er meget grundlæggende og vigtigt. Vi skal hovedsageligt udføre to opgaver her, som skalerer og estimerer den manglende værdi. Dataene skaleres eller standardiseres eller normaliseres for at gøre variabler sammenlignelige. Den skalerede eller standardiserede eller normaliserede er en proces til transformering af variablerne, så de skal have en standardafvigelse og gennemsnit nul.
Hvis der i vores datasæt findes en manglende værdi, er det meget vigtigt at beregne den manglende værdi eller fjerne selve datapunktet. Der er forskellige muligheder til rådighed for at beregne den manglende værdi som gennemsnit, gennemsnit, medianværdi for at estimere den manglende værdi. For eksempel bruger vi her iris indbygget datasæt, hvor vi vil klynge iris-typen af planter, iris-datasættet indeholder 3 klasser for hver klasse 50-forekomster. Det indeholder 5 funktioner som Sepal. Længde, sepal. Bredde, kronblad. Længde, kronblad. Bredde og arter.
R-koden:
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” “Art”
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. Angiv hvilke hierarkiske klynge-algoritmer, der bruger
De forskellige typer af hierarkiske klynge-algoritmer som agglomerativ hierarkisk klynge og opdelende hierarkisk klynge er tilgængelige i R. De krævede funktioner er -
- Agglomerativ hierarkisk klynge (HC): hclust-funktion, der er tilgængelig i statistikpakke og Agnes-funktion, som er tilgængelig i klyngepakke) for
- Opdelende hierarkisk klynge: Diana-funktion, der er tilgængelig i klyngepakke.
4. Beregning af hierarkisk klynge
For at beregne den hierarkiske klynge skal afstandsmatrixen beregnes og placeres datapunktet i den rigtige klynge. Der er forskellige måder, vi kan beregne afstanden mellem klyngen på som vist nedenfor:
Komplet kobling: Maksimal afstand beregnes mellem klynger før sammenlægning.
Enkelt kobling: Minimum afstand beregnes mellem klyngerne, før de fusioneres.
Gennemsnitlig kobling: Beregner den gennemsnitlige afstand mellem klynger før sammenlægning.
R-kode:
cluster <- hclust(data, method = "average" )
Centroid-forbindelse: Afstanden mellem de to centroider i klyngerne beregnes, før de fusioneres.
R-kode:
# 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. Dendrogrammer
Dendrogrammet bruges til at styre antallet af opnåede klynger. Det udfører det samme som i k-middel k udfører for at kontrollere antallet af klynger. Den aktuelle funktion, vi kan bruge til at skære dendrogrammet.
R-kode:
cutree(as.hclust(cluster), k = 3)
Den fulde R-kode:
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)
Plottet for ovennævnte R-kode:
Konklusion
Der er hovedsageligt to typer maskinlæringsalgoritmer, der er overvåget indlæringsalgoritmer og uovervåget indlæringsalgoritmer. Clustering-algoritmer er et eksempel på uovervåget indlæringsalgoritmer. Clustering-algoritmer grupperer et sæt lignende datapunkter i klynger. Der er hovedsageligt to-tilgangsanvendelser i den hierarkiske klyngerealgoritme, som angivet nedenfor agglomerativ hierarkisk klyngering og opdelende hierarkisk klyngering.
Anbefalede artikler
Dette er en guide til hierarkisk klynge i R. Her diskuterer vi, hvordan klynger fungerer og implementerer hierarkisk klynge i R i detaljer. Du kan også gennemgå vores andre relaterede artikler for at lære mere-
- Clustering algoritme
- Hvad er klynge i datamining?
- Clustering Methods
- Metoder til maskinindlæring
- Oversigt over hierarkisk klynge-analyse
- Liste over R-pakker