2011-02-03 40 views
17

Quizás soy bastante estúpido pero no puedo encontrar una respuesta satisfactoria: Usando el algoritmo KNN, diga 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 siguientes 2 (o más) objetos más cercanos tienen la misma distancia? ¿Qué objeto de estos 2 o más debería elegirse como el 5º vecino más cercano?K Algoritmo de vecino más cercano

Gracias de antemano :)

Respuesta

16

Qué objeto de estos 2 o más debe ser elegido como el quinto vecino más cercano?

Realmente depende de cómo quiera implementarlo.

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

  1. Incluir todos los puntos de la misma distancia, por lo que para esta estimación, utilizarán 6 puntos, no 5.
  2. Use la "primera" que han encontrado de los dos iguales distantes.
  3. Elija un azar (generalmente con una semilla consistente, por lo que los resultados son reproducibles) punto de los 2 puntos encontrados.

Dicho esto, la mayoría de los algoritmos basados ​​en la búsqueda radial tienen una suposición inherente de estacionariedad, en cuyo caso, realmente no debería importar cuál de las opciones anteriores eliges. En general, cualquiera de ellos debería, teóricamente, proporcionar incumplimientos razonables (especialmente dado que son los puntos más lejanos en la aproximación y deberían tener las ponderaciones efectivas más bajas).

+1

Ah bien, muchas gracias :) (Esta información se debe agregar al artículo de wikipedia sobre KNN ...) – Gwaihir

+0

También esta respuesta debe aceptarse @Gwaihir. – gsamaras

6

Otra opción interesante y es utilizar el vecino más cercano de esta manera:

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

  • Luego obtiene la distancia media para cada clase.

  • Esa menor distancia promedio será la clase que asignará a la muestra.

Esta manera es efectiva para conjuntos de datos de clases que se superponen.

2

Quizás puedas probar Fuzzy Knn. Para la elección de k, creo que se deben realizar muchos experimentos para obtener el mejor resultado de clasificación.

5

Si tiene otra función de distancia, puede usarla para romper la atadura. Incluso uno malo puede hacer el trabajo, mejor si tienes algo de heurística. 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, elija al azar. Ejecute varias veces su programa en el mismo conjunto de pruebas, para verificar si la elección aleatoria es importante.

Cuestiones relacionadas