Introducere în clusteringul ierarhic în R
Gruparea ierarhică în R este cea mai comună formă de învățare. Clusteringul este unul dintre algoritmii de învățare a mașinilor care preia inferențele din datele fără marcă.
Există în principal două tipuri de algoritm de învățare automată:
- Algoritmi de învățare supervizați
- Algoritmi de învățare nesupravegheat
Algoritmii de învățare supravegheată este o categorie a unui algoritm de învățare automată în care mașina învață din datele etichetate. Un exemplu de algoritmi de învățare supravegheată este clasificarea și regresia. Algoritmii de învățare nesupravegheați sunt o categorie a unui algoritm de învățare a mașinii în care mașina învață din datele fără marcă. Un exemplu de algoritmi de învățare nesupravegheat este algoritmii de clustering.
Cum funcționează clusteringul?
Algoritmii de clustering grupează un set de puncte de date similare în clustere. Principalul obiectiv al algoritmului de clustering este de a crea grupuri de puncte de date care sunt similare în funcții. Cu alte cuvinte, punctele de date dintr-un cluster sunt similare, iar punctele de date dintr-un cluster sunt diferite de punctele de date dintr-un alt cluster.
Există în principal utilizări cu două abordări în algoritmul ierarhic de clustering, așa cum este prezentat mai jos:
1. aglomerativ
Începe cu fiecare observație dintr-un singur cluster și, pe baza măsurii de asemănare din observație, fuzionează mai departe grupurile pentru a face un singur cluster până când nu mai este posibilă îmbinarea, această abordare este numită abordare aglomerativă.
2. Diviziv
Începe cu toate observațiile dintr-un singur cluster și divizări mai îndepărtate, bazate pe măsura similarității sau a clusterului de măsurare a disimilarității, până când nu este posibilă divizarea, această abordare este numită metodă de divizare.
Acum să începem algoritmii ierarhici de clustering, clusteringul ierarhic poate fi efectuat de sus în jos sau de jos în sus. Începem cu o abordare de jos în sus sau aglomerativă, în care începem să creăm un cluster pentru fiecare punct de date și apoi îmbinăm clustere pe baza unor măsuri de similitudine în punctele de date. Următorul punct important este că putem măsura asemănarea. Există multe matrice de distanță disponibile ca Euclide, Jaccard, Manhattan, Canberra, Minkowski, etc. pentru a găsi măsura de disimilitate. Alegerea matricei de distanță depinde de tipul de set de date disponibile, de exemplu, dacă setul de date conține valori numerice continue, atunci alegerea bună este matricea euclidiană a distanței, în timp ce dacă setul de date conține date binare, alegerea bună este Jaccard matrice de distanță și așa mai departe.
Implementarea grupării ierarhice în R
Pașii necesari pentru a implementa clusteringul ierarhic în R sunt:
1. Instalați toate pachetele R necesare
Vom folosi pachetele de mai jos, așadar instalați toate aceste pachete înainte de a utiliza:
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. Pregătirea datelor
Datele Pregătiți pentru analiza ierarhică a clusterului, acest pas este foarte de bază și important, trebuie să îndeplinim în principal două sarcini care sunt scalarea și estimarea valorii lipsă. Datele trebuie să fie scalate, standardizate sau normalizate pentru a face variabile comparabile. Scala sau standardizată sau normalizată este un proces de transformare a variabilelor astfel încât acestea să aibă o abatere standard una și medie zero.
Dacă în setul nostru de date există o valoare care lipsește, atunci este foarte important să se impute valoarea lipsă sau să se înlăture punctul de date în sine. Există diferite opțiuni disponibile pentru a imputa valoarea lipsă, cum ar fi valoarea medie, medie, pentru a estima valoarea lipsă. De exemplu, folosim aici setul de date încorporat iris, în care dorim să aglomerați tipul iris de plante, setul de date iris conține 3 clase pentru fiecare clasă 50 de instanțe. Conține 5 caracteristici sub formă de Sepal. Lungime, Sepal.Lățime, Petal.Lungime, Petal.Lățime și Specie.
Codul R:
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. Specificați ce algoritmi de clustering ierarhici utilizează
Diferitele tipuri de algoritmi de clustering ierarhici, precum aglomerarea de ierarhizare și clusteringul ierarhic divizibil sunt disponibile în R. Funcțiile necesare sunt:
- Clustering ierarhic aglomerativ (HC): funcția hclust care este disponibilă în pachetul de statistici și funcția Agnes care este disponibilă în pachetul de cluster) pentru
- Clustering ierarhic diviziv: funcția Diana care este disponibilă în pachetul de cluster.
4. Calcularea ierarhiei de clustering
Pentru a calcula aglomerarea ierarhică a matricei de distanță trebuie să fie calculat și să punem punctul de date către clusterul corect. Există diferite modalități prin care putem calcula distanța dintre cluster, așa cum este prezentat mai jos:
Legătură completă: distanța maximă se calculează între clustere înainte de contopire.
Legătură unică: Distanța minimă se calculează între clustere înainte de contopire.
Legătură medie: calculează distanța medie între clusteruri înainte de contopire.
Cod R:
cluster <- hclust(data, method = "average" )
Legătură centroidă: distanța dintre cele două centroide ale clusterilor se calculează înainte de contopire.
Cod R:
# 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. Dendrograme
Dendrograma este utilizată pentru a gestiona numărul de clustere obținute. Se execută la fel ca în k-mijloace k pentru a controla numărul de clustering. Funcția curentă pe care o putem folosi pentru a tăia dendrograma.
Cod R:
cutree(as.hclust(cluster), k = 3)
Codul complet 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)
Graficul codului R de mai sus:
Concluzie
Există în principal două tipuri de algoritmi de învățare automată, algoritmi de învățare supravegheați și algoritmi de învățare nesupravegheați. Algoritmii de clustering sunt un exemplu de algoritmi de învățare nesupravegheat. Algoritmii de clustering grupează un set de puncte de date similare în clustere. Există în principal utilizări cu două abordări în algoritmul de clustering ierarhic, așa cum este prezentat mai jos, clusteringul ierarhic aglomerativ și clusteringul ierarhic divizibil.
Articole recomandate
Acesta este un ghid pentru clusteringul ierarhic în R. Aici vom discuta despre modul în care funcționează clusteringul și punerea în aplicare a clusteringului ierarhic în detaliu R. Puteți, de asemenea, să parcurgeți alte articole conexe pentru a afla mai multe-
- Algoritmul de clustering
- Ce este Clustering în Data Mining?
- Metode de clustering
- Metode de învățare a mașinilor
- Prezentare generală a analizei de clustering ierarhice
- Lista pachetelor R