Normalização e padronização em algoritmo k-Nearest Neighbors

A normalização e a padronização são técnicas usadas para ajustar os atributos dos dados antes de aplicar o algoritmo k-Nearest Neighbors (kNN). Ambos os métodos têm o objetivo de colocar os atributos em uma escala comum para que eles não tenham pesos diferentes na medida de distância euclidiana, que é utilizada no kNN para encontrar os vizinhos mais próximos.

Normalização

A normalização (também conhecida como “escalonamento”) é o processo de ajustar os valores dos atributos para que eles estejam dentro de uma faixa específica, geralmente entre 0 e 1. Isso é feito aplicando a seguinte fórmula para cada atributo:

Onde:

  • é o valor normalizado do atributo.

  • é o valor original do atributo.

  • é o valor mínimo do atributo no conjunto de dados.

  • é o valor máximo do atributo no conjunto de dados.

Ao usar a normalização, todos os atributos são mapeados para o intervalo [0, 1], o que garante que os valores dos atributos não influenciem muito mais do que outros na medida de distância euclidiana.

Padronização

A padronização (também conhecida como “z-score normalization”) é o processo de ajustar os valores dos atributos para que eles tenham média zero e desvio padrão igual a um. Para cada atributo, a padronização é realizada aplicando a seguinte fórmula:

Onde:

  • é o valor padronizado do atributo.

  • é o valor original do atributo.

  • é a média dos valores do atributo no conjunto de dados.

  • é o desvio padrão dos valores do atributo no conjunto de dados.

A padronização é útil quando os atributos têm escalas diferentes e podem variar significativamente em magnitude. Ela coloca todos os atributos na mesma escala e facilita a comparação entre eles na medida de distância euclidiana.

Necessidade de Normalização ou Padronização

O kNN é sensível à escala dos atributos, porque ele usa a distância euclidiana para encontrar os vizinhos mais próximos. Se os atributos têm escalas muito diferentes, aqueles com valores maiores podem dominar a distância e influenciar mais nas decisões do algoritmo. Como resultado, os atributos com valores menores podem ter um impacto mínimo ou serem ignorados.

Portanto, a normalização ou padronização são necessárias antes de aplicar o kNN para garantir que todos os atributos tenham uma contribuição igual na medida de distância. Dessa forma, os atributos são tratados de maneira justa e o kNN pode fazer previsões mais precisas e equilibradas com base nos vizinhos mais próximos. A escolha entre normalização e padronização depende do problema específico e da distribuição dos dados, mas ambas as técnicas são essenciais para melhorar o desempenho do algoritmo kNN.

Exemplo

Vamos utilizar um exemplo simples com um conjunto de dados fictício contendo dois atributos: “Idade” e “Salário”. A seguir, temos o conjunto de dados original:

IdadeSalário
2535000
3050000
2040000
4060000
2238000

Neste exemplo, iremos aplicar a normalização e a padronização para que ambos os atributos fiquem em uma escala comum.

Normalização:

Como exemplo, vamos calcular a normalização para o atributo “idade”.

  • Valor mínimo () = 20

  • Valor máximo () = 40

  • Para a primeira entrada (Idade = 25):

  • Para a segunda entrada (Idade = 30):

E assim por diante para as demais entradas. O conjunto de dados normalizado ficaria assim:

Idade (Normalizada)Salário
0.2535000
0.550000
0.040000
1.060000
0.138000

Padronização:

Agora, vamos calcular a padronização do atributo “idade”.

  • Média () = (25 + 30 + 20 + 40 + 22) / 5 = 27.4

  • Desvio Padrão () = ≈ 7.53

  • Para a primeira entrada (Idade = 25):

  • Para a segunda entrada (Idade = 30):

E assim por diante para as demais entradas. O conjunto de dados padronizado ficaria assim:

Idade (Padronizada)Salário
-0.3235000
0.3450000
-1.0640000
1.4160000
-0.3738000

Comparativo:

Agora vamos comparar os atributos “Idade” antes e depois da normalização e padronização:

Idade (Original)Idade (Normalizada)Idade (Padronizada)
250.25-0.32
300.50.34
200.0-1.06
401.01.41
220.1-0.37

Podemos observar que os valores da “Idade” foram normalizados para um intervalo entre 0 e 1 e padronizados para ter média zero e desvio padrão igual a um. Isso torna os atributos comparáveis em uma mesma escala, o que é essencial para que o algoritmo kNN possa calcular corretamente as distâncias euclidianas entre os pontos. Com a normalização e padronização aplicadas, o algoritmo kNN será capaz de tratar os atributos de maneira justa e fazer previsões mais precisas e equilibradas com base nos vizinhos mais próximos.