¿Cómo podría encontrar la métrica correcta que se utilizará para los vecinos más cercanos u otros algoritmos basados ​​en similitudes?

No hay una respuesta teóricamente motivada a su pregunta. Tienes que hacer esto por prueba y error. Sin embargo, puede utilizar algunos conocimientos sobre su problema para reducir el espacio de búsqueda. Por ejemplo, si compara entidades del mismo tipo, por ejemplo, un documento frente a un documento, entonces una función simétrica como la similitud del coseno probablemente funcionará bien (el BM25 simétrico parece funcionar mejor sin embargo: medidas efectivas para la similitud entre documentos) . Cuando compara diferentes entidades, por ejemplo, consultas con documentos, una función de similitud no simétrica como BM25 generalmente funcionará mejor que funciones simétricas como la similitud de coseno.

Tenga en cuenta, sin embargo, que la similitud del coseno no es una métrica . De hecho, cuando busca una buena función de similitud, una distancia no métrica puede ser una mejor opción. Si tiene muchos puntos y la comparación exhaustiva no es una opción, una función no métrica puede ser más difícil de usar (porque la indexación no métrica es más complicada que la indexación en L2). Sin embargo, esto no es imposible y la indexación no métrica puede ser eficiente en muchos casos, ver, por ejemplo, NMSLIB: searchivarius / nmslib

Además de probar las funciones existentes, es posible que necesite obtener su función de similitud utilizando métodos de aprendizaje automático. Existe una gran cantidad de literatura sobre educación a distancia, consulte, por ejemplo, este documento: http: //machinelearning.wustl.edu…

Por último, pero no menos importante, debe estudiar la literatura y verificar qué usaban las personas para problemas similares. Por ejemplo, las incrustaciones de palabras se pueden comparar usando la distancia del coseno o la distancia euclidiana (no hay (casi) ninguna diferencia entre la similitud del coseno y la distancia euclidiana cuando se trata de incrustaciones de palabras normalizadas (u otros vectores) | searchivarius.org). Las probabilidades se pueden comparar utilizando la divergencia KL o su versión simétrica la divergencia JS. Las características de imagen como SIFT, GIST o incrustaciones (calculadas por redes neuronales) a menudo se comparan usando L2.

El enfoque básico es prueba y error. KNN es muy sensible a las características, por lo que probablemente sea una buena idea combinar esto con un algoritmo de selección de características como la selección hacia adelante o hacia atrás.

Cuando use una métrica en la forma ([matemática] \ sum | x_i-y_i | ^ p) ^ {1 / p} [/ matemática] siempre considere los exponentes fraccionarios no solo 1 o 2.

En algunos casos, puede “aprender” la métrica en función de sus propios datos, un caso es la distancia del bosque aleatorio donde aplica el bosque aleatorio a su conjunto de datos y luego la distancia entre dos puntos es el número de árboles en los que la RF clasifica puntos en diferentes clases.

Luis