Que tipo de normalização de dados deve ser usado com o KNN?

9

Eu sei que há mais de dois tipos de normalização.

Por exemplo,

1- Transformação de dados usando um z-score ou t-score. Isso geralmente é chamado de padronização.

2- Reescalonar dados para ter valores entre 0 e 1.

A questão agora se eu precisar normalizar

Que tipo de normalização de dados deve ser usado com o KNN? e porque?

jeza
fonte

Respostas:

11

Para k-NN, sugiro normalizar os dados entre e .101

O k-NN usa a distância euclidiana como meio de comparar exemplos. Para calcular a distância entre dois pontos e , onde é o valor do ésimo recurso de :x 2 = ( f 1 2 , f 2 2 , . . . , f H 2 ) f i 1 i x 1x1=(f11,f12,...,f1M)x2=(f21,f22,...,f2M)f1iix1

d(x1,x2)=(f11f21)2+(f12f22)2+...+(f1Mf2M)2

Para que todos os recursos tenham a mesma importância no cálculo da distância, eles devem ter o mesmo intervalo de valores. Isso só é possível através da normalização.

Se eles não foram normalizados e, por exemplo, o recurso teve um intervalo de valores em ), enquanto teve um intervalo de valores em . Ao calcular a distância, o segundo termo seria vezes mais importante que o primeiro, levando o k-NN a confiar mais no segundo recurso que no primeiro. A normalização garante que todos os recursos sejam mapeados para o mesmo intervalo de valores. [ 0 , 1 f 2 [ 1 , 10 ) 10f1[0,1f2[1,10)10

A padronização, por outro lado, possui muitas propriedades úteis, mas não pode garantir que os recursos sejam mapeados para o mesmo intervalo. Embora a padronização possa ser mais adequada para outros classificadores, esse não é o caso do k-NN ou de qualquer outro classificador baseado em distância.

Djib2011
fonte
4
A sua resposta será a mesma se eu usar distância diferente em vez da distância euclidiana (por exemplo, distância de Manhattan ou outra distância, mesmo distância fracionária)? Também se o intervalo das variáveis ​​estiver aproximadamente próximo um do outro.
jeza
7
Sim, apenas mostrei a distância euclidiana como exemplo, mas todas as métricas de distância sofrem da mesma coisa. Se os intervalos são próximos um do outro, então não afetaria o cálculo da métrica que muito , mas ainda assim o faria. Por exemplo, se e , ainda seria mais importante do que . Uma coisa que eu esqueci de mencionar foi que a padronização, obviamente, é muito melhor do que não executar nenhuma escala de recurso; é simplesmente pior que a normalização. f 2[ 0 , 1,2 ) f 2 20 % f 1f1[0,1)f2[0,1.2)f220%f1
precisa saber é o seguinte
Ah entendo. "é simplesmente pior que a normalização" !?
jeza