2014-12-02 3 views
-4

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

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

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

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

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

ответ

0

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

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

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

+0

Ох..и думал, чтобы сгенерировать хеш-функцию формы h (x) = ax + bmodp. Где x - не что иное, как число строк, и оно будет переставлять порядок строки. Но можете ли вы быть немного более конкретным - например ... какие данные следует использовать, и так далее. –

+0

Если вы используете Java, вы должны изучить «HashMap». Если вы используете python, вы должны прочитать «словари». – Simon

Смежные вопросы