1

我有混合数据类型,其中包含我计划应用集群算法的数字和分类属性。

作为第一步,我使用 daisy() 函数和 Gower 距离度量生成了一个距离矩阵。我在 R 中使用热图和 levelplot 函数显示了距离矩阵。

似乎我的数据中的某些对象之间存在很强的相似性,我想检查一些相似/不同的对象,以使自己确信该度量在我的数据上运行良好。

如何从热图中选择相似/不同的对象并将它们链接到原始数据集以便能够评估它们?

这就是我使用 R 绘制热图的方式。IDX 是我的距离矩阵。

new.palette=colorRampPalette(c("black","yellow","#007FFF","white"),space="rgb") 
    levelplot(IDX_as[1:ncol(IDX_as),ncol(IDX_as):1],col.regions=new.palette(20))

    quartz(width=7,height=6) #make a new quartz window of a given size 
    par(mar=c(2,3,2,1)) #set the margins of the figures to be smaller than default 
    layout(matrix(c(1,2),1,2,byrow=TRUE),widths=c(7,1)) #set the layout of the quartz window. This will create two plotting regions, with width ratio of 7 to 1 
    image(IDX_as[1:ncol(IDX_as),ncol(IDX_as):1],col=new.palette(20),xaxt="n",yaxt="n") #plot a heat map matrix with no tick marks or axis labels 
    axis(1,at=seq(0,1,length=20),labels=rep("",20)) #draw in tick marks 
    axis(2,at=seq(0,1,length=20),labels=rep("",20)) 

    #adding a color legend 
    s=seq(min(IDX_as),max(IDX_as),length=20) #20 values between minimum and maximum values of m 
    l=matrix(s,ncol=length(s),byrow=TRUE) #coerce it into a horizontal matrix 
    image(y=s,z=l,col=new.palette(20),ylim=c(min(IDX),max(IDX)),xaxt="n",las=1) #plot a one-column heat map

    heatmap(IDX_as,symm=TRUE,col=new.palette(20))
4

0 回答 0