library(MASS) library(lattice) library(cluster) Sigma<- matrix(c(0.04,0,0,0.04),c(2,2)) x<- mvrnorm(15,c(1.5,2), Sigma) y<- mvrnorm(15,c(2,1.5), Sigma) z<- mvrnorm(15,c(1.5,1), Sigma) w<- mvrnorm(15,c(1.5,0), Sigma) x<- cbind(x,1) y<- cbind(y,2) z<- cbind(z,3) w<- cbind(w,4) data1 <- data.frame(rbind(x,y,z,w)) dataset<- cbind(data1$X1,data1$X2) distmatrix<- dist(dataset) mycol <- c("red", "black", "green", "blue") plot(dataset,col=mycol[data1$X3],main="Real clusters") hrs<-hclust(distmatrix,method="single") hrc<-hclust(distmatrix,method="complete") hra<-hclust(distmatrix,method="average") hrw<-hclust(distmatrix,method="ward") membs<- cutree(hrs,k=4) membc<- cutree(hrc,k=4) memba<- cutree(hra,k=4) membw<- cutree(hrw,k=4) c(sum(membs==1),sum(membs==2),sum(membs==3),sum(membs==4)) c(sum(membc==1),sum(membc==2),sum(membc==3),sum(membc==4)) c(sum(memba==1),sum(memba==2),sum(memba==3),sum(memba==4)) c(sum(membw==1),sum(membw==2),sum(membw==3),sum(membw==4)) hrs$order hrc$order hra$order hrw$order plot(hrs,hang=-1); plot(hra,hang=-1); plot(hrc,hang=-1); plot(hrw,hang=-1) dv<-diana(distmatrix) plot(dv) dv1 <- cutree(as.hclust(dv), k = 4) dv1 c(sum(dv1==1),sum(dv1==2),sum(dv1==3),sum(dv1==4)) (cl <- kmeans(dataset, 4, algorithm="MacQueen")) plot(dataset, col = mycol[cl$cluster], main="K-means") points(cl$centers, col = mycol, pch = 8) pamx<-pam(distmatrix,4) pamx plot(pamx) library("kohonen") data("wines") wines.sc <- scale(wines) set.seed(7) wine.som <- som(data = wines.sc,grid=somgrid(5,4,"hexagonal")) plot(wine.som, main= "Wine data") fuzzyc <- fanny(distmatrix,4) fuzzyc plot(fuzzyc) library(cluster) data(ruspini) plot(ruspini,main="Ruspini data") distmatrix <- dist(ruspini) mycol <- c("red", "black", "green", "blue") hca<-hclust(distmatrix,method="average") memba<- cutree(hca,k=4) c(sum(memba==1),sum(memba==2),sum(memba==3),sum(memba==4)) dataset<- cbind(ruspini$x,ruspini$y,memba) plot(dataset,col=mycol[memba],main="Hierarchical Clustering - Average Linkage") dv<-diana(distmatrix) dc <- cutree(as.hclust(dv), k = 4) dataset<- cbind(ruspini$x,ruspini$y,dc) plot(dataset,col=mycol[dc],main="DIANA clustering") cl <- kmeans(ruspini, 4, algorithm="MacQueen") plot(ruspini, col = mycol[cl$cluster], main="K-means") points(cl$centers, col = mycol, pch = 8) pamx<-pam(distmatrix,4) clusters<-pamx$clustering dataset<- cbind(ruspini$x,ruspini$y,clusters) plot(dataset,col=mycol[clusters],main="Partitioning Around Medoids") library("kohonen") ruspini.sc <- scale(ruspini) set.seed(7) ruspini.som <- som(data = ruspini.sc,grid=somgrid(2,2,"rectangular")) plot(ruspini.som, main= "Ruspini data") fuzzyc <- fanny(distmatrix,4) clusters<-fuzzyc$clustering dataset<- cbind(ruspini$x,ruspini$y,clusters) plot(dataset,col=mycol[clusters],main="Fuzzy Analysis Clustering")