Hiërarchische clustering in R - Werken en stappen om clustering in R te implementeren

Inhoudsopgave:

Anonim

Inleiding tot hiërarchische clustering in R

Hiërarchische clustering in R is de meest voorkomende vorm van leren. Clustering is een van de algoritmen van machine learning die de conclusies haalt uit de niet-gelabelde gegevens.

Er zijn hoofdzakelijk twee soorten een machine learning-algoritme:

  • Begeleide leeralgoritmen
  • Leren zonder algoritmen

Supervised learning algoritmen is een categorie van een machine learning-algoritme waarin de machine leert van de gelabelde gegevens. Een voorbeeld van begeleide leeralgoritmen is classificatie en regressie. Niet-begeleide leeralgoritmen zijn een categorie van een machine-leeralgoritme waarin de machine leert van de niet-gelabelde gegevens. Een voorbeeld van algoritmen zonder toezicht zijn clusteringalgoritmen.

Hoe clusteren?

Clustering-algoritmen groeperen een set vergelijkbare gegevenspunten in clusters. Het hoofddoel van het cluster-algoritme is het creëren van clusters van gegevenspunten die vergelijkbaar zijn in de functies. Met andere woorden, datapunten binnen een cluster zijn vergelijkbaar en datapunten in het ene cluster verschillen van datapunten in een ander cluster.

Het hiërarchische clusteringalgoritme bestaat hoofdzakelijk uit twee benaderingen, zoals hieronder aangegeven:

1. Agglomeratief

Het begint met elke observatie in een enkel cluster en op basis van de gelijksoortigheidsmaat in de observatie voegt de clusters verder samen om een ​​enkel cluster te maken totdat geen verdere samenvoeging mogelijk is, deze benadering wordt een agglomeratieve benadering genoemd.

2. Deels

Het begint met alle observaties in een enkele cluster en verder gesplitst op basis van de gelijkheidsmaat of ongelijkheidsmaat cluster totdat geen splitsing mogelijk is, deze benadering wordt een delingsmethode genoemd.

Laten we nu beginnen met hiërarchische clusteringalgoritmen, hiërarchische clustering kan van boven naar beneden of van onder naar boven worden uitgevoerd. We beginnen met een bottom-up of agglomeratieve aanpak, waarbij we beginnen met het maken van één cluster voor elk gegevenspunt en vervolgens clusters samenvoegen op basis van een of andere gelijkenismaat in de gegevenspunten. Het volgende belangrijke punt is dat we de overeenkomst kunnen meten. Er zijn veel afstandsmatrixen beschikbaar zoals Euclidisch, Jaccard, Manhattan, Canberra, Minkowski enz. Om de verschilmaat te vinden. De keuze van de afstandsmatrix is ​​afhankelijk van het type beschikbare gegevensset, bijvoorbeeld, als de gegevensset continue numerieke waarden bevat, is de goede keuze de Euclidische afstandsmatrix, terwijl als de gegevensset binaire gegevens bevat, de goede keuze Jaccard is afstandsmatrix enzovoort.

Hiërarchische clustering implementeren in R

De stappen die moeten worden uitgevoerd om hiërarchische clustering in R te implementeren zijn:

1. Installeer alle vereiste R-pakketten

We gaan de onderstaande pakketten gebruiken, dus installeer al deze pakketten voor gebruik:

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. Gegevens voorbereiden

De gegevens Bereid u voor op hiërarchische clusteranalyse, deze stap is erg eenvoudig en belangrijk, we moeten hier voornamelijk twee taken uitvoeren die schalen en de ontbrekende waarde schatten. De gegevens moeten worden geschaald of gestandaardiseerd of genormaliseerd om variabelen vergelijkbaar te maken. De geschaalde of gestandaardiseerde of genormaliseerde is een proces van het transformeren van de variabelen zodat ze een standaardafwijking één moeten hebben en nul betekenen.

Als in onze gegevensset een ontbrekende waarde aanwezig is, is het erg belangrijk om de ontbrekende waarde toe te rekenen of het gegevenspunt zelf te verwijderen. Er zijn verschillende opties beschikbaar om de ontbrekende waarde toe te rekenen, zoals gemiddelde, gemiddelde, gemiddelde waarde om de ontbrekende waarde te schatten. We gebruiken hier bijvoorbeeld de ingebouwde gegevensset van iris, waarin we het type iris van planten willen clusteren, de irisgegevensset bevat 3 klassen voor elke klasse 50 instanties. Het bevat 5 functies als kelkblad. Lengte, kelkblad. Breedte, kroonblad. Lengte, kroonblad. Breedte en soorten.

De R-code:

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" "Species"

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. Geef op met welke hiërarchische clusteringalgoritmen

De verschillende soorten hiërarchische clusteringalgoritmen als agglomeratieve hiërarchische clustering en delingende hiërarchische clustering zijn beschikbaar in R. De vereiste functies zijn -

  • Agglomeratieve hiërarchische clustering (HC): hclust-functie die beschikbaar is in het statistiekenpakket en Agnes-functie die beschikbaar is in het clusterpakket) voor
  • Deelbare hiërarchische clustering: Diana-functie die beschikbaar is in clusterpakket.

4. Hiërarchische clustering berekenen

Om de hiërarchische clustering te berekenen, moet de afstandsmatrix worden berekend en moet het gegevenspunt in de juiste cluster worden geplaatst. Er zijn verschillende manieren waarop we de afstand tussen het cluster kunnen berekenen, zoals hieronder aangegeven:

Volledige koppeling: maximale afstand wordt berekend tussen clusters vóór het samenvoegen.

Enkele koppeling: de minimale afstand wordt berekend tussen de clusters vóór het samenvoegen.

Gemiddelde koppeling: berekent de gemiddelde afstand tussen clusters vóór het samenvoegen.

R code:

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

Centroid-koppeling: de afstand tussen de twee centroids van de clusters wordt berekend vóór het samenvoegen.

R code:

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

Het dendrogram wordt gebruikt om het aantal verkregen clusters te beheren. Het voert hetzelfde uit als in k-middelen k voert het aantal clustering uit. De huidige functie die we kunnen gebruiken om het dendrogram te knippen.

R code:

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

De volledige R-code:

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)

De plot van de bovenstaande R-code:

Conclusie

Er zijn hoofdzakelijk twee soorten machine learning algoritmen onder toezicht leeralgoritmen en niet-begeleide leeralgoritmen. Clusteringalgoritmen zijn een voorbeeld van algoritmen zonder toezicht. Clustering-algoritmen groeperen een set vergelijkbare gegevenspunten in clusters. Het hiërarchische clusteringalgoritme kent hoofdzakelijk twee benaderingswijzen, zoals hieronder wordt weergegeven agglomeratieve hiërarchische clustering en delingende hiërarchische clustering.

Aanbevolen artikelen

Dit is een gids voor hiërarchische clustering in R. Hier bespreken we hoe clustering werkt en het in detail implementeren van hiërarchische clustering in R. U kunt ook onze andere gerelateerde artikelen doornemen voor meer informatie-

  1. Clustering Algoritme
  2. Wat is clustering in datamining?
  3. Clustering methoden
  4. Machine leermethoden
  5. Overzicht van hiërarchische clusteranalyse
  6. Lijst met R-pakketten