Hierarchické zoskupovanie v Pracovné kroky a kroky na implementáciu klastrov v R

Obsah:

Anonim

Úvod do hierarchického klastra v R

Hierarchické zoskupovanie v R je najbežnejšou formou učenia. Zhlukovanie je jedným z algoritmov strojového učenia, ktoré vyvodzuje závery z neznačených údajov.

Existujú hlavne dva typy algoritmu strojového učenia:

  • Algoritmy učenia pod dohľadom
  • Neupozorované algoritmy učenia

Algoritmy pod dohľadom sú kategória algoritmu strojového učenia, v ktorom sa stroj učí z označených údajov. Príkladom dohliadaných učebných algoritmov je klasifikácia a regresia. Neupozorované algoritmy učenia sú kategóriou algoritmu strojového učenia, v ktorom sa stroj učí z neznačených údajov. Príkladom nepodrobených učebných algoritmov sú zhlukové algoritmy.

Ako funguje klastrovanie?

Algoritmy zoskupovania zoskupujú skupinu podobných údajových bodov do zoskupení. Hlavným cieľom algoritmu klastrovania je vytvoriť zhluky údajových bodov, ktoré sú vo vlastnostiach podobné. Inými slovami, dátové body v klastri sú podobné a dátové body v jednom klastri sú odlišné od dátových bodov v inom klastri.

V algoritme hierarchického zoskupovania sa používajú hlavne dva prístupy, ako je uvedené nižšie:

1. Aglomerát

Začína sa každým pozorovaním v jedinom zoskupení a na základe miery podobnosti v pozorovaní ďalej spája zoskupenia do jedného zoskupenia, až kým nie je možné ďalšie zlúčenie, tento prístup sa nazýva aglomeračný prístup.

2. Rozdeľujúce

Začína sa všetkými pozorovaniami v jednom zoskupení a ďalej sa delia na základe zoskupenia na meranie podobnosti alebo zoskupenia na meranie rozdielnosti, až kým nie je možné rozdelenie. Tento prístup sa nazýva deliaca metóda.

Teraz začnime algoritmy hierarchického zoskupovania, hierarchické zoskupovanie sa môže vykonávať zhora nadol alebo zdola nahor. Začneme prístupom zdola nahor alebo aglomeráciou, kde začneme vytvárať jeden klaster pre každý dátový bod a potom zlúčime klastre na základe nejakej miery podobnosti v dátových bodoch. Ďalším dôležitým bodom je to, ako môžeme zmerať podobnosť. Existuje veľa matíc vzdialeností, ako sú Euklidovský, Jaccard, Manhattan, Canberra, Minkowski atď., Aby sa zistila miera rozdielnosti. Výber dištančnej matice závisí od typu dostupného súboru údajov, napríklad, ak sada údajov obsahuje súvislé číselné hodnoty, potom je dobrou voľbou euklidovská dištančná matica, zatiaľ čo ak sada údajov obsahuje binárne údaje, dobrou voľbou je Jaccard. dištančná matica a tak ďalej.

Implementácia hierarchického zoskupovania v R

Kroky potrebné na vykonanie hierarchického zoskupovania v R sú:

1. Nainštalujte všetky požadované balíky R

Budeme používať nižšie uvedené balíčky, takže pred použitím nainštalujte všetky tieto balíčky:

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. Príprava údajov

Údaje Pripravte sa na hierarchickú zhlukovú analýzu, tento krok je veľmi jednoduchý a dôležitý, musíme tu vykonať predovšetkým dve úlohy, ktoré sú škálovanie a odhad chýbajúcej hodnoty. Aby údaje boli porovnateľné, údaje sa musia škálovať alebo normalizovať alebo normalizovať. Mierka alebo štandardizácia alebo normalizácia je proces transformácie premenných tak, že by mali mať štandardnú odchýlku jedna a strednú nulu.

Ak je v našom súbore údajov prítomná nejaká chýbajúca hodnota, je veľmi dôležité napodobniť chýbajúcu hodnotu alebo odstrániť samotný údajový bod. Existujú rôzne možnosti, ako napodobniť chýbajúcu hodnotu, ako je priemerná, stredná, stredná hodnota na odhad chýbajúcej hodnoty. Napríklad tu používame vstavaný súbor údajov o dúhovke, v ktorom chceme zoskupiť rastliny typu dúhovky, sada údajov o dúhovke obsahuje 3 triedy pre každú inštanciu triedy 50. Obsahuje 5 funkcií ako Sepal. Dĺžka, samostatná šírka, okvetné lístok dĺžka, dĺžka okvetného lístka, šírka a druh.

R kód:

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” “Druh”

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. Zadajte, ktoré hierarchické klastrové algoritmy sa používajú

Rôzne typy hierarchických zoskupovacích algoritmov, ako sú aglomeračné hierarchické zoskupovanie a deliace sa hierarchické zoskupovanie, sú k dispozícii v R. Požadované funkcie sú -

  • Aglomeračné hierarchické klastrovanie (HC): funkcia hclust, ktorá je k dispozícii v štatistickom balíku a funkcia Agnes, ktorá je k dispozícii v klastrovom balíku) pre
  • Rozdeľujúce hierarchické klastrovanie: Diana funkcia, ktorá je k dispozícii v klastrovom balíku.

4. Výpočet hierarchického klastra

Na výpočet hierarchického zoskupovania sa musí vypočítať vzdialenosťová matica a dať dátový bod do správneho zoskupenia. Existuje niekoľko spôsobov, ako môžeme vypočítať vzdialenosť medzi klastrom, ako je uvedené nižšie:

Complete Linkage: Maximálna vzdialenosť vypočítaná medzi klastrami pred zlúčením.

Single Linkage: Minimálna vzdialenosť vypočítaná medzi klastrami pred zlúčením.

Priemerná väzba: Vypočíta priemernú vzdialenosť medzi klastrami pred zlúčením.

R kód:

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

Centroid Linkage: Vzdialenosť medzi dvoma ťažiskami zhlukov sa počíta pred zlúčením.

R kód:

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

Dendrogram sa používa na riadenie počtu získaných zhlukov. Vykonáva to isté ako v prípade k-znamená, že k vykonáva kontrolu počtu zhlukov. Aktuálna funkcia, ktorú môžeme použiť na vystrihnutie dendrogramu.

R kód:

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

Celý kód 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)

Graf vyššie uvedeného R kódu:

záver

Existujú hlavne dva typy algoritmov strojového učenia, ktoré sú pod dohľadom učené algoritmy, a nesledované učebné algoritmy. Klastrovacie algoritmy sú príkladom nepodrobených učebných algoritmov. Algoritmy zoskupovania zoskupujú skupinu podobných údajových bodov do zoskupení. V algoritme hierarchického klastrovania sa používajú hlavne dva prístupy, ako je uvedené nižšie, aglomeračné hierarchické klastrovanie a deliace sa hierarchické klastrovanie.

Odporúčané články

Toto je príručka k hierarchickému zoskupovaniu v R. Tu diskutujeme o tom, ako funguje zoskupovanie a ako sa implementuje hierarchické zoskupovanie do R podrobne. Viac informácií nájdete aj v ďalších súvisiacich článkoch.

  1. Clustering Algorithm
  2. Čo je klastrovanie v ťažbe údajov?
  3. Metódy zhlukovania
  4. Metódy strojového učenia
  5. Prehľad hierarchickej klastrovej analýzy
  6. Zoznam balíkov R