selected_data.r 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. setwd("./data/clustering/") # Nastavení pracovního adresáře (relativní k rootu)
  2. library(cluster)
  3. input <- read.csv(file = 'input_modified.csv',header=TRUE,sep=",") # Načtení CSV souboru
  4. #head(input) # Výpis prvních šesti řádek CSV souboru
  5. mydata <- input[, -1] # Úprava dat, která funguje, ale nevím proč... (ale jen pro data s více než jedním číselným sloupcem)
  6. rownames(mydata) <- input[, 1]
  7. mydata <- scale(mydata) # Standardizace dat
  8. km25 <- kmeans(mydata, 12, nstart=25) # 12 cluster solution, nstart = počet náhodných počátečních přiřazení, optimální je hodnota 25-50
  9. km50hw <- kmeans(mydata, 12, nstart=50) # 12 cluster solution, nstart = počet náhodných počátečních přiřazení, optimální je hodnota 25-50
  10. km50l <- kmeans(mydata, 12, nstart=50, algorithm=c("Lloyd"))
  11. km50m <- kmeans(mydata, 12, nstart=50, algorithm=c("MacQueen"))
  12. kme_eu <- pam(mydata,12,diss=FALSE,metric=c("euclidean"))
  13. kme_mn <- pam(mydata,12,diss=FALSE,metric=c("manhattan"))
  14. d <- dist(mydata, method = "euclidean") # distance matrix
  15. dmin <- dist(mydata, method = "minkowski")
  16. dbin <- dist(mydata, method = "binary")
  17. dmax <- dist(mydata, method = "maximum")
  18. dcan <- dist(mydata, method = "canberra")
  19. dman <- dist(mydata, method = "manhattan")
  20. fit <- hclust(d)
  21. fitmin <- hclust(dmin)
  22. fitbin <- hclust(dbin)
  23. fitmax <- hclust(dmax)
  24. fitcan <- hclust(dcan)
  25. fitman <- hclust(dman)
  26. fitwd2 <- hclust(d,method="ward.D2")
  27. fitcom <- hclust(d,method="complete")
  28. fitsin <- hclust(d,method="single")
  29. fitcen <- hclust(d,method="centroid")
  30. fitmed <- hclust(d,method="median")
  31. fitmcq <- hclust(d,method="mcquitty")
  32. haclust <- cutree(fit, k=12)
  33. haclustmin <- cutree(fitmin, k=12)
  34. haclustbin <- cutree(fitbin, k=12)
  35. haclustmax <- cutree(fitmax, k=12)
  36. haclustcan <- cutree(fitcan, k=12)
  37. haclustman <- cutree(fitman, k=12)
  38. haclustwd2 <- cutree(fitwd2, k=12)
  39. haclustcom <- cutree(fitcom, k=12)
  40. haclustsin <- cutree(fitsin, k=12)
  41. haclustcen <- cutree(fitcen, k=12)
  42. haclustmed <- cutree(fitmed, k=12)
  43. haclustmcq <- cutree(fitmcq, k=12)
  44. fit <- diana(d)
  45. hdclust <- cutree(fit, k=12)
  46. #aggregate(mydata,by=list(km25$cluster),FUN=mean) # get cluster means
  47. outdata <- data.frame(km25$cluster, km50hw$cluster, km50l$cluster, km50m$cluster,kme_eu$cluster,kme_mn$cluster, haclust, haclustmin, haclustbin, haclustman, haclustmax, haclustcan, haclustwd2, haclustcom, haclustsin, haclustcen, haclustmed, haclustmcq, hdclust) # append cluster assignment
  48. #library(useful)
  49. #plot(fit, data=mydata) # vykreslení grafu
  50. write.csv(outdata,'out_file.csv') # zápis do souboru