K-NN com Múltiplas Características
Deslize para mostrar o menu
Agora você entende como o k-NN funciona com uma única característica. Vamos avançar para um exemplo um pouco mais complexo que utiliza duas características: weight e width.
Neste caso, é necessário encontrar vizinhos com base em width e weight. Mas há um pequeno problema nisso. Vamos plotar os doces e ver o que acontece:
É possível observar que o weight varia de 12 a 64, enquanto o width está apenas entre 5 e 12. Como a faixa de width é muito menor, os doces parecem quase alinhados verticalmente. Se calcularmos as distâncias agora, elas refletirão principalmente as diferenças em weight, como se width não fosse considerado.
Existe uma solução para isso — escalonamento dos dados.
Agora, tanto o peso quanto a largura estão na mesma escala e centralizados em torno de zero. Isso pode ser alcançado pela classe StandardScaler do sklearn. O StandardScaler simplesmente subtrai a média da amostra e depois divide o resultado pelo desvio padrão da amostra:
O StandardScaler centraliza os dados em torno de zero. Embora a centralização não seja obrigatória para o k-NN e possa causar confusão, como "como o peso pode ser negativo", isso é apenas uma forma de apresentar os dados ao computador. Alguns modelos exigem a centralização, então utilizar o StandardScaler para escalonamento por padrão é recomendável.
Na verdade, você deve sempre escalar os dados antes de usar o k-Nearest Neighbors. Com os dados escalados, agora podemos encontrar os vizinhos:
No caso de duas variáveis, o k-NN define uma vizinhança circular contendo o número desejado de vizinhos. Com três variáveis, isso se torna uma esfera. Em dimensões mais altas, a vizinhança assume uma forma mais complexa que não pode ser visualizada, mas os cálculos subjacentes permanecem inalterados.
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo