|
@@ -2,17 +2,19 @@ setwd("./data/clustering/") # Nastavení pracovního adresáře (relativní k ro
|
|
|
|
|
|
|
|
library(cluster)
|
|
library(cluster)
|
|
|
|
|
|
|
|
|
|
+N <- input[[1]] # 'input' is a list of parametres, which comes from the NodeJS service
|
|
|
|
|
+
|
|
|
input <- read.csv(file = 'input_modified.csv') # Načtení CSV souboru
|
|
input <- read.csv(file = 'input_modified.csv') # Načtení CSV souboru
|
|
|
#head(input) # Výpis prvních šesti řádek 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
|
|
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
|
|
rownames(mydata) <- input[, 1] # První sloupec dat jako název řádek
|
|
|
mydata <- scale(mydata) # Standardizace dat
|
|
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"))
|
|
|
|
|
|
|
+km25 <- kmeans(mydata, N, nstart=25) # N cluster solution, nstart = počet náhodných počátečních přiřazení, optimální je hodnota 25-50
|
|
|
|
|
+km50hw <- kmeans(mydata, N, nstart=50) # N cluster solution, nstart = počet náhodných počátečních přiřazení, optimální je hodnota 25-50
|
|
|
|
|
+km50l <- kmeans(mydata, N, nstart=50, algorithm=c("Lloyd"))
|
|
|
|
|
+km50m <- kmeans(mydata, N, nstart=50, algorithm=c("MacQueen"))
|
|
|
|
|
+kme_eu <- pam(mydata, N, diss=FALSE, metric=c("euclidean"))
|
|
|
|
|
+kme_mn <- pam(mydata, N, diss=FALSE, metric=c("manhattan"))
|
|
|
|
|
|
|
|
d <- dist(mydata, method = "euclidean") # distance matrix
|
|
d <- dist(mydata, method = "euclidean") # distance matrix
|
|
|
dmin <- dist(mydata, method = "minkowski")
|
|
dmin <- dist(mydata, method = "minkowski")
|
|
@@ -34,22 +36,22 @@ fitcen <- hclust(d,method="centroid")
|
|
|
fitmed <- hclust(d,method="median")
|
|
fitmed <- hclust(d,method="median")
|
|
|
fitmcq <- hclust(d,method="mcquitty")
|
|
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)
|
|
|
|
|
|
|
+haclust <- cutree(fit, k=N) #default fit method=complete, so this is equal to haclustcom
|
|
|
|
|
+haclustmin <- cutree(fitmin, k=N)
|
|
|
|
|
+haclustbin <- cutree(fitbin, k=N)
|
|
|
|
|
+haclustmax <- cutree(fitmax, k=N)
|
|
|
|
|
+haclustcan <- cutree(fitcan, k=N)
|
|
|
|
|
+haclustman <- cutree(fitman, k=N)
|
|
|
|
|
|
|
|
-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)
|
|
|
|
|
|
|
+haclustwd2 <- cutree(fitwd2, k=N)
|
|
|
|
|
+haclustcom <- cutree(fitcom, k=N)
|
|
|
|
|
+haclustsin <- cutree(fitsin, k=N)
|
|
|
|
|
+haclustcen <- cutree(fitcen, k=N)
|
|
|
|
|
+haclustmed <- cutree(fitmed, k=N)
|
|
|
|
|
+haclustmcq <- cutree(fitmcq, k=N)
|
|
|
|
|
|
|
|
fit <- diana(d)
|
|
fit <- diana(d)
|
|
|
-hdclust <- cutree(fit, k=12)
|
|
|
|
|
|
|
+hdclust <- cutree(fit, k=N)
|
|
|
|
|
|
|
|
#aggregate(mydata,by=list(km25$cluster),FUN=mean) # get cluster means
|
|
#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
|
|
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
|