CZ_clusters.r 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. setwd("./data/cz/") # Nastavení pracovního adresáře
  2. library(cluster)
  3. #library("VIM")
  4. #library("factoextra")
  5. N <- input[[1]] # 'input' is a list of parametres, which comes from the NodeJS service
  6. input <- read.csv(file = 'clusters-input-CZ_LAU2_37_cols.csv',header=TRUE,sep=",",dec=".") # Načtení CSV souboru
  7. #head(input) # Výpis prvních šesti řádek CSV souboru
  8. mydata <- input[, -1, drop=F] # Odstranění prvního sloupce
  9. #replace(mydata, is.na(mydata), 0) # Nahrazeni NA hodnot nulami
  10. rownames(mydata) <- input[, 1] # Jména řádků
  11. #head(mydata)
  12. mydata <- scale(mydata) # Standardizace (normalizace) dat
  13. #aggr(x = mydata) # Vykreslení prázných položek
  14. #countNA(mydata) # Kontrola počtu prázdných položek
  15. #res.dist <- get_dist(mydata, stand = TRUE, method = "euclidean") # Výpočet vzdáleností
  16. #fviz_dist(res.dist, gradient = list(low = "#EEEEEE", mid = "#999999", high = "#444444")) # Grafické vyjádření vzdálenostní matice
  17. #fviz_nbclust(mydata, kmeans, method = "silhouette")+labs(subtitle = "Silhouette method") # Optimální počet klastrů
  18. #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
  19. # Nehierachické klastrování
  20. km50l <- kmeans(mydata, N, nstart = 50, algorithm=c("Lloyd")) # Nehierarchické klastrování k-means
  21. #fviz_cluster(km.res, data = mydata, # Vizualizace nehierarchických klastrů
  22. # ellipse.type = "convex",
  23. # palette = "jco",
  24. # ggtheme = theme_minimal())
  25. # Hierarchické klastrování
  26. d <- dist(mydata, method = "euclidean") # Distance matrix (matice vzdáleností)
  27. fit <- hclust(d, method="ward.D2") # Výpočet hirarchie
  28. #plot(fit) # Vizualizace hierarchie
  29. groups <- cutree(fit, k=N) # Rozdělení stromu do k klastrů
  30. haclustwd2 <- groups
  31. #rect.hclust(fit, k=9, border="red") # Dedrogram s hranicemi klastrů
  32. # Grafické vyjádření klastrů s barvami
  33. # fviz_dend(fit, k = 9, # Počet klastrů
  34. # cex = 1, # Velikost popisků
  35. # k_colors = c("#2E9FDF", "#00AFBB", "#E7B800", "#FC4E07", "#c17d11"), # Barvy klastrů
  36. # color_labels_by_k = TRUE, # Barevné popisky pro skupiny
  37. # rect = TRUE # Ohraničení skupin obdélníkem
  38. #)
  39. outdata <- data.frame(km50l$cluster, haclustwd2)
  40. write.csv(outdata,'out_file_cz.csv') # zápis do souboru
  41. # --------------------