Hierarkkinen ryhmittely R: ssä Työskentely ja vaiheet klusteroinnin toteuttamiseksi R: ssä

Sisällysluettelo:

Anonim

Johdatus hierarkkiseen klusterointiin R: ssä

Hierarkkinen ryhmittely R: ssä on yleisin oppimismuoto. Klusterointi on yksi koneoppimisen algoritmeista, joka ottaa päätelmät leimaamattomasta tiedosta.

Koneoppimisalgoritmia on pääasiassa kahta tyyppiä:

  • Ohjatut oppimisalgoritmit
  • Ohjaamattomat oppimisalgoritmit

Ohjatut oppimisalgoritmit ovat luokka koneoppimisalgoritmeihin, joissa kone oppii merkitystä tiedosta. Esimerkki ohjatuista oppimisalgoritmeista on luokittelu ja regressio. Valvomattomat oppimisalgoritmit ovat koneoppimisalgoritmien luokka, jossa kone oppii leimaamattomasta tiedosta. Esimerkki valvomattomista oppimisalgoritmeista on klusterointialgoritmit.

Kuinka klusterointi toimii?

Klusterointialgoritmit ryhmittelevät joukon samanlaisia ​​datapisteitä klusteriksi. Klusterointialgoritmin päätavoitteena on luoda klusterit tietopisteitä, jotka ovat ominaisuuksiltaan samanlaisia. Toisin sanoen klusterin datapisteet ovat samanlaisia ​​ja yhden klusterin datapisteet eroavat toisen klusterin datapisteistä.

Hierarkkisessa klusterointialgoritmissa on pääasiassa kaksisuuntaista käyttöä, kuten alla on esitetty:

1. Agglomeratiivinen

Se alkaa jokaisella havainnolla yhdessä klusterissa, ja perustuen havainnon samankaltaisuusmittaukseen, kun kauempana yhdistyvät klusterit yhdeksi klusteriksi, kunnes pidempi yhdistäminen ei ole mahdollista, tätä lähestymistapaa kutsutaan taajamaiseksi lähestymistapana.

2. Erottava

Se alkaa kaikesta havainnosta yhdessä klusterissa ja kauempana jakautuessa samanlaisuusmittarin tai erilaisuuden mittaklusterin perusteella, kunnes jakoa ei ole mahdollista, tätä lähestymistapaa kutsutaan jakavaksi menetelmäksi.

Aloitetaan nyt hierarkkiset klusterointialgoritmit. Hierarkkinen klusterointi voidaan suorittaa ylhäältä alas tai alhaalta ylöspäin. Aloitamme alhaalta ylöspäin tai agglomeratiivisella lähestymistavalla, jossa aloitamme yhden klusterin luomisen jokaiselle datapisteelle ja yhdistämme sitten klusterit jonkin datapisteiden samankaltaisuusmittauksen perusteella. Seuraava tärkeä kohta on se, kuinka voimme mitata samankaltaisuutta. Etäisyysmatriiseja on saatavana monia, kuten Euclidean, Jaccard, Manhattan, Canberra, Minkowski jne. Etäisyysmatriisin valinta riippuu käytettävissä olevan tietojoukon tyypistä, esimerkiksi jos tietojoukko sisältää jatkuvia numeerisia arvoja, hyvä valinta on Euklidinen etäisyysmatriisi, kun taas jos tietojoukko sisältää binaaritietoja, hyvä valinta on Jaccard etäisyysmatriisi ja niin edelleen.

Hierarkkisen klusteroinnin toteuttaminen R: ssä

Hierarkkisen klusteroinnin toteuttamiseksi R: ssä vaadittavat vaiheet:

1. Asenna kaikki vaadittavat R-paketit

Aiomme käyttää alla olevia paketteja, joten asenna kaikki nämä paketit ennen käyttöä:

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. Tietojen valmistelu

Tiedot Valmistaudu hierarkkiseen klusterianalyysiin, tämä vaihe on hyvin perus- ja tärkeä asia. Meidän on suoritettava tässä pääasiassa kaksi tehtävää, jotka ovat skaalaus ja arvioivat puuttuva arvo. Tiedot on skaalattava tai standardisoitava tai normalisoitava, jotta muuttujat ovat vertailukelpoisia. Skaalattu tai standardisoitu tai normalisoitu on prosessi muuttujien muuttamiseksi siten, että niiden pitäisi olla keskihajonta yksi ja tarkoittaa nollaa.

Jos tietojoukossamme puuttuu arvo, silloin on erittäin tärkeää laskea puuttuva arvo tai poistaa itse datapiste. Saatavilla on erilaisia ​​vaihtoehtoja puuttuvan arvon laskemiseksi, kuten keskimääräinen, keskimääräinen mediaaniarvo puuttuvan arvon arvioimiseksi. Käytämme tässä esimerkiksi iiriksen sisäänrakennettua tietojoukkoa, jossa haluamme ryhmitellä iiris-tyyppiset kasvit, iiris-tietojoukossa on 3 luokkaa jokaiselle luokan 50 tapaukselle. Se sisältää 5 ominaisuutta kuin Sepal. Pituus, Sepal.leveys, terälehti.pituus, terälehti.leveys ja laji.

R-koodi:

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. Määritä, mitä hierarkkisia ryhmittelyalgoritmeja käytetään

Eri tyyppisiä hierarkkisia klusterointialgoritmeja kuten agglomeratiivista hierarkkista klusterointia ja jakavaa hierarkkista klusterointia on saatavilla R: ssä. Vaadittavat toiminnot ovat -

  • Agglomeratiivinen hierarkkinen klusterointi (HC): hclust-toiminto, joka on saatavana tilastopaketissa, ja Agnes-toiminto, joka on saatavana klusteripaketissa)
  • Jakautuva hierarkkinen klusterointi: Diana-toiminto, joka on saatavana klusteripaketissa.

4. Hierarkkisen klusteroinnin laskenta

Hierarkkisen klusteroinnin laskemiseksi etäisyysmatriisi on laskettava ja asetettava datapiste oikeaan klusteriin. Klusterin välinen etäisyys voidaan laskea seuraavalla tavalla eri tavoilla:

Täydellinen kytkentä: Suurin etäisyys lasketaan klustereiden välillä ennen yhdistämistä.

Yksi linkki: Minimietäisyys lasketaan klustereiden välillä ennen yhdistämistä.

Keskimääräinen kytkentä: Laskee klustereiden keskimääräisen etäisyyden ennen yhdistämistä.

R-koodi:

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

Centroidisidos: Rypämien kahden keskikohdan välinen etäisyys lasketaan ennen yhdistämistä.

R-koodi:

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

Dendrogrammia käytetään hallitsemaan saatujen klusterien määrää. Se toimii samalla tavalla kuin k-välineissä k suorittaa klusteroinnin määrän hallitsemiseksi. Nykyinen toiminto, jota voimme käyttää leikkaamaan dendrogrammi.

R-koodi:

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

Täysi R-koodi:

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)

Yllä olevan R-koodin kuvaaja:

johtopäätös

On pääasiassa kahta tyyppiä koneoppimisalgoritmeja ohjattuja oppimisalgoritmeja ja valvomattomia oppimisalgoritmeja. Rypytysalgoritmit ovat esimerkki valvomattomista oppimisalgoritmeista. Klusterointialgoritmit ryhmittelevät joukon samanlaisia ​​datapisteitä klustereihin. Hierarkkisessa klusterointialgoritmissa on pääasiassa kaksisuuntaista käyttöä, kuten alla on esitetty agglomeratiivisessa hierarkkisessa klusteroinnissa ja jakavassa hierarkkisessa klusteroinnissa.

Suositellut artikkelit

Tämä on opas R-ryhmän hierarkkiseen ryhmittelyyn. Tässä keskustellaan yksityiskohtaisesti klusteroinnin toiminnasta ja hierarkkisen klusteroinnin toteuttamisesta R: ssä. Voit myös käydä läpi muiden aiheeseen liittyvien artikkeleidemme saadaksesi lisätietoja-

  1. Rypytysalgoritmi
  2. Mikä on klusterointi tietojen louhinnassa?
  3. Klusterointimenetelmät
  4. Koneoppimismenetelmät
  5. Katsaus hierarkkiseen klusterointianalyysiin
  6. Luettelo R-paketeista