library(MASS) library(ElemStatLearn) data(nci) dim(nci) head(nci) X <- t(nci) D <- dist(X, method = "euclidean") n <- dim(X)[1] full <- matrix(0, n, n) full[lower.tri(full)] <- D D <- full + t(full) names <- colnames(nci) mds.obj <- cmdscale(D,k=2) eqscplot(mds.obj,type="n") text(mds.obj,labels=names,col=1,cex=0.8) library(lattice) xyplot(mds.obj[,2]~mds.obj[,1],groups=names,pch=1:16) u <- unique(names) legend("topright",legend=u,col=1:16,pch=1:16) ClusterMembership <- names WithinSumsofSquares <- rep(0,20) for (i in 1:20){ WithinSumsofSquares[i] <- sum(kmeans(X, centers=i+1,iter=20)$withinss)/64 } plot(2:21,WithinSumsofSquares) km.obj <- kmeans(X,centers=3,iter=20) ClusterMembership <- km.obj$cluster xyplot(mds.obj[,2]~mds.obj[,1],groups=ClusterMembership,pch=1:16) u <- unique(ClusterMembership) legend("topright",legend=u,col=1:length(u),pch=1:16) table(names,ClusterMembership) km.obj <- kmeans(X,centers=10,iter=20) ClusterMembership <- km.obj$cluster xyplot(mds.obj[,2]~mds.obj[,1],groups=ClusterMembership,pch=1:16) u <- unique(ClusterMembership) legend("topright",legend=u,col=1:length(u),pch=16) table(names,ClusterMembership)