1
    X=[1 0 1 0 0 1 1 1;
       0 0 0 1 1 0 1 0;
       1 1 0 1 0 1 0 1;
       1 0 1 0 1 0 1 0;
       0 0 0 0 1 1 1 0;  
       1 1 1 0 0 0 1 1;
       1 0 1 0 1 1 1 0;
       0 1 0 1 1 0 1 1];

    [IDX,C] = kmeans(X,3, 'distance', 'hamming')

我想测试如何使用汉明距离对二进制数据进行聚类所以在上面的代码中,我随机分配了 X 一个二进制值矩阵。然而,问题是我的质心是十进制值。就像我在下面展示的那样。

C=
    1.0000    1.0000    1.0000         0         0    1.0000    1.0000    1.0000
         0    0.5000         0    1.0000    1.0000         0    1.0000    0.5000
    1.0000         0    0.5000         0    1.0000    1.0000    1.0000         0

为什么答案中有 0.5?我希望质心也是二进制的。由于二进制数据,是否可以绘制没有重叠的集群?

4

1 回答 1

1

是一个虚构的点(虚构的意思是它不一定是数据点之一),它是相应数据集群的几何中心。把它想象成它的“质心”。

质心经常落在集群中的点之间。因此,如果您的数据点是二进制的,则预计质心的坐标不会是整数。

如果您希望质心坐标也是二进制的,最简单的解决方案将涉及应用舍入函数,例如roundceilfloorfix

于 2013-03-09T21:33:48.333 回答