Hierarkisk gruppering i R - Working & Steps to Implementing clustering in R

Innehållsförteckning:

Anonim

Introduktion till hierarkisk klustering i R

Hierarkisk gruppering i R är den vanligaste inlärningsformen. Clustering är en av algoritmerna för maskininlärning som tar slutsatserna från de ommärkta data.

Det finns huvudsakligen två typer av en maskininlärningsalgoritm:

  • Övervakad inlärningsalgoritmer
  • Oövervakade inlärningsalgoritmer

Övervakad inlärningsalgoritmer är en kategori av en maskininlärningsalgoritm där maskinen lär sig från de märkta data. Ett exempel på övervakade inlärningsalgoritmer är klassificering och regression. Oövervakade inlärningsalgoritmer är en kategori av en maskininlärningsalgoritm där maskinen lär sig från de ommärkta data. Ett exempel på icke övervakade inlärningsalgoritmer är klusteralgoritmer.

Hur kluster fungerar?

Klusteralgoritmer grupperar en uppsättning liknande datapunkter i kluster. Huvudmålet med klusteralgoritmen är att skapa kluster av datapunkter som liknar funktionerna. Med andra ord är datapunkter i ett kluster likadana och datapunkter i ett kluster skiljer sig från datapunkter i ett annat kluster.

Det finns huvudsakligen tvåanvändningsanvändningar i den hierarkiska klusteralgoritmen enligt nedan:

1. Agglomerativ

Det börjar med varje observation i ett enda kluster, och baserat på likhetsmåttet i observationen längre sammanslager klusterna för att göra ett enda kluster tills ingen längre sammanslagning är möjlig, kallas denna strategi ett agglomerativt tillvägagångssätt.

2. Delande

Det börjar med all observation i ett enda kluster och längre delningar baserat på likhetsmåttet eller olika måttkluster tills ingen splittring är möjlig, denna metod kallas en delande metod.

Låt oss nu starta hierarkiska klusteralgoritmer, hierarkiska kluster kan utföras uppifrån och ner eller ner-upp. Vi börjar med ett bottom-up eller agglomerativt tillvägagångssätt, där vi börjar skapa ett kluster för varje datapunkt och sedan slå samman kluster baserat på något likhetsmått i datapunkterna. Nästa viktiga punkt är att hur vi kan mäta likheten. Det finns många distansmatriser som Euclidean, Jaccard, Manhattan, Canberra, Minkowski osv. För att hitta måtten olikhet. Valet av distansmatris beror på typen av tillgänglig datauppsättning, till exempel, om datauppsättningen innehåller kontinuerliga numeriska värden, då är det bra valet den euklidiska avståndsmatrisen, medan om datauppsättningen innehåller binära data är det bra valet Jaccard distansmatris och så vidare.

Implementering av hierarkisk gruppering i R

Stegen som krävs för att utföra för att implementera hierarkisk klustering i R är:

1. Installera alla obligatoriska R-paket

Vi kommer att använda paketen nedan, så installera alla dessa paket innan du använder:

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. Förberedelse av data

Data Förbered dig för hierarkisk klusteranalys, detta steg är mycket grundläggande och viktigt, vi måste huvudsakligen utföra två uppgifter här som skalar och uppskattar saknad värde. Uppgifterna måste skalas eller standardiseras eller normaliseras för att göra variabler jämförbara. Den skalade eller standardiserade eller normaliserade är en process för att transformera variablerna så att de ska ha en standardavvikelse och genomsnitt noll.

Om det finns något saknat värde i vår datauppsättning är det mycket viktigt att tillrätta det saknade värdet eller ta bort själva datapunkten. Det finns olika alternativ för att beräkna det saknade värdet som medelvärde, medelvärde, medianvärde för att uppskatta det saknade värdet. Till exempel använder vi här iris inbyggda datasätt, där vi vill klustera iris-typen av växter, iris-datauppsättningen innehåller 3 klasser för varje klass 50-instanser. Den innehåller 5 funktioner som Sepal. Längd, sepal. Bredd, kronblad. Längd, kronblad. Bredd och 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. Ange vilka hierarkiska klusteralgoritmer med

De olika typerna av hierarkiska klusteralgoritmer som agglomerativ hierarkisk kluster och delande hierarkisk kluster är tillgängliga i R. De nödvändiga funktionerna är -

  • Agglomerativ hierarkisk klustering (HC): hclust-funktion som är tillgänglig i statistikpaket och Agnes-funktion som är tillgänglig i klusterpaket) för
  • Delande hierarkisk kluster: Diana-funktion som finns i klusterpaketet.

4. Beräkna hierarkisk kluster

För att beräkna den hierarkiska klustringen måste avståndsmatrisen beräknas och sätta datapunkten till rätt kluster. Det finns olika sätt vi kan beräkna avståndet mellan klustret enligt nedan:

Komplett koppling: Maximalt avstånd beräknas mellan kluster före sammanslagning.

Enkelkoppling: Minsta avstånd beräknas mellan klusterna före sammanslagning.

Genomsnittlig koppling: Beräknar medelavståndet mellan kluster före sammanslagning.

R-kod:

cluster <- hclust(data, method = "average" )

Centroid-koppling: Avståndet mellan de två centroiderna i klustren beräknas innan de slås samman.

R-kod:

# 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. Dendrogram

Dendrogrammet används för att hantera antalet erhållna kluster. Den utför samma sak som i k-medel k utför för att kontrollera antalet kluster. Den nuvarande funktionen vi kan använda för att klippa dendrogrammet.

R-kod:

cutree(as.hclust(cluster), k = 3)

Full R-kod:

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 för ovanstående R-kod:

Slutsats

Det finns huvudsakligen två typer av maskininlärningsalgoritmer övervakade inlärningsalgoritmer och oövervakade inlärningsalgoritmer. Klusteralgoritmer är ett exempel på osäkerhetsinlärningsalgoritmer. Klusteralgoritmer grupperar en uppsättning liknande datapunkter i kluster. Det finns huvudsakligen tvåanvändningsanvändningar i den hierarkiska klusteralgoritmen, som anges nedan agglomerativ hierarkisk klustering och delande hierarkisk klustering.

Rekommenderade artiklar

Detta är en guide till hierarkisk gruppering i R. Här diskuterar vi hur kluster fungerar och implementerar hierarkisk kluster i R i detalj. Du kan också gå igenom våra andra relaterade artiklar för att lära dig mer-

  1. Clustering algoritm
  2. Vad är Clustering i Data Mining?
  3. Clustering Methods
  4. Maskininlärningsmetoder
  5. Översikt av hierarkisk klusteranalys
  6. Lista över R-paket