2012-02-21 38 views
1

Matlabでkmeansクラスタリングでハミング距離を使用したいが、私のデータがバイナリでなければならないというエラーが出る。k-meansクラスタリングにおけるハミング距離

とにかくこの周辺にはありますか?私が使用するデータ行列はバイナリ(値0,1,2,3を許さなければならない物理的な解釈があります)ではありませんが、ハミング距離を使うことが重要です。

答えて

1

MATLAB documentationによると、kmeansのハミング距離測定は、バイナリデータでのみ使用できます。これは、異なるビットの割合の尺度であるためです。

関数を使用する前に、データをバイナリ表現にマップすることができます。また、非バイナリ入力に適しているので、可能であれば都市ブロック距離を代替として使用することもできます。

+0

ありがとう、私はmatlabでde2biを使用してバイナリ表現に距離行列をマップしました。これにより私はkmeansでハミング距離を使用することができますが、距離行列はサイズが異なり、結果的にクラスタリングの要素が増えます。私は元の行列の私の解釈には適していません、タクシーの距離を使用することはできません... –

+0

私は何を意味しました:私は元のデータ行列をバイナリ形式にマップ... –

1

クラスタへのデータは論理型でなければなりません。あなたが)、バイナリにUINT8型のデータを変換する関数にuint8tobitを(確認したい場合は

x = logical(y); 

:あなたは、単一のコマンドであなたの0/1ダブル、シングル、uintXデータを変換することができます。 de2bi()とbi2de()の機能をご覧ください。

関連する問題