Реализация LSH в Python 3 с евклидовым расстоянием и видением всех соседей в LSHForest
Я ищу эффективную реализацию LSH в Python 3, который использует евклидово расстояние.
Есть "в питоне" LSHForest
реализация, но она использует косинусные расстояния.
Кроме того, даже используя эту реализацию, я не нашел способа увидеть содержимое каждой корзины, например, если использовать LSH для кластеризации - он возвращает только определенное количество приблизительных соседей в пределах определенного радиуса. Но если я хочу видеть всех соседей, я не вижу, как это можно сделать (я не хочу использовать произвольный радиус поиска, и я действительно не уверен, каково значение очень большого или бесконечного радиуса, используя это реализация).
Буду признателен за любое понимание. Большое спасибо.
1 ответ
Для рекомендаций по программному обеспечению, пожалуйста, спросите здесь: Рекомендации по программному обеспечению.
Чтобы узнать, как это работает, сначала прочитайте мой ответ, а затем предположите, что вы спрашиваете из пакета (я не использовал его) большой k (k
должно быть числом соседей, которое возвращает программа), в пределах большого радиуса r
, Это должно вернуть много соседей, установить k = N
, где N
это количество точек в вашем наборе данных, и вы получите все соседи.
Если вы хотите увидеть всех соседей в определенном сегменте, то вам нужно выяснить, сколько точек может содержать и задать сегмент. k
на этот номер.