1
resposta

Duvida Normalização KNeighborsClassifier

Oi, tudo bem? Eu fiquei com uma duvida que achei interessante compartilhar aqui. Temos o seguinte cenário: A gente normaliza variáveis (salario por exemplo) para treinar um modelo usando KNeighborsClassifier (como resultado temos variáveis transformadas cujos valores estão comprendidos entre 0 e 1). Agora precisamos fazer previsão de um conjunto de dados novos em que as variáveis excedem os máximos usados para treinar o modelo (nesse caso o valor normalizado seria maior do que 1). O que devemos fazer nesses casos?

Perguntei ao Chat GTP e a resposta pode ser resumida como:

✅ Resumo

  • Use o mesmo scaler treinado nos dados novos.
  • Não é problema se os valores normalizados saírem de [0, 1] (o modelo vai considerar isso como valores "mais distantes").
  • Avalie se os dados novos estão muito fora da distribuição original.
  • Se for um padrão frequente, reavalie o uso de MinMaxScaler.

Gostaria de receber feedbacks, desde já obrigado!

1 resposta

E, Angel! Tudo bem?

Obrigada por compartilhar estes pontos da sua dúvida, será muito útil para ajudar outros(as) colegas aqui no fórum.

Realmente, aplicamos o mesmo Scaler (treinado com os dados de treino) aos novos dados, o que garante consistência nas transformações.

Valores fora do intervalo [0, 1] podem ocorrer quando os novos dados extrapolam os limites do conjunto de treinamento. O KNeighborsClassifier consegue lidar com isso, pois se baseia em distâncias. Mas, se a discrepância for significativa, isso pode indicar uma mudança na distribuição dos dados, impactando o desempenho do modelo.

Uma dica: monitore esses casos e, se forem recorrentes, considere testar o StandardScaler (que não restringe os valores a um intervalo fixo) ou retreinar o modelo com um conjunto de dados mais representativo.

Espero ter ajudado e qualquer dúvida, compartilhe no fórum.

Até mais, Angel!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado!