对样本为高维数据的点,且均为数值,则可以通过mds方法对样本降维到2,然后绘制在图上,并且将不同的聚类用颜色区分开。如此,可以获得比较直观的,聚类结果。
上图通过R绘制而成,关键代码如下:
原始样本点存放进 dt文件,是n行*m列,其中n是样本数,m是用于刻画样本的维度个数。
使用mds方法,需要首先计算出样本22之间的距离。或者,正因为如此,无法对全量的数据,进行绘制,这一步的耗时特别长。因此,测试的时候选了2000条。
for(i in 1 : 2000){
for(j in 1 : 2000){
dtmatrix[i,j]<-(sum((dt[i,]-dt[j,])^2))^0.5
}
}
mdsdt<-cmdscale(dtmatrix)
x<-mdsdt[,1]
y<-mdsdt[,2]
library(ggplot2)
下面一步是,把降维后的二维坐标画在图上,且用不同的颜色以视区分。
ggplot(data.frame(x,y,kmdt$cluster),aes(x=x,y=y,col=cluster))+geom_point(shape=16,size=3)
。
至此,又生出了新的问题