繁体   English   中英

R kmeans数据点

[英]R kmeans data points

我正在使用以下内容执行kmeans分析:

km = kmeans(mat2, centers = 4)

我还绘制了使用library(fpc)进行kmeans分析的图表,如下所示:

plotcluster(mat2, km$cluster)

结果如下: 在此处输入图片说明

mat2每一行对应于图中的一个点。 我为矩阵中的每一行命名,并带有以下内容:

rownames(mat2) = names      #names is a vector corresponding to the rows of mat2

我可以通过以下属性找到矩阵中每一行的成员资格:

km$cluster

这给出了矩阵中每一行的名称,然后是图中的相应整数。 但是,我想访问更多数据。

如何从这些群集点访问更多数据? 例如,我想找到绘图中的整数与矩阵中的行之间的对应关系。 为了澄清,回答这个问题将使我知道矩阵中哪一行对应于图中的最高2位? 一旦知道了哪些整数对应于矩阵中的哪些行,便有了矩阵中每一行的名称,并可以给出有意义的解释。

我还想找到绘图中的一个点与其所属的群集中心之间的距离度量。 我可以得到图中的(x,y)坐标与矩阵中的行之间的对应关系吗? 我可以获取交互式GUI,以便在单击图中的聚类点时可以看到更多上述数据吗? 我愿意使用其他库进行绘图。 归纳为两个问题:

  1. 如何获得图中的整数与矩阵中的行之间的对应关系?
  2. 是否有现有的软件包或工具会让我更轻松?

非常感谢所有帮助!

这回答了您的一些问题,但是其中有很多。 如果要与绘图交互以识别点,可以查看?identify 这是处理您要处理的特定行的答案。 如果您想问有关交互式GUI的问题,请发布有关此问题的特定问题。

mat <- matrix(rnorm(160), ncol=2)
km <- kmeans(mat, centers=4)
df <- as.data.frame(cbind(mat, km$cluster))
names(df) <- c("Var1", "Var2", "cluster")

#Get the row of df with highest Var1 and cluster == 2
which(df$Var1 == max(df$Var1[df$cluster==2]))
# 76

#Use this to extract the row
df[which(df$Var1 == max(df$Var1[df$cluster==2])),]

#You can subset you data based on one of the variables
#Get the rows with cluster == 2
df.2 <- df[df$cluster == 2,]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM