Подтвердить что ты не робот

Библиотеки LSH в Java

Я ищу легкую библиотеку Java, которая поддерживает Nearest Neighbor Searches по локализации Чувствительная хеширование для почти одинаково распределенных данных в массиве с высоким размером (в моем случае 32) с несколькими сотнями тысяч точек данных.

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

Я уже нашел likelike, но надеюсь, что что-то немного меньше и без каких-либо других инструментов (например, Apache Hadoop в случай сходства).

4b9b3361

Ответ 1

Возможно, этот:

"TarsosLSH представляет собой библиотеку Java, реализующую локализованную хэш-запись (LSH), практический алгоритм поиска ближайших соседей для многомерных векторов, который работает в сублинейном времени. Он поддерживает несколько семейств чувствительности к локализации (LSH): семейство евклидовых хешей (L2), семейство хеш-блоков города (L1) и семейство косинусных хешей. Библиотека пытается попасть в сладкое место между достаточной способностью выполнять реальные задачи и быть достаточно компактной, чтобы служить демонстрацией того, как работает LSH".

Код можно найти здесь

Ответ 2

Есть один: http://code.google.com/p/lsh-clustering/

У меня не было времени проверить его, но, по крайней мере, он компилируется.

Ответ 3

Вот еще один: https://github.com/allenlsy/knn

Он использует LSH для KNN. Я сейчас изучаю его юзабилити =)

Ответ 4

Структура ELKI содержит индекс LSH. Он может использоваться с большинством используемых алгоритмов (все, что использует диапазон или nn-запросы), и иногда работает очень хорошо.

В других случаях LSH, похоже, не является хорошим подходом. Может быть довольно сложно получить параметры LSH правильно: если вы выберете некоторые параметры слишком высоко, время выполнения значительно увеличится (вплоть до линейного сканирования). Если вы выберете их слишком низко, индекс станет слишком аппроксимирующим и теряет многих соседей.

Это, наверное, самая большая проблема с LSH: найти хорошие параметры, которые дают желаемое ускорение и получают достаточно хорошую точность из индекса...