Pré-Processamento de Dados: O que é? Por que fazer?

Ingo Reichert Junior
5 min readMar 18, 2023

--

Com a Engenharia de Atributos feita (quando necessária), agora estamos prontos para pré-processar o nosso conjunto de dados, ou seja, aplicar uma séria de técnicas de mineração de dados que irão transformar dados brutos em formatos úteis e eficientes, e assim o nosso cojunto de dados estará apto para a próxima etapa, a elaboração do nosso primeiro modelo preditivo.

Essa transformação nos dados é necessária por uma razão principal: ao aplicarmos técnicas de pré-processamento estamos elevando a qualidade dos nossos dados, influenciando diretamente no resultado do nosso modelo. É comum achar, quando o modelo desenvolvido não produz resultados de qualidade, que o problema está na escolha do algrorítmo que o gerou, quando na verdade, em muitos casos, o problema está na qualidade do nosso conjunto de dados, que pode possuir muitos valores faltantes, outliers, difrentes escalas de valores, impossbilitando qualquer modelo de trabalhar com esses dados e gerar resultados satisfatórios.

Estrururas de Dados

Antes de falarmos algumas técnicas específicas de pré-processamento de dados, é importante entender como funciona as principais estruturas de dados, pois em geral, cada estrutura exigirá maior ou menor dedicação nesta etapa.

Dados Estruturados

São dados que possuem uma organização rígida e planejada. Normalmente são “etiquetados” em linhas e colunas que identificam suas carecterísticas a respeito de um determinado assunto. Em geral, são dados que exigem um tempo menor de pré-processamento. Exemplos: planilhas excel, arquivos CSV, baco de dados relacionais.

Dados Semiestruturados

São dados que não possuem um esquema definido ou uma organização rígida. Não cabem num formato de tabela (linhas e colunas), mas são organizados de acordo com tags que permitem agrupá-los e criar hierarquias. Exemplos: Bando de nados não relacionais (NoSQL), JSON, HTML, etc.

Dados Não Estruturados

São dados que não possuem qualquer tipo de organização. Para se gerar insights a partir destes dados, é necessário um intenso trabalho de pré-processamento. Exemplos: documentos de texto, áudio, imagens, etc.

Pré-Processamento de Dados

Voltando para o pré-processamento de dados, existem basicamente 3 passos que envolvem este processo: limpeza de dados, transformação de dados e redução de dados. Cada um deles envolve diversas atividades.

Limpeza de Dados

É comum na nossa rotima de cientista de dados nos deparamos com datasets que possuem dados faltantes (missing). Existem diversas práticas para resolver este problema, mas é importante ressaltar que cada conjunto de dados e cada problema de negócio pode exigir uma estratégia diferente para lidar com dados faltantes. Uma técnica específica pode ser a melhor opção para um conjunto de dados, como pode ser a pior opção para um outro conjunto. Muitas vezes a escolha da melhor técnica exigirá um amplo entendimento do cientista de dados sobre o dataset e principalmente sobre o problema de negócio a ser resolvido. As principais técnicas são:

  • Remover os registros com atributos nulos;
  • Realizar uma média com os valores do mesmo atributo;
  • Realizar uma mediana com os valores do mesmo atributo;
  • Preencher o atributo faltante com os valores que mais ocorrem no dataset (moda);

Estas mesmas técnicas também podem ser utilziadas são somente sobre valores faltantes, mas também sobre dados incompletos, incosistentes ou inválidos.

Transformação de Dados

Na transformação de dados o foco é na conversão dos dados em um formato mais útil para a construção do modelo na próxima etapa.

Aqui podemos destacar as duas técnicas mais famosas para substituição de valores categóricos em valores numéricos, a Label Encoding e a One-Hot-Enconding.

Label Encoding

É um método recomendado para lidar com variaveis categóricas ordinais. Nós substituímos o valor categórico por um valor numérico entre 0 e o número de classes menos 1. Se o valor da variável categórica contiver 5 classes distintas usamoe (0, 1, 2, 3 e 4). Observe que os dados são modificados, mas sem perder a informação que representam.

One-Hot-Enconding

É outra técnica popular para tratar variáveis cetegóricas. Ele simplesmente cria recursos adicionais com base no número de valores exclusivos no recurso categórico. Cada valor exclusivo na categoria será adicionado como um recurso (uma nova variável). Nessa abordagem, para cada categoria de um recurso, criamos uma nova coluna com condificação binária (0 ou 1) para indicar se uma determinada linha pertence a essa categoria.

Como muitos algorítmos de machine learning exigem que os dados estejam na mesma escala e possuam uma distribuição normal padrão, outras duas técnicas extremamente importantes e amplamente utilizadas são a Normalização e a Padronização.

A normalização refere-se ao reescalonamento dos recursos para um intervalor entre 0 e 1, que é um caso especial de escalonamento mínimo-máximo.

A Padronização é usada para centralizar uma variável na média 0 com um desvio padrão 1, fazendo com que esta variável tenha os mesmos parâmetros de uma distribuição normal padrão. Diferente da normalização, a padronização não dimensiona os dados para um intervalo limitado de valores.

Redução de Dimensionalidade

A importância da redução de dimensionalidade está na sua capacidade de simplificar modelos, reduzir o tempo de treino e reduzir o overfitting.

É importante ressaltar que quando falamos de redução de dimensionalidade não estamos falando da redução do número de registros de um dataset, mas sim da redução do número de variáveis ou colunas que ele possui.

As principais ténicas para a redução da domensionalidade são:

  • Principal Compenent Analysis (PCA) (método lienar);
  • Linear Discriminant Analysis (LDA) (método linear);
  • Isomap (método não-linear);

Por mais que no começo do post eu tenha comentado que após a etapa de pré-processamento estamos aptos a ir para a etapa de modelagem, você viu que esta é uma etapa complexa e cheia de alternativas, portanto o pré-processamento é um processo cíclico, podendo ser feito e refeito diversas vezes. Não temos como saber se aplicamos a técnica de pré-processamento ideal até avaliar o resultado da etapa análise/modelagem.

Nos próximos posts vou entrar em detalhes e com exemplos práticos utilizando o scikit-learn de como trabalhamos com Label Encoding, One-Hot-Enconding, Normalização e Padronização de dados.

--

--