| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- setwd("./data/africa/") # Nastavení pracovního adresáře
- library(cluster)
- #library("VIM")
- #library("factoextra")
- N <- input[[1]] # 'input' is a list of parametres, which comes from the NodeJS service
- input <- read.csv(file = 'ke+ug_normalized_input_clust.csv',header=TRUE,sep=",",dec=".") # Načtení CSV souboru
- #head(input) # Výpis prvních šesti řádek CSV souboru
- mydata <- input[, -1, drop=F] # Odstranění prvního sloupce
- #replace(mydata, is.na(mydata), 0) # Nahrazeni NA hodnot nulami
- rownames(mydata) <- input[, 1] # Jména řádků
- #head(mydata)
- mydata <- scale(mydata) # Standardizace (normalizace) dat
- #aggr(x = mydata) # Vykreslení prázných položek
- #countNA(mydata) # Kontrola počtu prázdných položek
- #res.dist <- get_dist(mydata, stand = TRUE, method = "euclidean") # Výpočet vzdáleností
- #fviz_dist(res.dist, gradient = list(low = "#EEEEEE", mid = "#999999", high = "#444444")) # Grafické vyjádření vzdálenostní matice
- #fviz_nbclust(mydata, kmeans, method = "silhouette")+labs(subtitle = "Silhouette method") # Optimální počet klastrů
- #fviz_nbclust(mydata, kmeans, method = "gap_stat") # Graf s ideálním počtem intervalů pro nehierarchickou metodu; s číslem se zatím nikde nepracuje
- # Nehierachické klastrování
- km50l <- kmeans(mydata, N, nstart = 50, algorithm=c("Lloyd")) # Nehierarchické klastrování k-means
- #fviz_cluster(km.res, data = mydata, # Vizualizace nehierarchických klastrů
- # ellipse.type = "convex",
- # palette = "jco",
- # ggtheme = theme_minimal())
- # Hierarchické klastrování
- d <- dist(mydata, method = "euclidean") # Distance matrix (matice vzdáleností)
- fit <- hclust(d, method="ward.D2") # Výpočet hirarchie
- #plot(fit) # Vizualizace hierarchie
- groups <- cutree(fit, k=N) # Rozdělení stromu do k klastrů
- haclustwd2 <- groups
- #rect.hclust(fit, k=9, border="red") # Dedrogram s hranicemi klastrů
- # Grafické vyjádření klastrů s barvami
- # fviz_dend(fit, k = 9, # Počet klastrů
- # cex = 1, # Velikost popisků
- # k_colors = c("#2E9FDF", "#00AFBB", "#E7B800", "#FC4E07", "#c17d11"), # Barvy klastrů
- # color_labels_by_k = TRUE, # Barevné popisky pro skupiny
- # rect = TRUE # Ohraničení skupin obdélníkem
- #)
- outdata <- data.frame(km50l$cluster, haclustwd2)
- write.csv(outdata,'out_file_africa.csv') # zápis do souboru
- # --------------------
|