Por que você precisa escalar dados no KNN

15

Alguém poderia me explicar por que você precisa normalizar os dados ao usar o K vizinhos mais próximos.

Eu tentei procurar isso, mas ainda não consigo entender.

Encontrei o seguinte link:

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

Mas nesta explicação, não entendo por que um intervalo maior em um dos recursos afeta as previsões.

bugsyb
fonte
Eu acho que a normalização deve ser justificada do ponto de vista do objeto. Essencialmente, o que importa é o que define a distância entre os pontos. Você precisa encontrar uma definição aritmética conveniente de distância que reflita a definição de distância no objeto. Na minha experiência limitada, normalizei em algumas direções, mas não em todas, com base em considerações sobre o assunto.
Richard Hardy
1
Para um exemplo instrutivo, consulte stats.stackexchange.com/questions/140711 .
whuber

Respostas:

26

O algoritmo vizinho k-mais próximo depende da votação majoritária com base na participação na classe das amostras 'k' mais próximas para um determinado ponto de teste. A proximidade das amostras é tipicamente baseada na distância euclidiana.

Considere um problema simples de classificação de duas classes, em que uma amostra da Classe 1 é escolhida (preta) juntamente com os 10 vizinhos mais próximos (verde preenchido). Na primeira figura, os dados não são normalizados, enquanto na segunda é.

Dados sem normalização Dados com normalização

x1

A normalização resolve esse problema!

kedarps
fonte
1
Esta resposta é exatamente correta, mas temo que as ilustrações possam ser enganosas por causa das distorções envolvidas. O argumento pode ser melhor traçado, desenhando os dois para que os dois eixos de cada um estejam na mesma escala.
whuber
1
Achei difícil ajustar todos os pontos de dados na mesma escala para as duas figuras. Por isso, mencionei em uma nota que escalas de eixos são diferentes.
kedarps
1
Essa dificuldade é realmente o ponto de sua resposta! Uma maneira de superá-lo é não usar uma gama tão extrema de escalas. Uma diferença de 5: 1 nas escalas, em vez de uma diferença de 1000: 1, ainda faria bem o seu ponto. Outra maneira é desenhar fielmente a imagem: o gráfico de dispersão superior parecerá uma linha vertical de pontos.
whuber
2
@ Whuber, eu entendi mal o seu primeiro comentário. Corrigidos os enredos, espero que esteja melhor agora!
kedarps
1
@ Undertherainbow Isso está correto!
22419 kedarps
5

Suponha que você tenha um conjunto de dados (m "exemplos" por n "recursos") e todos, exceto uma dimensão de recurso, tenham valores estritamente entre 0 e 1, enquanto uma única dimensão de recurso tenha valores que variam de -1000000 a 1000000. Ao tomar a distância euclidiana entre pares de "exemplos", os valores das dimensões do recurso que variam entre 0 e 1 podem se tornar não informativos e o algoritmo dependeria essencialmente da dimensão única cujos valores são substancialmente maiores. Apenas elabore alguns exemplos de cálculos de distância euclidiana e você poderá entender como a escala afeta o cálculo do vizinho mais próximo.

Derek Jones
fonte