vecinos vecino regresion neighbor nearest metodo mas example ejemplos cercanos cercano algoritmo algorithm classification knn

algorithm - regresion - metodo del vecino mas cercano ejemplos



Algoritmo de vecino más cercano (5)

Tal vez sea bastante estúpido pero no puedo encontrar una respuesta satisfactoria: utilizando el algoritmo KNN, digamos k = 5. Ahora trato de clasificar un objeto desconocido obteniendo sus 5 vecinos más cercanos. ¿Qué hacer si después de determinar los 4 vecinos más cercanos, los 2 objetos más próximos (o más) tienen la misma distancia? ¿Qué objeto de estos 2 o más debería elegirse como el quinto vecino más cercano?

Gracias por adelantado :)


¿Qué objeto de estos 2 o más debería elegirse como el quinto vecino más cercano?

Realmente depende de cómo quieras implementarlo.

La mayoría de los algoritmos harán una de tres cosas:

  1. Incluya todos los puntos de igual distancia, por lo que para esta estimación, usarán 6 puntos, no 5.
  2. Utilice el "primer" punto encontrado de los dos a la misma distancia.
  3. Elija un punto aleatorio (generalmente con una semilla consistente, para que los resultados sean reproducibles) de los 2 puntos encontrados.

Dicho esto, la mayoría de los algoritmos basados ​​en búsquedas radiales tienen una suposición inherente de estacionariedad, en cuyo caso, no debería importar cuál de las opciones de arriba elija. En general, cualquiera de ellos debería, en teoría, proporcionar valores predeterminados razonables (especialmente porque son los puntos más lejanos en la aproximación y deberían tener las ponderaciones efectivas más bajas).


Otra opción interesante es usar al vecino más cercano así:

  • Calcula las distancias de los 5 vecinos más cercanos de cada clase a la muestra: tendrás 5 distancias de cada clase.

  • Entonces obtienes la distancia media para cada clase.

  • Esa distancia media más baja será la clase que asignará a la muestra.

Esta forma es efectiva para los conjuntos de datos de las clases que se superponen.


Si tiene k = 5, mira los cinco primeros registros, mire el resultado más común de esos cinco. Es probable que obtenga dos pares que lo pondrían en una situación difícil y sería difícil, porque entonces tiene una probabilidad de 50/50 de cada par.

Así que eso hace que la vida sea un reto. Entonces, ¿cómo se elige un valor para k? Hay algunas métricas que puedes usar para analizar el resultado después del hecho, pero no hay una regla estricta de lo que debe ser k, por lo que te lo pondré fácil al comenzar y me quedo con k = 3 en lugar de k = 5 y luego hacia abajo el camino analiza algunas estrategias que pueden ayudarlo a optimizar el valor de k, al observar la precisión real de sus predicciones.


Si tiene otra función de distancia, puede usarla para romper el empate. Incluso uno malo puede hacer el trabajo, mejor si tienes algunas heurísticas. Por ejemplo, si sabe que una de las características consideradas para calcular su distancia principal es más significativa, use solo esta para resolver el empate.

Si no es el caso, elige al azar. Ejecute varias veces su programa en el mismo conjunto de pruebas, para verificar si la elección aleatoria es importante.


Tal vez usted puede intentar knn difusa. Para la elección de k, creo que se deben hacer muchos experimentos para obtener el mejor resultado de clasificación.