Расстояние Хэмминга в кластеризации k-средних - PullRequest
1 голос
/ 21 февраля 2012

Я хочу использовать расстояние Хемминга в кластеризации kmeans в Matlab, но я получаю сообщение об ошибке, говорящее, что мои данные должны быть двоичными.

Есть ли что-нибудь вокруг этого?Используемая мной матрица данных не может быть двоичной (она имеет физическую интерпретацию, которая должна учитывать значения 0,1,2,3), но важно, чтобы я использовал расстояние Хемминга.

Ответы [ 2 ]

1 голос
/ 20 июля 2012

Данные для кластера должны быть логического типа. Вы можете преобразовать ваши двойные, одинарные данные uintX в 0/1 с помощью одной команды:

x = logical( y );

Если вы хотите преобразовать данные типа uint8 в двоичные файлы, проверьте функцию uint8tobit (). Посмотрите на функции de2bi () и bi2de ().

1 голос
/ 21 февраля 2012

Согласно документации MATLAB , мера расстояния Хэмминга для kmeans может использоваться только с двоичными данными, так как это мера процентного значения битов, которые отличаются.

Вы можете попробовать отобразить ваши данные в двоичном представлении перед использованием функции. Можно также рассмотреть возможность использования расстояния городского квартала в качестве альтернативы, если это возможно, поскольку оно подходит для недвоичного ввода.

...