31 votos

¿Por qué es necesario escalar los datos en KNN?

¿Podría alguien explicarme por qué es necesario normalizar los datos cuando se utilizan K vecinos más próximos?

He intentado buscarlo, pero sigo sin entenderlo.

He encontrado el siguiente enlace:

https://discuss.analyticsvidhya.com/t/why-it-is-necessary-to-normalize-in-knn/2715

Pero en esta explicación, no entiendo por qué un rango mayor en una de las características afecta a las predicciones.

45voto

victor Puntos 1

El algoritmo k-nearest neighbor se basa en la votación por mayoría basada en la pertenencia a una clase de las "k" muestras más cercanas para un punto de prueba determinado. La proximidad de las muestras suele basarse en la distancia euclidiana.

Consideremos un sencillo problema de clasificación de dos clases, en el que se elige una muestra de la Clase 1 (en negro) junto con sus 10 vecinos más cercanos (en verde). En la primera figura, los datos no están normalizados, mientras que en la segunda sí.

Data without normalization Data with normalization

Obsérvese cómo, sin normalización, todos los vecinos más próximos están alineados en la dirección del eje con el rango más pequeño, es decir. $x_1$ lo que conduce a una clasificación incorrecta.

La normalización resuelve este problema.

10voto

user162097 Puntos 8

Suponga que tiene un conjunto de datos (m "ejemplos" por n "características") y que todas las dimensiones de características menos una tienen valores estrictamente entre 0 y 1, mientras que una única dimensión de característica tiene valores que oscilan entre -1000000 y 1000000. Cuando se toma la distancia euclídea entre pares de "ejemplos", los valores de las dimensiones de las características que oscilan entre 0 y 1 pueden dejar de ser informativos y el algoritmo se basaría esencialmente en la única dimensión cuyos valores son sustancialmente mayores. Basta con realizar algunos cálculos de distancia euclídea de ejemplo para comprender cómo afecta la escala al cálculo del vecino más próximo.

0voto

Ajey Puntos 81

Si la escala de las características es muy diferente, se requiere una normalización. Esto se debe a que el cálculo de distancia realizado en KNN utiliza los valores de las características. Cuando los valores de una característica son mayores que los de otra, esa característica dominará la distancia y, por tanto, el resultado del KNN.

ver ejemplo en gist.github.com

0voto

JGrossman Puntos 1

Cuanto mayor sea la escala de un rasgo particular en relación con otros rasgos, más peso tendrá ese rasgo en los cálculos de distancia. Al escalar todas las características a una escala común, cada una de ellas tiene el mismo peso en los cálculos de distancia. Pero nótese que el escalado introduce una ponderación particular en la función de distancia, así que ¿cómo podemos asumir que de alguna manera es la correcta para KNN? Así que mi respuesta es: el escalado no debería asumirse como un requisito.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X