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 atributoB
. - 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 os atributos A e 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 controla atributos numéricos desordenados 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 chamadonet_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.
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.
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 chamadoheight
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 deY
. - À medida que os valores de
X
aumentam, os valores deY
diminuem rapidamente. Consequentemente, valores altos deX
têm valores muito baixos deY
.
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 deY
. - A maioria dos filmes tem poucas avaliações de usuários. (Valores altos de
X
têm valores baixos deY
.
O escalonamento de registros altera a distribuição, o que ajuda a treinar um modelo fazer previsões melhores.
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:
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?
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ção | Fórmula | Quando 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
Suponha que você esteja desenvolvendo um modelo que prevê a velocidade
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
?
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.