Alguns desenvolvedores ML tendem a padronizar seus dados cegamente antes de “todos” os modelos de Machine Learning, sem se esforçarem para entender porque ele deve ser usado, ou mesmo se é necessário ou não. Então o objetivo deste post é explicar como, por que e quando padronizar os dados.
- Padronização
- Como padronizar dados?
- Z-score
- Quando se deve padronizar dados e porquê?
- 1- Antes do PCA:
- 2- Antes do agrupamento:
- 3- Antes do KNN:
- 4- Antes da SVM
- 5- Antes de medir a importância das variáveis em modelos de regressão
- 6- Antes de Lasso e Ridge Regression
- Casos quando a padronização não é necessária?
- Regressão Lógica e modelos baseados em árvores
- Padronização de dados de embrulho
Padronização
Padronização vem à tona quando as características do conjunto de dados de entrada têm grandes diferenças entre seus intervalos, ou simplesmente quando eles são medidos em diferentes unidades de medida (por exemplo, Libras, Medidores, Milhas … etc).
Estas diferenças nos intervalos de características iniciais causam problemas a muitos modelos de aprendizagem de máquinas. Por exemplo, para os modelos que são baseados no cálculo da distância, se uma das características tem uma ampla gama de valores, a distância será regida por esta característica particular.
Para ilustrar isto com um exemplo: digamos que temos um conjunto de dados bidimensionais com duas características, Altura em Metros e Peso em Libras, que variam respectivamente de Metros e Libras. Não importa qual modelo baseado na distância que você executar neste conjunto de dados, a característica Peso dominará sobre a característica Altura e terá mais contribuição para o cálculo da distância, apenas porque tem valores maiores em comparação com a Altura. Assim, para prevenir este problema, transformar características em escalas comparáveis usando a padronização é a solução.
Como padronizar dados?
Z-score
Z-score é um dos métodos mais populares para padronizar dados, e pode ser feito subtraindo a média e dividindo pelo desvio padrão para cada valor de cada característica.
Após a padronização ser feita, todas as características terão uma média de zero, um desvio padrão de um, e assim, a mesma escala.
Existem outros métodos de padronização, mas para simplificar, nesta história eu me contento com o método Z-score.
Quando se deve padronizar dados e porquê?
Como visto acima, para modelos baseados na distância, a padronização é realizada para evitar que características com faixas mais amplas dominem a métrica de distância. Mas a razão pela qual padronizamos dados não é a mesma para todos os modelos de aprendizagem de máquinas, e difere de um modelo para outro.
Então antes de quais modelos ML e métodos você tem que padronizar seus dados e porque ?
1- Antes do PCA:
Na Análise de Componentes Principais, características com altas variâncias/intervalos, ganham mais peso do que aquelas com baixa variância, e consequentemente, acabam dominando ilegitimamente os Primeiros Componentes Principais (Componentes com máxima variância). Eu usei a palavra “Ilegitimamente” aqui, porque a razão pela qual estas características têm variações altas em comparação com as outras é apenas porque foram medidas em escalas diferentes.
A padronização pode evitar isso, dando a mesma altura de crescimento a todas as características.
2- Antes do agrupamento:
Os modelos de agrupamento são algoritmos baseados na distância, a fim de medir as semelhanças entre observações e agrupamentos de formas, eles usam uma métrica de distância. Assim, características com altos intervalos terão maior influência no clustering. Portanto, a padronização é necessária antes de construir um modelo de clustering.
3- Antes do KNN:
k-nearest vizinhos é um classificador baseado em distância que classifica novas observações baseadas em medidas de similaridade (por exemplo, métricas de distância) com observações rotuladas do conjunto de treinamento. A padronização faz com que todas as variáveis contribuam igualmente para as medidas de similaridade .
4- Antes da SVM
Support Vector Machine tenta maximizar a distância entre o plano de separação e os vetores de suporte. Se uma característica tem valores muito grandes, ela dominará sobre outras características ao calcular a distância. Então a padronização dá a todas as características a mesma influência na métrica de distância.
5- Antes de medir a importância das variáveis em modelos de regressão
É possível medir a importância das variáveis na análise de regressão, ajustando um modelo de regressão usando as variáveis independentes padronizadas e comparando o valor absoluto de seus coeficientes padronizados. Mas, se as variáveis independentes não forem padronizadas, a comparação de seus coeficientes torna-se sem sentido.
6- Antes de Lasso e Ridge Regression
LASSO e Ridge regressions colocam uma penalização na magnitude dos coeficientes associados a cada variável. E a escala das variáveis irá afetar o quanto de penalidade será aplicada sobre os seus coeficientes. Porque os coeficientes das variáveis com grande variância são pequenos e, portanto, menos penalizados. Portanto, a padronização é necessária antes de se ajustar a ambas as regressões.
Casos quando a padronização não é necessária?
Regressão Lógica e modelos baseados em árvores
Regressão Lógica e algoritmos baseados em árvores, tais como Árvore de decisão, Floresta aleatória e aumento de gradiente, não são sensíveis à magnitude das variáveis. Portanto, a padronização não é necessária antes de se ajustar a este tipo de modelos.
Padronização de dados de embrulho
Como vimos neste post, quando padronizar e quando não, depende de qual modelo você quer usar e o que você quer fazer com ele. Portanto, é muito importante para um desenvolvedor do ML entender o funcionamento interno dos algoritmos de aprendizagem de máquinas, ser capaz de saber quando padronizar dados e construir um modelo de aprendizagem de máquinas de sucesso.
N.B: A lista de modelos e métodos quando a padronização é necessária, apresentada neste post, não é exaustiva.