El modelo K-Nearest-Neighbor tiene dos inconvenientes principales. Si ninguno de ellos es un problema para usted, entonces definitivamente debería considerarlo como un clasificador simple y robusto.
El primer problema es el problema de rendimiento . Dado que es un modelo perezoso, debe cargar todos sus datos de entrenamiento y calcular distancias a todas las muestras de entrenamiento. Se puede hacer de una manera ingenua o utilizando estructuras de datos más elegantes, como los árboles KD. En cualquier caso, en un gran conjunto de entrenamiento, este es un gran inconveniente.
El segundo problema es la distancia métrica . El modelo simple de vainilla se usa con la distancia euclidiana, que es una métrica de distancia problemática en grandes dimensiones, así como con características ruidosas (ya que usa el mismo peso para todas las características) o características de diferentes tipos (categórica, numérica y binaria).
- ¿Cómo mantiene Google en secreto su algoritmo de sus empleados cuando son sus empleados quienes lo prueban?
- ¿Qué es un filtro de floración y para qué se utilizan?
- ¿Cuáles son los tiempos de ejecución para insertar un elemento en un LinkedList en la cabeza, el final y en algún lugar en el medio?
- ¿Qué algoritmo de clasificación se usa en C # collection.sort () y por qué?
- ¿La informática es solo sobre programación y algoritmos?
Diferentes variantes de k-NN se utilizan definitivamente en la práctica. Estos incluyen aprendizaje métrico a distancia con k-NN (por ejemplo, Análisis de componentes de vecindario – Análisis de componentes de vecindario – Wikipedia) y métodos para evaluar estadísticas locales.
Para resumir, si tiene un sistema que tiene que aprender un patrón sofisticado (es decir, no lineal) con un pequeño número de muestras (y generalmente dimensiones), los modelos K-NN suelen ser una de las mejores opciones disponibles.