Ayuda a entender kNN para datos multidimensionales


10

Entiendo la premisa del algoritmo kNN para datos espaciales. Y sé que puedo extender ese algoritmo para usarlo en cualquier variable de datos continua (o datos nominales con Hamming Distance). Sin embargo, ¿qué estrategias se utilizan cuando se trata con datos de dimensiones superiores?

Por ejemplo, supongamos que tengo una tabla de datos (x [1], x [2], x [3], ..., x [n]) y quiero construir un conjunto de clasificadores para predecir una de esas columnas (diga x [n]). Usando el algoritmo kNN, elegiría dos columnas de las columnas restantes (x [1] -x [n-1]) para entrenar. Digamos que podría elegir x [1] yx [2] y construir un clasificador a partir de ellos. O podría elegir x [1] yx [4], o podría elegir x [5] yx [8], etc. Incluso podría elegir una sola columna y construir un clasificador a partir de eso, o 3 columnas y construir un clasificadores de eso. ¿Hay alguna ventaja en usar dimensiones más altas (2D, 3D, etc.) o debería simplemente construir clasificadores de dimensión única x-1 y agregar sus predicciones de alguna manera?

Dado que construir todos estos clasificadores a partir de todas las combinaciones potenciales de las variables sería computacionalmente costoso. ¿Cómo podría optimizar esta búsqueda para encontrar los mejores clasificadores kNN de ese conjunto? Y, una vez que encuentre una serie de clasificadores, ¿cuál es la mejor manera de combinar sus resultados en una sola predicción? La votación podría ser la respuesta más simple a esta pregunta. O ponderando cada voto por tasas de error de los datos de entrenamiento para cada clasificador.

¿Cómo la mayoría de las implementaciones aplican kNN a un aprendizaje más generalizado?


ver Beyer et al. bajo cuando-es-el-vecino-más-significativo-hoy : kNN a veces NO es significativo. ¿Cuáles son tus N, dim, k?
denis

Respuestas:


4

¿Hay alguna ventaja en usar dimensiones más altas (2D, 3D, etc.) o debería simplemente construir clasificadores de dimensión única x-1 y agregar sus predicciones de alguna manera?

Esto depende de si sus características son informativas o no. ¿Sospecha que algunas características no serán útiles en su tarea de clasificación? Para tener una mejor idea de sus datos, también puede intentar calcular la correlación por pares o la información mutua entre la variable de respuesta y cada una de sus características.

Para combinar todas (o un subconjunto) de sus características, puede intentar calcular la distancia L1 (Manhattan) o L2 (Euclidiana) entre el punto de consulta y cada punto de "entrenamiento" como punto de partida.

Dado que construir todos estos clasificadores a partir de todas las combinaciones potenciales de las variables sería computacionalmente costoso. ¿Cómo podría optimizar esta búsqueda para encontrar los mejores clasificadores kNN de ese conjunto?

Este es el problema de la selección del subconjunto de características. Hay mucho trabajo académico en esta área (ver Guyon, I., y Elisseeff, A. (2003). Introducción a la selección de variables y características. Journal of Machine Learning Research, 3, 1157-1182. Para una buena visión general )

Y, una vez que encuentre una serie de clasificadores, ¿cuál es la mejor manera de combinar sus resultados en una sola predicción?

Esto dependerá de si las características seleccionadas son independientes o no. En el caso de que las características sean independientes, puede ponderar cada característica por su información mutua (o alguna otra medida de informatividad) con la variable de respuesta (lo que sea que esté clasificando). Si algunas características dependen, entonces un modelo de clasificación único probablemente funcionará mejor.

¿Cómo la mayoría de las implementaciones aplican kNN a un aprendizaje más generalizado?

Al permitir que el usuario especifique su propia matriz de distancia entre el conjunto de puntos. kNN funciona bien cuando se usa una métrica de distancia adecuada.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.