Реализация LSH для поиска кластеров

Привет, ребята. Я очень новичок в области обмена стеками, и сейчас я занимаюсь исследованием теории графов.

Набор вопросов, которые я собираюсь задать, очень вводный, так как я программист начального уровня (не знаком с хэшированием, сегментами, векторами и т. Д. По структуре данных).

Моя идея состоит в том, чтобы взять набор данных в форме (отметка времени t, узел i, узел j), который говорит, что между моментами i и j в момент времени t существует грань. Идея состоит в том, чтобы искать множество окрестностей каждого узла и хэшировать их. Если их "векторы" (я не понимаю, что это такое) хэшируют в одно и то же ведро - они являются кандидатами на формирование кластера.

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

Я не говорю, помогите мне с кодом. Но указатель (псевдокод) был бы очень полезен. Как сказать мне, чтобы инициализировать хэш-таблицу и т. Д.

1 ответ

Решение

Хеш-код - это целое число, которое вычисляется из свойств того, что вы хотите хэшировать. Это число затем используется в качестве индекса в массиве.

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

Специфичные для языка подробности о хеш-таблицах в Java или Python очень легко найти с помощью веб-поиска.

Другие вопросы по тегам