java locality-sensitive-hash

Bibliotecas LSH en Java



locality-sensitive-hash (4)

Aquí otro: https://github.com/allenlsy/knn

Utiliza LSH para KNN. Actualmente estoy investigando su usabilidad =)

Estoy buscando una biblioteca liviana de Java que admita búsquedas de vecinos más cercanos por hashing sensible a la ubicación para obtener datos distribuidos casi por igual en un conjunto de datos de alta dimensión (en mi caso 32) con algunos cientos de miles de puntos de datos.

Es lo suficientemente bueno para obtener todas las entradas en un cubo para una consulta. Los que realmente necesito podrían procesarse de una manera diferente teniendo en cuenta algunos parámetros de filtro que mi problema incluye.

Ya encontré algo likelike pero espero que haya algo un poco más pequeño y sin necesidad de otras herramientas (como Apache Hadoop en el caso de que sea probable).


El marco de minería de datos ELKI viene con un índice LSH. Se puede usar con la mayoría de los algoritmos incluidos (cualquier cosa que utilice búsquedas de rango o nn) y algunas veces funciona muy bien.

En otros casos, la LSH no parece ser un buen enfoque. Puede ser bastante difícil obtener los parámetros LSH correctos: si elige algunos parámetros demasiado altos, el tiempo de ejecución crece mucho (hasta un escaneo lineal). Si los elige demasiado bajos, el índice se vuelve demasiado aproximado y pierde a muchos vecinos.

Probablemente sea el mayor desafío con LSH: encontrar buenos parámetros, que produzcan la aceleración deseada y obtener una precisión suficiente del índice ...


Tal vez este:

"TarsosLSH es una biblioteca de Java que implementa Hashing sensible a la localidad (LSH), un algoritmo práctico de búsqueda de vecinos para vectores multidimensionales que opera en tiempo sublineal. Admite varias familias de Hashing sensible a la localidad (LSH): la familia hash euclidiana (L2), ciudad block hash family (L1) y cosine hash family. La biblioteca intenta encontrar el punto óptimo entre ser lo suficientemente capaz para realizar tareas reales y lo suficientemente compacta como una demostración de cómo funciona la LSH ".

El código se puede encontrar here