Entendo o raciocínio por trás da normalização de colunas, pois faz com que os recursos sejam ponderados igualmente, mesmo que não sejam medidos na mesma escala - no entanto, geralmente na literatura do vizinho mais próximo, colunas e linhas são normalizadas. Qual é a normalização de linha / por que normalizar linhas? Especificamente, como o resultado da normalização de linha afeta a semelhança / distância entre os vetores de linha?
normalization
distance
similarities
k-nearest-neighbour
curiosity_delivers
fonte
fonte
Respostas:
Esse é um tópico relativamente antigo, mas recentemente encontrei esse problema no meu trabalho e me deparei com essa discussão. A pergunta foi respondida, mas sinto que o perigo de normalizar as linhas quando não é a unidade de análise (consulte a resposta de @ DJohnson acima) não foi abordado.
O ponto principal é que a normalização de linhas pode ser prejudicial para qualquer análise subsequente, como o vizinho mais próximo ou o k-médias. Para simplificar, manterei a resposta específica para centralizar as linhas nas médias.
Para ilustrar, usarei dados Gaussianos simulados nos cantos de um hipercubo. Felizmente,
R
existe uma função conveniente para isso (o código está no final da resposta). No caso 2D, é simples que os dados centralizados na média da linha caiam em uma linha que passa pela origem a 135 graus. Os dados simulados são então agrupados usando k-means com número correto de clusters. Os dados e os resultados do cluster (visualizados em 2D usando PCA nos dados originais) são assim (os eixos para o gráfico mais à esquerda são diferentes). As diferentes formas dos pontos nas plotagens de agrupamento referem-se à atribuição de agrupamento terra-verdade e as cores são o resultado do agrupamento k-means.Os clusters superior esquerdo e inferior direito são cortados ao meio quando os dados são centralizados na média da linha. Portanto, as distâncias após a centralização da média da linha ficam distorcidas e não são muito significativas (pelo menos com base no conhecimento dos dados).
Não é tão surpreendente em 2D, e se usarmos mais dimensões? Aqui está o que acontece com os dados 3D. A solução de cluster após a centralização da média das linhas é "ruim".
E semelhante aos dados 4D (agora mostrados por questões de concisão).
Por que isso está acontecendo? A centralização da média da linha empurra os dados para algum espaço em que alguns recursos se aproximam mais do que estão. Isso deve se refletir na correlação entre os recursos. Vejamos isso (primeiro nos dados originais e depois nos dados centralizados na média da linha para casos 2D e 3D).
[,1] [,2] [1,] 1.000 -0.001 [2,] -0.001 1.000 [,1] [,2] [1,] 1 -1 [2,] -1 1 [,1] [,2] [,3] [1,] 1.000 -0.001 0.002 [2,] -0.001 1.000 0.003 [3,] 0.002 0.003 1.000 [,1] [,2] [,3] [1,] 1.000 -0.504 -0.501 [2,] -0.504 1.000 -0.495 [3,] -0.501 -0.495 1.000
Portanto, parece que a centralização da média de linhas está introduzindo correlações entre os recursos. Como isso é afetado pelo número de recursos? Podemos fazer uma simulação simples para descobrir isso. O resultado da simulação é mostrado abaixo (novamente o código no final).Assim, à medida que o número de recursos aumenta, o efeito da centralização média da linha parece diminuir, pelo menos em termos das correlações introduzidas. Mas apenas usamos dados aleatórios distribuídos uniformemente para esta simulação (como é comum ao estudar a maldição da dimensionalidade ).
Então, o que acontece quando usamos dados reais? Quantas vezes a dimensionalidade intrínseca dos dados é menor, a maldição pode não se aplicar . Nesse caso, eu acho que a centralização da média de linhas pode ser uma escolha "ruim", como mostrado acima. Obviamente, é necessária uma análise mais rigorosa para fazer reivindicações definitivas.
Código para simulação de cluster
Código para aumentar a simulação de recursos
EDITAR
fonte
Existem várias formas de normalização de linha e o OP não está indicando qual ele / ela tem em mente.
Uma forma específica de normalização de linha (normalização da norma euclediana) em que cada linha é normatizada (dividida por sua norma euclediana) é bastante popular.
Por exemplo, se seus dados originais estiverem centralizados (como os pontos pretos nesta imagem) e você aplicar a normalização de linha, obterá as estrelas vermelhas.
Os pontos verdes representam um pequeno número de valores discrepantes nos dados originais. Se você aplicar a transformação de normalização de linha a eles, obterá as estrelas azuis.
Você pode ver isso mais claramente comparando as matrizes de forma (ou elipses de contorno) ajustadas, por sua vez, aos dados, sua versão contaminada e a transformação normalizada das linhas:
fonte
Existem alguns motivos específicos de campo para executar a normalização de linha. Na análise de texto, é bastante comum representar um texto com o histograma das palavras que ele contém. A partir da contagem de palavras para cada linha, a padronização bruta a transforma em um histograma.
E a razão computacional . Se você estiver trabalhando com uma matriz esparsa, não poderá centralizar e dimensionar os dados coluna por coluna facilmente. Se você incorporá-lo em uma matriz densa, os dados podem se tornar muito grandes para caber na memória. No entanto, o dimensionamento de linha por linha não afeta a quantidade total de memória necessária.
fonte
A normalização de linha tem um nome - escala ipsativa - que normalmente envolve o redimensionamento de um conjunto de recursos, dividindo pelo valor máximo do conjunto ou subtraindo a média dos recursos. Existem muitas motivações para escolher essa abordagem para transformar dados, mas a principal delas é que ela condiciona os recursos em relação às características únicas do indivíduo (a linha ou unidade de análise).
fonte