Расстояние Хэмминга против Левенштейна - PullRequest
41 голосов
/ 04 января 2011

Для задачи, над которой я работаю, для нахождения расстояний между двумя последовательностями, чтобы определить их сходство, порядок последовательности очень важен.Тем не менее, все мои последовательности имеют разную длину, поэтому я дополняю любые недостающие строки пустыми точками, чтобы обе последовательности имели одинаковую длину, чтобы удовлетворить требование расстояния Хэмминга.Есть ли какая-то серьезная проблема, связанная со мной, поскольку все, что меня волнует, это количество транспозиций (а не вставок или удалений, как делает Левенштейн)?

Я обнаружил, что расстояние Хэмминга намного, намного быстрее, чем Левенштейнв качестве метрики расстояния для последовательностей большей длины.Когда следует использовать расстояние Левенштейна (или производные расстояния Левенштейна) вместо гораздо более дешевого расстояния Хэмминга?Расстояние Хемминга можно рассматривать как верхнюю границу для возможных расстояний Левенштейна между двумя последовательностями, поэтому, если я сравниваю две последовательности по метрике подобия, смещенной по порядку, а не по абсолютному минимальному количеству ходов, чтобы соответствовать последовательностям, очевидногопричина для меня, чтобы выбрать Левенштейна вместо Хемминга в качестве метрики, есть?

Ответы [ 2 ]

37 голосов
/ 04 января 2011

Этот вопрос действительно зависит от типов последовательностей, которые вы подходите, и какой результат вы хотите.

Если проблема не в том, что «1234567890» и «0123456789» считаются совершенно разными, то расстояние Хэмминга в порядке.

0 голосов
/ 21 февраля 2019

В дополнение к правильному ответу Йохана, заполнение может быть проблематичным.

Например, когда вы сравниваете 123 с 123456, это отличается, если вы дополняете либо в конце строки, либо в начале строки. Сходство ___123 с 123456 равно 0, но сходство 123___ с 123456 равно 3.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...