Normalização

O objetivo da normalização é transformar os atributos em uma escala semelhante. Isso melhora o desempenho e a estabilidade do treinamento do modelo.

Técnicas de normalização resumidas

Quatro técnicas comuns de normalização podem ser úteis:

  • escalonamento para um intervalo
  • recorte
  • escalonamento de registros
  • Pontuação Z

Os gráficos a seguir mostram o efeito de cada técnica de normalização na distribuição do atributo bruto (preço) à esquerda. Os gráficos são baseados no conjunto de dados do anual Automotive Ward' de 1985, que faz parte do repositório de machine learning da UCI no conjunto de dados do Automobile (em inglês).

Cinco gráficos: 1. uma distribuição bruta. 2. a distribuição bruta dimensionada para 
um intervalo, que tem a mesma forma que a distribuição bruta. 3. A distribuição bruta
recortada, o que elimina os valores mais altos. 4. a distribuição bruta
escalonada por logaritmo, que agrupa os dados no meio
da distribuição. 5. A pontuação Z da distribuição, que tem uma forma semelhante à distribuição bruta.

Figura 1. Resumo das técnicas de normalização.

Escalonamento para um intervalo

Lembre-se do MLCC (em inglês) que escalonamento significa converter valores de recursos de ponto flutuante do intervalo natural (por exemplo, 100 para 900) em um intervalo padrão, geralmente 0 e 1 (ou, às vezes, -1 para +1). Use a seguinte fórmula simples para escalonar para um intervalo:

\[ x' = (x - x_{min}) / (x_{max} - x_{min}) \]

Dimensionar para um intervalo é uma boa opção quando as duas condições a seguir são atendidas:

  • Você sabe quais são os limites superior e inferior aproximado dos dados com poucos ou nenhum outlier.
  • Seus dados são distribuídos de maneira aproximadamente uniforme nesse intervalo.

Um bom exemplo é a idade. A maioria das faixas etárias varia entre 0 e 90, e cada parte da faixa tem um número significativo de pessoas.

Por outro lado, você não usaria o escalonamento de renda, porque apenas algumas pessoas têm rendas muito altas. O limite superior da escala linear de renda seria muito alto, e a maioria das pessoas seria espremida em uma pequena parte da balança.

Recorte de recursos

Se o conjunto de dados contiver outliers extremos, tente cortar o recurso, limitando todos os valores de recursos acima (ou abaixo) de um determinado valor ao valor fixo. Por exemplo, é possível cortar todos os valores de temperatura acima de 40 para que sejam exatamente 40.

É possível aplicar recortes de atributo antes ou depois de outras normalizações.

Fórmula: defina valores mínimos/máximos para evitar outliers.

Uma comparação entre uma distribuição nativa e uma distribuição limitada. Na
distribuição nativa, quase todos os valores estão dentro do intervalo de 1 a 4, mas
uma pequena porcentagem de valores está entre 5 e 55. Na distribuição limitada,
todos os valores originalmente acima de 4 agora têm o
valor 4.

Figura 2. Comparar uma distribuição bruta com a versão cortada.

Outra estratégia simples de recorte é cortar por Z-pont para +-NRANK (por exemplo, limitar a +-33). Observe que К é o desvio padrão.

Escalonamento de registros

O escalonamento de registros calcula o registro de seus valores para compactar um intervalo amplo para um intervalo estreito.

\[ x' = log(x) \]

O escalonamento de registros é útil quando alguns dos valores têm muitos pontos, enquanto a maioria dos outros valores tem poucos pontos. Essa distribuição de dados é conhecida como a distribuição de leis de potência. As classificações do filme são um bom exemplo. No gráfico abaixo, a maioria dos filmes tem muito poucas classificações (os dados na cauda) e algumas têm muitas classificações (os dados na cabeça). O escalonamento de registros muda a distribuição, o que ajuda a melhorar o desempenho do modelo linear.

Dois gráficos comparando dados brutos com o registro de dados brutos. O gráfico de dados brutos
mostra muitas classificações na cabeça, seguida por uma cauda longa. O gráfico de registros tem uma distribuição mais uniforme.

Figura 3. Comparar uma distribuição bruta com o registro.

Pontuação Z

Z-score é uma variação do escalonamento que representa o número de desvios padrão longe da média. Use z-score para garantir que as distribuições de atributos tenham média 0 e std = 1. É útil quando há alguns outliers, mas não tão extremos que você precisa cortar.

A fórmula para calcular a pontuação z de um ponto, x, é a seguinte:

\[ x' = (x - μ) / σ \]

Dois gráficos comparando dados brutos a dados normalizados com uma pontuação-z. Os dados brutos
mostram uma distribuição aproximada de Poisson que varia de 5.000 a 45.000.
Os dados normalizados variam de -1 a +4.

Figura 4. Comparar uma distribuição bruta com a distribuição Z-score.

Observe que a pontuação z-prende valores brutos que têm um intervalo de aproximadamente 40.000 em um intervalo de aproximadamente -1 a +4.

Suponha que você não saiba se os outliers são realmente extremos. Nesse caso, comece com Z-score, a menos que você tenha valores de recursos que não queira que o modelo aprenda. Por exemplo, os valores são o resultado de um erro de medição ou uma peculiaridade.

Resumo

Técnica de normalizaçãoFórmulaQuando usar
Escalonamento linear $$ x' = (x - x_{min}) / (x_{max} - x_{min}) $$ Quando o atributo é mais ou menos distribuído de maneira uniforme em um intervalo fixo.
Recorte Se x > máx., x' = máx. se x < min, depois x' = min Quando o atributo contém outliers extremos.
Escalonamento de registros x' = log(x) Quando o recurso está em conformidade com a lei de poder.
Pontuação Z x' = (x - μ) / π Quando a distribuição de recursos não contém outliers extremos.