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にバイナリ値の行列をランダムに割り当てました。ただし、問題は、重心が10進値であるということです。以下に示すように。

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

重心は、対応するデータクラスターの幾何学的中心である架空の点(必ずしもデータポイントの1つである必要はないという意味で架空の点)です。それを「重心」と考えてください。

重心は、クラスター内のポイントの間にあることがよくあります。したがって、データポイントがバイナリの場合、図心の座標は整数ではないと予想されます。

図心座標もバイナリにしたい場合、最も簡単な解決策は、roundceilfloorfixなどの丸め関数を適用することです。

于 2013-03-09T21:33:48.333 に答える