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).
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.
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.
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 - μ) / σ \]
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ção | Fórmula | Quando 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. |