Interesante pregunta.
Si convierte la función para valores numéricos a 1 o 0 según un umbral, entonces tiene una distancia de Hamming entre los puntos y es muy fácil construir familias LSH para eso.
Si convierte cada variable categórica en una variable binaria a través de una codificación única o similar, puede usar la distancia euclidiana entre vectores y nuevamente hay familias LSH para la distancia euclidiana.
- ¿Qué es lo mejor que puedes hacer si te quedas atrapado en un problema en SPOJ?
- ¿Qué algoritmo se puede usar para pasar de datos de frecuencia a una nota musical?
- ¿Qué bibliotecas o marcos de Python, C son buenos para las pruebas de diagnóstico en estadísticas?
- ¿Cuál es el mejor algoritmo de clasificación manual? Por ejemplo, si tuviera una pila de papeles que quisiera ordenar alfabéticamente, ¿cuál sería la forma más eficiente de hacerlo? ¿Qué pasaría si estuvieras de acuerdo con que uno o dos se alejen de su posición ordenada?
- Tenemos una serie de N palabras, ¿cómo podríamos clasificarlas con O (N) complejidad de tiempo?
Otra opción es tener dos implementaciones LSH diferentes, una para los atributos categóricos basados en Hamming y otra para los atributos numéricos basados en la distancia euclidiana (o angular) y luego combinar los resultados de ambas familias LSH usando construcciones AND u OR.
El método que funcionará mejor depende en gran medida de los datos reales y del uso que tenga en mente para LSH, por lo que deberá realizar algunos experimentos.