¿Cuáles son los últimos algoritmos de aprendizaje de los vecinos más cercanos? Me refiero a todo lo que se basa en datos, como métodos basados ​​en instancias, kNN, algoritmos de aprendizaje vecinos y métricos, todo en un solo lugar.

“estado del arte” es un término amplio. Cuanto más avanzado es algo, más específico es y no es general en la forma descrita en los detalles de la pregunta: “todo lo que esté basado en datos”.

Para obtener acceso a un primer corte en el estado del arte, comience con una biblioteca de aprendizaje automático de uso general en su lenguaje de programación favorito, por ejemplo:

  • MatLab: Aprendizaje automático con MATLAB
  • Python: Python científico / scipy (SciPy.org – SciPy.org)
  • Java: biblioteca de aprendizaje automático Weka (minería de datos con software de código abierto de aprendizaje automático en Java)
  • C ++: El kit de herramientas OpenCV (visión por computadora abierta) tiene excelentes algoritmos (ml. Machine Learning)

Estos kits de herramientas le permitirán experimentar ampliamente con técnicas de mezcla y combinación para adaptarse a un problema. Se ocupan de la mecánica compleja, por lo que solo necesita configurar el problema y el conjunto de datos, y configurar los parámetros del algoritmo.

Si encuentra una técnica que funciona, pero tiene problemas (demasiado lenta para calcular, no maneja ciertos casos), entonces desea buscar el estado del arte para esa técnica en particular.

Todas las técnicas que han demostrado su eficacia en general están disponibles en una biblioteca en algún lugar.

Si un algoritmo es tan avanzado que generalmente no está disponible en las bibliotecas, entonces está hablando de algoritmos de investigación que deben adaptarse de un artículo de revista y código de demostración. En este punto, básicamente estás solo, porque ahora eres el más avanzado.

Recomendaría k-means sobre KNN. Es más eficiente, se generaliza mejor y se puede usar como características para otros algos.

Mi biblioteca favorita para eso es SofiaKMeans – sofia-ml – Documentación para sofia-kmeans: agrupación rápida de k-significa. – Conjunto de algoritmos incrementales rápidos para el aprendizaje automático. Incluye métodos para aprender modelos de clasificación y clasificación, utilizando Pegasos SVM, SGD-SVM, ROMMA, Perceptrón pasivo-agresivo, Perceptrón con márgenes y Regresión logística. – Alojamiento de proyectos de Google

Actualice para responder el comentario de Alexey: k-means se puede usar para el aprendizaje supervisado de esta manera: primero entrena K grupos usando k-means y luego calculará las características K para cada entidad, cada una es máxima (0, AverageDistance-DistanceToCentroid [yo]). Estas características suelen ser realmente buenas. Luego entrena cosas habituales (redes neuronales, SVM lineal, bosques) sobre estas características.
De alguna manera es similar a los núcleos RBF en SVM pero más eficiente (características K en lugar de características N).

El LSH dependiente de datos y dependiente de consultas es probablemente un gran comienzo para su investigación. KNN no es un problema muy difícil, es su eficiencia lo que es difícil.