Por Clare Liu, indústria Fintech.

A transformação de dados é um dos passos fundamentais na parte do processamento de dados. Quando eu aprendi a técnica de escala de características, os termos escala, padronização e normalização estão sendo usados com frequência. No entanto, foi bastante difícil encontrar informações sobre qual deles eu deveria usar e também quando usar. Portanto, vou explicar os seguintes aspectos chave neste artigo:

  • a diferença entre a normalização e a normalização
  • quando usar a normalização e quando usar a normalização
  • como aplicar a escala de características em Python

O que significa a escala de características?

Na prática, encontramos frequentemente diferentes tipos de variáveis no mesmo conjunto de dados. Uma questão significativa é que o intervalo das variáveis pode ser muito diferente. Usando a escala original pode colocar mais pesos nas variáveis com um grande intervalo. Para lidar com este problema, precisamos aplicar a técnica de redimensionamento de características a variáveis independentes ou características de dados na etapa de pré-processamento de dados. Os termos normalização e padronização são às vezes usados de forma intercambiável, mas geralmente referem-se a coisas diferentes.

O objetivo da aplicação da Escala de Recursos é garantir que os recursos estejam na mesma escala, de modo que cada recurso seja igualmente importante e facilite o processamento pela maioria dos algoritmos ML.

Exemplo

Este é um conjunto de dados que contém uma variável independente (Comprado) e 3 variáveis dependentes (País, Idade e Salário). Podemos facilmente notar que as variáveis não estão na mesma escala porque o intervalo de Idade é de 27 a 50, enquanto que o intervalo de Salário vai de 48 K a 83 K. O intervalo de Salário é muito mais amplo do que o intervalo de Idade. Isto causará alguns problemas nos nossos modelos, uma vez que muitos modelos de aprendizagem de máquinas, tais como o agrupamento de k significaans e a classificação do vizinho mais próximo são baseados na Distância Euclidiana.

Focalização na idade e no salário.

Quando calculamos a equação da distância euclidiana, o número de (x2-x1)² é muito maior que o número de (y2-y1)² o que significa que a distância euclidiana será dominada pelo salário se não aplicarmos a escala de característica. A diferença de idade contribui menos para a diferença geral. Portanto, devemos usar a escala de característica para trazer todos os valores à mesma magnitudes e, assim, resolver esta questão. Para isso, existem principalmente dois métodos chamados Normalização e Normalização.

Euclidean aplicação de distância.

Padronização

O resultado da normalização (ou normalização Z-score) é que as características serão redimensionadas para garantir que a média e o desvio padrão sejam 0 e 1, respectivamente. A equação é mostrada abaixo:

Esta técnica é para redimensionar o valor das características com o valor de distribuição entre 0 e 1 é útil para os algoritmos de otimização, tais como descida de gradiente, que são usados dentro de algoritmos de aprendizagem de máquinas que pesam entradas (por exemplo, regressão e redes neurais). O redimensionamento também é usado para algoritmos que usam medidas de distância, por exemplo, K-Nearest-Neighbours (KNN).

Código

#Import libraryfrom sklearn.preprocessing import StandardScalersc_X = StandardScaler()sc_X = sc_X.fit_transform(df)#Convert to table format - StandardScaler sc_X = pd.DataFrame(data=sc_X, columns=)sc_X

Normalização Máx-Min

Outra abordagem comum é a chamada Normalização Máx-Min (Escala Mín-Máx). Esta técnica consiste em redimensionar as características com um valor de distribuição entre 0 e 1. Para cada característica, o valor mínimo dessa característica é transformado em 0, e o valor máximo é transformado em 1. A equação geral é mostrada abaixo:

>

A equação de Normalização Máx-Min.

Código

from sklearn.preprocessing import MinMaxScalerscaler = MinMaxScaler()scaler.fit(df)scaled_features = scaler.transform(df)#Convert to table format - MinMaxScalerdf_MinMax = pd.DataFrame(data=scaled_features, columns=)

Padrão vs Max-Min Normalização

Em contraste com a normalização, vamos obter desvios padrão menores através do processo de Max-Min Normalização. Deixe-me ilustrar mais nesta área usando o conjunto de dados acima.

Após a escala de característica.

Distribuição Normal e Desvio Padrão de Idade.

Distribuição Normal e Desvio Padrão de Idade.

Dos gráficos acima, podemos notar claramente que a aplicação da Nomaralização Max-Min no nosso conjunto de dados gerou desvios padrão menores (Salário e Idade) do que a utilização do método de Padronização. Isso implica que os dados estão mais concentrados em torno da média se escalarmos os dados usando a Nomaralização Max-Min.

Como resultado, se você tiver outliers em sua característica (coluna), normalizando seus dados irá escalar a maioria dos dados para um pequeno intervalo, o que significa que todas as características terão a mesma escala, mas não lida bem com outliers. A padronização é mais robusta para outliers, e em muitos casos, é preferível à Max-Min Normalisation.

Quando a escala de recurso importa

Alguns modelos de aprendizagem de máquina são fundamentalmente baseados em matriz de distância, também conhecida como classificador baseado em distância, por exemplo, K-Nearest-Neighbours, SVM, e Neural Network. A escala de características é extremamente essencial para esses modelos, especialmente quando o alcance das características é muito diferente. Caso contrário, características com um grande alcance terão uma grande influência no cálculo da distância.

Max-Min Normalisation tipicamente nos permite transformar os dados com escalas variáveis para que nenhuma dimensão específica domine as estatísticas, e não é necessário fazer uma suposição muito forte sobre a distribuição dos dados, tais como vizinhos k-nearest e redes neurais artificiais. No entanto, a normalização não trata muito bem os outliners. Pelo contrário, a normalização permite aos utilizadores lidar melhor com os outliers e facilitar a convergência de alguns algoritmos computacionais, como a descida de gradientes. Portanto, normalmente preferimos a padronização em vez da Normalização Min-Max.

Exemplo: Que algoritmos precisam de escala de característica

Nota: Se um algoritmo não é baseado na distância, a escala de característica não é importante, incluindo Naive Bayes, Linear Discriminant Analysis, e modelos baseados em árvores (aumento de gradiente, floresta aleatória, etc.).

Resumo: Agora você deve saber

  • o objetivo de usar a escala de característica
  • a diferença entre Padronização e Normalização
  • os algoritmos que precisam aplicar Padronização ou Normalização
  • aplicar a escala de característica em Python

Por favor encontre o código e o conjunto de dados aqui.

Articles

Deixe uma resposta

O seu endereço de email não será publicado.