Dados numéricos: normalização

Depois de examinar os dados com técnicas estatísticas e de visualização, transforme seus dados para ajudar seu modelo a treinar mais com eficiência. O objetivo da normalização é transformar atributos estejam em uma escala semelhante. Por exemplo, considere os dois exemplos a seguir recursos:

  • O recurso X abrange o intervalo de 154 a 24.917.482.
  • O recurso Y abrange o intervalo de 5 a 22.

Esses dois atributos abrangem períodos muito diferentes. A normalização pode manipular X e Y para que abrangerem um intervalo semelhante, talvez de 0 a 1.

A normalização oferece os seguintes benefícios:

  • Ajuda os modelos a convergir mais rapidamente durante o treinamento. Quando atributos diferentes têm intervalos distintos, o gradiente descendente pode "rejeitar" e convergência lenta. Por outro lado, otimizadores mais avançados, como Adagrad (em inglês) e Adam se protegem contra esse problema, a taxa de aprendizado efetiva ao longo do tempo.
  • Ajuda os modelos a inferir previsões melhores. Quando atributos diferentes têm intervalos distintos, o resultado pode fazer previsões um pouco menos úteis.
  • Ajuda a evitar a "armadilha NaN" quando os valores de atributo são muito altos. NaN é uma abreviação não é um número. Quando um valor em um modelo excede limite de precisão de ponto flutuante, o sistema definirá o valor como NaN de um número. Quando um número no modelo se torna um NaN, outros números o modelo também vai se tornar um NaN.
  • Ajuda o modelo a aprender pesos apropriados para cada atributo. Sem o escalonamento de atributos, o modelo presta muita atenção para atributos com ampla amplitude e sem atenção suficiente para atributos intervalos estreitos.

Recomendamos normalizar os atributos numéricos que cobrem faixas diferentes (por exemplo, idade e renda). Também recomendamos normalizar um único atributo numérico que abranja um intervalo amplo, como city population.

Considere os dois recursos a seguir:

  • O menor valor do elemento A é -0,5 e o maior é +0,5.
  • O menor valor do recurso B é -5,0 e o maior é +5,0.

Os recursos A e B têm períodos relativamente estreitos. No entanto, o recurso B o período é 10 vezes maior do que o período do elemento A. Assim:

  • No início do treinamento, o modelo presume que o atributo A é dez vezes mais "importante" do que o atributo B.
  • O treinamento levará mais tempo do que deveria.
  • O modelo resultante pode não ser o ideal.

O dano geral causado pela não normalização será relativamente pequeno; No entanto, recomendamos normalizar o recurso A e o recurso B na mesma escala, talvez de -1,0 a +1,0.

Agora, considere dois atributos com maior disparidade de intervalos:

  • O menor valor do atributo "C" é -1, e o maior, +1.
  • O menor valor do atributo D é +5.000, e o maior é +1.000.000.000.

Se você não normalizar os atributos C e D, o modelo provavelmente vai ficar abaixo do ideal. Além disso, o treinamento levará muito mais tempo para convergir ou até mesmo não convergir totalmente.

Esta seção aborda três métodos conhecidos de normalização:

  • escalonamento linear
  • Escala Z-score
  • escalonamento de registros

Esta seção também aborda recorte. Embora não seja um verdadeiro de normalização, o recorte doma atributos numéricos desordenados em que produzem modelos melhores.

Dimensionamento linear

Escalonamento linear (mais comumente encurtado para apenas escalonamento) significa converter valores de ponto flutuante de o intervalo natural em um intervalo padrão, geralmente de 0 a 1 ou -1 a +1.

O escalonamento linear é uma boa opção quando todas as condições a seguir são atendidas:

  • Os limites inferior e superior dos dados não mudam muito com o tempo.
  • O atributo contém poucos ou nenhum valor atípico, e esses outliers não são extremas.
  • O atributo é distribuído de maneira quase uniforme ao longo do intervalo. Ou seja, um histograma mostraria barras quase uniformes para a maioria das idades.

Suponha que o age humano seja um recurso. O escalonamento linear é uma boa normalização técnica para age porque:

  • Os limites inferior e superior aproximados são de 0 a 100.
  • age contém uma porcentagem relativamente pequena de outliers. Apenas cerca de 0,3% a população é acima de 100.
  • Embora certas idades sejam um pouco melhor representadas do que outras, uma grande deve conter exemplos suficientes de todas as idades.

Teste seu conhecimento

Suponha que seu modelo tenha um atributo chamado net_worth que mantém a rede valor de pessoas diferentes. O escalonamento linear seria uma boa normalização técnica para net_worth? Por que sim ou por que não?

Escala Z-score

O score-Z é o número de desvios padrão entre um valor e a média. Por exemplo, um valor que é dois desvios padrão maior que a média. tem pontuação Z de +2,0. Um valor de 1,5 desvio padrão menor que a média tem escore Z de -1,5.

Representar um atributo com escalonamento de pontuação Z significa armazenar os pontuação Z no vetor do atributo. Por exemplo, a figura a seguir mostra duas histogramas:

  • À esquerda, uma distribuição normal clássica.
  • À direita, a mesma distribuição normalizada pelo escalonamento Z-score.
Figura 4. Dois histogramas: ambos mostrando distribuições normais com
           a distribuição idêntica. O primeiro histograma, que contém dados brutos
           dados, tem uma média de 200 e um desvio padrão de 30. A segunda
           Histograma, que contém uma versão com pontuação Z do primeiro
           tem uma média de 0 e um desvio padrão de 1.
Figura 4. Dados brutos (esquerda) versus pontuação Z (direita) para uma e distribuição de dados.

A escala Z-score também é uma boa opção para dados como o mostrado a figura a seguir, que tem apenas uma distribuição vagamente normal.

Figura 5. Dois histogramas de formato idêntico, cada um mostrando uma curva
            chegar a um platô e depois uma descida relativamente rápida, seguida por
            declínio gradual. Um histograma ilustra a
            distribuição dos dados brutos; o outro histograma ilustra
            dos dados brutos quando normalizados pela escala Z-score.
            Os valores no eixo X dos dois histogramas são muito diferentes.
            O histograma de dados brutos abrange o domínio de 0 a 29.000, enquanto
            o histograma dimensionado de pontuação Z varia de -1 a cerca de +4,8
Figura 5. Dados brutos (esquerda) versus dimensionamento Z-score (direita) para uma e uma distribuição normal não clássica.

O escore padronizado é uma boa opção quando os dados seguem uma distribuição normal ou e uma distribuição semelhante a uma distribuição normal.

Algumas distribuições podem ser normais na maior parte mas ainda contêm outliers extremos. Por exemplo, quase todos em um atributo net_worth podem se encaixar perfeitamente em três desvios padrão: mas alguns exemplos desse atributo podem ser centenas de desvios padrão da média. Nessas situações, você pode combinar o escalonamento Z-score com outra forma de normalização (geralmente recorte) para lidar com essa situação.

Exercício: testar seu conhecimento

Suponha que seu modelo treine em um atributo chamado height que contenha o adulto. de 10 milhões de mulheres. A escala Z seria uma boa normalização? técnica para height? Por que sim ou por que não?

Dimensionamento logarítmico

O dimensionamento de registros calcula o logaritmo do valor bruto. Em teoria, o logaritmo pode ser qualquer base; na prática, o escalonamento de registros geralmente calcula o logaritmo natural (ln).

O escalonamento de registros é útil quando os dados estão em conformidade com uma distribuição da lei de potência. Falando casualmente, uma distribuição da lei de potência tem a seguinte aparência:

  • Valores baixos de X têm valores muito altos de Y.
  • À medida que os valores de X aumentam, os valores de Y diminuem rapidamente. Consequentemente, valores altos de X têm valores muito baixos de Y.

As classificações de filmes são um bom exemplo de distribuição da lei de poder. Nos seguintes Observe o seguinte:

  • Alguns filmes têm muitas avaliações de usuários. Valores baixos de X têm valores altos de Y.
  • A maioria dos filmes tem poucas avaliações de usuários. (Valores altos de X têm valores baixos de Y.

O escalonamento de registros altera a distribuição, o que ajuda a treinar um modelo fazer previsões melhores.

Figura 6. Dois gráficos comparando dados brutos com o registro de dados brutos.
            O gráfico de dados brutos mostra muitas avaliações de usuários no cabeçalho, seguidas
            por uma cauda longa. O gráfico de registros tem uma distribuição mais uniforme.
Figura 6. Comparar uma distribuição bruta com seu registro.

Como segundo exemplo, as vendas de livros estão em conformidade com a distribuição da lei de poder porque:

  • A maioria dos livros publicados vende um pequeno número de cópias, talvez 1 ou 200.
  • Alguns livros vendem um número moderado de cópias, aos milhares.
  • Apenas alguns mais vendidos venderão mais de um milhão de cópias.

Suponha que você esteja treinando um modelo linear para encontrar a relação como capas de livros para vendas de livros. Um treinamento de modelo linear com valores brutos preciso encontrar algo sobre as capas dos livros que vendem um milhão de cópias que é 10.000 mais poderosa do que capas de livros que vendem apenas 100 cópias. No entanto, o registro de escalonamento de todos os números de vendas torna a tarefa muito mais viável. Por exemplo, o registro de 100 é:

  ~4.6 = ln(100)

enquanto o registro de 1.000.000 é:

  ~13.8 = ln(1,000,000)

Portanto, o registro de 1.000.000 é apenas cerca de três vezes maior do que o registro de 100. Você provavelmente poderia imaginar a capa de um livro mais vendido sendo cerca de três vezes mais poderosa (de alguma forma) do que uma capa de livro pequena.

Recorte

O corte é uma técnica para minimizam a influência de outliers extremos. Em resumo, o recorte geralmente limita (reduz) o valor dos outliers a um valor máximo específico. O recorte é uma uma ideia estranha, e ainda assim pode ser muito eficaz.

Por exemplo, imagine um conjunto de dados que contenha um atributo chamado roomsPerPerson, que representa o número de salas (total de salas dividido por número de ocupantes) de várias casas. O gráfico a seguir mostra que, 99% dos valores de atributo estão em conformidade com uma distribuição normal (aproximadamente, uma média de 1,8 e um desvio padrão de 0,7). No entanto, o recurso contém alguns valores atípicos, alguns extremos:

Figura 7. Um gráfico de quartos por pessoa em que quase todos os valores
            estão agrupados entre 0 e 4, mas há uma cauda longa
            chegando a 17 quartos por pessoa
Figura 7. Praticamente normal, mas não completamente normal.

Como minimizar a influência desses outliers extremos? Bem, o histograma não é uma distribuição uniforme, uma distribuição normal ou uma lei de potência e distribuição de dados. E se você simplesmente limitar ou recortar o valor máximo roomsPerPerson a um valor arbitrário, por exemplo, 4.0?

Um gráfico de quartos por pessoa no qual todos os valores estão entre 0 e
            4.0. O enredo é em forma de sino, mas há um morro anômalo em 4,0
Figura 8. Recorte de valores de recursos na versão 4.0.

Cortar o valor do atributo em 4.0 não significa que o modelo ignora todas valores maiores que 4,0. Na verdade, significa que todos os valores maiores do que a versão 4.0 agora é a 4.0. Isso explica a peculiar colina da 4.0. Apesar nesse morro, o conjunto de atributos dimensionados será mais útil do que os dados originais.

Espere um momento! É possível reduzir cada valor atípico para algum valor limite? Ao treinar um modelo, sim.

Também é possível recortar valores depois de aplicar outras formas de normalização. Por exemplo, suponha que você use escala Z-score, mas alguns outliers têm valores absolutos muito maiores do que 3. Nesse caso, você poderia:

  • Corte os valores Z maiores do que 3 para se tornar exatamente 3.
  • Corte as pontuações Z menores que -3 para se tornar exatamente -3.

O recorte impede que o modelo indexe demais dados sem importância. No entanto, alguns valores atípicos são importantes, então corte os valores com cuidado.

Resumo das técnicas de normalização

Técnica de normalizaçãoFórmulaQuando usar
Dimensionamento linear $$ x' = \frac{x - x_{min}}{x_{max} - x_{min}} $$ Quando o atributo é distribuído de maneira uniforme em um intervalo fixo.
Escala Z-score $$ x' = \frac{x - μ}{σ}$$ Quando a distribuição de atributos não contém outliers extremos.
Dimensionamento logarítmico $$ x' = log(x)$$ Quando o recurso está em conformidade com a lei da potência.
Recorte Se $x > max$, definir $x' = máx. US$
Se $x < min$, definir $x' = mín. de$
Quando o atributo contém outliers extremos.

Exercício: teste seus conhecimentos

Qual técnica seria mais adequada para normalizar um atributo com a seguinte distribuição?

Um histograma mostrando um cluster de dados com valores no intervalo de 0 a
          200.000. O número de pontos de dados aumenta gradualmente para o intervalo
          de 0 a 100.000 e depois diminui gradualmente de 100.000 para
          200.000.

Escala Z-score
Os pontos de dados geralmente estão em conformidade com uma distribuição normal, então o escore padronizado o dimensionamento vai forçar um intervalo de -3 a +3.
Dimensionamento linear
Leia as discussões sobre as técnicas de normalização nesta página. e tente de novo.
Dimensionamento logarítmico
Leia as discussões sobre as técnicas de normalização nesta página. e tente de novo.
Recorte
Leia as discussões sobre as técnicas de normalização nesta página. e tente de novo.

Suponha que você esteja desenvolvendo um modelo que prevê a produtividade baseada na temperatura medida no data center. Quase todos os valores temperature do conjunto de dados se enquadram entre 15 e 30 (Celsius), com as seguintes exceções:

  • Uma ou duas vezes por ano, em dias extremamente quentes, alguns valores entre 31 e 45 são gravados em temperature.
  • Cada milésimo ponto em temperature é definido como 1.000 e não a temperatura real.

Essa seria uma técnica de normalização razoável para temperature?

Corte os valores atípicos entre 31 e 45, mas exclua os valores atípicos com um valor de 1.000

Os valores de 1.000 são erros e devem ser excluídos cortada.

Os valores entre 31 e 45 são pontos de dados legítimos. O recorte seria uma boa ideia para esses valores, supondo que o conjunto de dados não contém exemplos suficientes treinar o modelo para fazer boas previsões. No entanto, durante a inferência, note que o modelo recortado faria a mesma previsão para uma temperatura de 45 para uma temperatura de 35.

Recorte todos os pontos fora da curva
Leia as discussões sobre as técnicas de normalização nesta página. e tente de novo.
Excluir todos os outliers
Leia as discussões sobre as técnicas de normalização nesta página. e tente de novo.
Exclua os valores atípicos entre 31 e 45, mas corte o valores atípicos com valor de 1.000.
Leia as discussões sobre as técnicas de normalização nesta página. e tente de novo.