domingo, 10 de fevereiro de 2019

O que seria a tal Normalização de Dados?

Grande parte dos algoritmos de machine learning faz o processo de treinamento
melhor quando os dados estão normalizados, ou seja, dentro de uma escala única.
O sentido é que quando mais padronizados sejam os dados, melhor é o ajustamento
das equações para compreender o cenário que estão sendo treinados. Por isso, uma boa
prática é utilizar técnicas de normalização, ou seja, colocá-los dentro de uma distribuição
do tipo normal. Vamos ver quais são essas técnicas:

1. Min-Max: essa técnica, que eu costumo utilizar, coloca dados de diferentes escalas,
dentro de um range pré-determinado, eu utilizo de 0 a 1.

2. Escala Decimal: o resultado de cada feature é multiplicado por 10 ou dividido por 10,
para as grandezas possuírem tamanhos similares.

3. Método do Desvio Padrão: é utilizada a seguinte fórmula - [x - mean(x)] * sd(x)
Os valores são substraídos da sua média e multiplicados pelo seu desvio padrão.
Obtendo uma escala única entre todas as variáveis.

4. Eliminação de Outliers: números que estão fora da distribuição de valores,
esses devem ser retirados, e então é feita uma padronização, pois entende-se 
que os dados restantes estão bem mais adequados a realidade.

Geralmente a normalização está atrelada ao conceito de Standardization.

Na biblioteca scikit-learn, esses são os processos de transformação de features.

from sklearn.preprocessing import MinMaxScaler
from sklearn.preprocessing import minmax_scale
from sklearn.preprocessing import MaxAbsScaler
from sklearn.preprocessing import StandardScaler
from sklearn.preprocessing import RobustScaler
from sklearn.preprocessing import Normalizer
from sklearn.preprocessing import QuantileTransformer
from sklearn.preprocessing import PowerTransformer

Nenhum comentário:

Postar um comentário