在矩阵中查找聚类索引的质心

时间:2014-10-14 22:31:59

标签: r matrix cluster-analysis

我有一个二进制值的MxN矩阵,对应于图像中的像素。 E.g:

> mat<- matrix(c(0,0,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0), nrow = 5, byrow = T)
> mat
     [,1] [,2] [,3] [,4] [,5]
[1,]    0    0    1    1    0
[2,]    0    0    1    1    0
[3,]    0    0    0    0    0
[4,]    1    1    0    0    0
[5,]    1    1    0    0    0

矩阵由java脚本填充,该脚本确定像素是否落在给定标准内(例如,如果像素是“绿色空间”)。值1为真,0为假。

我将矩阵中的值1转换为相应的行索引:

mat2[mat == 1]<- row(mat)[mat == 1]
mat2
     [,1] [,2] [,3] [,4] [,5]
[1,]    0    0    1    1    0
[2,]    0    0    2    2    0
[3,]    0    0    0    0    0
[4,]    4    4    0    0    0
[5,]    5    5    0    0    0

我想要实现的是在每个非零值集群中找到行索引的质心。即那里有两组非零值,质心分别为1.5和2.5(分别为1,1,2,2和4,4,5,5)。

我对如何执行此操作感到茫然。我尝试过k-means聚类,但这对于这个操作似乎不正确(请注意,这根本不是我的专业知识,因此我错误地做错的概率很高)。 R以这种方式计算质心的最佳方法是什么?

为我的天真道歉 - 这不是我的领域,我的工作真的从我得到这个分析的结果开始。

0 个答案:

没有答案