Реализация LSH в Python 3 с евклидовым расстоянием и видением всех соседей в LSHForest

Я ищу эффективную реализацию LSH в Python 3, который использует евклидово расстояние.

Есть "в питоне" LSHForest реализация, но она использует косинусные расстояния.

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

Буду признателен за любое понимание. Большое спасибо.

1 ответ

Решение

Для рекомендаций по программному обеспечению, пожалуйста, спросите здесь: Рекомендации по программному обеспечению.


Чтобы узнать, как это работает, сначала прочитайте мой ответ, а затем предположите, что вы спрашиваете из пакета (я не использовал его) большой k (k должно быть числом соседей, которое возвращает программа), в пределах большого радиуса r, Это должно вернуть много соседей, установить k = N, где N это количество точек в вашем наборе данных, и вы получите все соседи.

Если вы хотите увидеть всех соседей в определенном сегменте, то вам нужно выяснить, сколько точек может содержать и задать сегмент. k на этот номер.