| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- setwd("./data/clustering/") # Nastavení pracovního adresáře (relativní k rootu)
- library(cluster)
- input <- read.csv(file = 'input_modified.csv') # Načtení CSV souboru
- #head(input) # Výpis prvních šesti řádek CSV souboru
- mydata <- input[, -1, drop=F] # Zahození prvního sloupce dat (NUTS_ID). Při 2-sloupcové tabulce nesmí redukovat dimenzi na vektor, proto drop=F
- rownames(mydata) <- input[, 1] # První sloupec dat jako název řádek
- mydata <- scale(mydata) # Standardizace dat
- 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
- 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
- km50l <- kmeans(mydata, 12, nstart=50, algorithm=c("Lloyd"))
- km50m <- kmeans(mydata, 12, nstart=50, algorithm=c("MacQueen"))
- kme_eu <- pam(mydata,12,diss=FALSE,metric=c("euclidean"))
- kme_mn <- pam(mydata,12,diss=FALSE,metric=c("manhattan"))
- d <- dist(mydata, method = "euclidean") # distance matrix
- dmin <- dist(mydata, method = "minkowski")
- dbin <- dist(mydata, method = "binary")
- dmax <- dist(mydata, method = "maximum")
- dcan <- dist(mydata, method = "canberra")
- dman <- dist(mydata, method = "manhattan")
- fit <- hclust(d)
- fitmin <- hclust(dmin)
- fitbin <- hclust(dbin)
- fitmax <- hclust(dmax)
- fitcan <- hclust(dcan)
- fitman <- hclust(dman)
- fitwd2 <- hclust(d,method="ward.D2")
- fitcom <- hclust(d,method="complete")
- fitsin <- hclust(d,method="single")
- fitcen <- hclust(d,method="centroid")
- fitmed <- hclust(d,method="median")
- fitmcq <- hclust(d,method="mcquitty")
- haclust <- cutree(fit, k=12)
- haclustmin <- cutree(fitmin, k=12)
- haclustbin <- cutree(fitbin, k=12)
- haclustmax <- cutree(fitmax, k=12)
- haclustcan <- cutree(fitcan, k=12)
- haclustman <- cutree(fitman, k=12)
- haclustwd2 <- cutree(fitwd2, k=12)
- haclustcom <- cutree(fitcom, k=12)
- haclustsin <- cutree(fitsin, k=12)
- haclustcen <- cutree(fitcen, k=12)
- haclustmed <- cutree(fitmed, k=12)
- haclustmcq <- cutree(fitmcq, k=12)
- fit <- diana(d)
- hdclust <- cutree(fit, k=12)
- #aggregate(mydata,by=list(km25$cluster),FUN=mean) # get cluster means
- 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
- #library(useful)
- #plot(fit, data=mydata) # vykreslení grafu
- write.csv(outdata,'out_file.csv') # zápis do souboru
|