O que é pré-processamento de dados em machine learning?
O pré-processamento de dados é uma etapa fundamental em qualquer projeto de machine learning. Ele envolve a limpeza, organização e transformação de dados brutos em um formato adequado para serem usados em modelos.
Modelos de machine learning trabalham mal com dados confusos, inconsistentes ou incompletos. Para alcançar bons desempenhos, eles precisam de dados estruturados num formato consistente, com valores normalizados e livre de erros como dados ausentes e outliers (dados com valores extremos). O pré-processamento adequado realiza várias operações para garantir que os dados sejam precisos, consistentes e prontos para os processos posteriores.
Como pré-processar dados para um projeto de machine learning?
As etapas exatas de pré-processamento de dados variam de projeto a projeto. Comumente, elas podem incluir os seguintes passos:
Inspeção dos dados
Dê uma boa olhada em seus dados e para adquirir uma ideia sobre sua qualidade geral, relevância para o seu projeto e consistência. Há uma série de anomalias e problemas inerentes a quase qualquer conjunto de dados. Uma boa inspeção ajuda na identificação de problemas como dados em formatos diferentes ou incompatíveis que exigem tratamentos específicos de formatação e transformação.
Integração de dados
Esta etapa é necessária quando dados de múltiplas fontes são usados. Ela envolve a combinação de dados de várias fontes em um único conjunto de dados unificado.
Antes de realizar a integração, tenha certeza de que os dados de diferentes fontes estão em formatos compatíveis e resolva qualquer inconsistência antes de combiná-los em um único conjunto.
Limpeza de dados
A limpeza de dados envolve várias tarefas como lidar com dados ausentes, corrigir ou remover erros, inconsistências e informações irrelevantes . A limpeza é uma das etapas mais importantes do pré-processamento. Dependendo do tipo de dados com os quais você está trabalhando, há uma série de possíveis limpadores que você precisará usar em seus dados. Por exemplo, para dados na forma de textos, a remoção de erros ortográficos é importante. Já para dados numéricos, o preenchimento de dados ausentes e a remoção de valores extremos (outliers) são etapas essenciais da limpeza de dados.
Dimensionamento de recursos
Quando seus dados têm valores diferentes e até mesmo unidades de medida diferentes, pode ser difícil compará-los. O que é um quilograma em comparação a um centímetro? Se os dados de um conjunto tiverem recursos medidos em unidades diferentes (por exemplo, preço em reais e peso em quilos), o dimensionamento garante que todos os recursos contribuam igualmente para o treinamento do modelo. Sem o dimensionamento, recursos com valores maiores tendem a dominar os modelos de machine learning.
Transformação de dados
Frequentemente, durante o pré-processamento, os dados precisam ser convertidos em formatos adequados antes de serem usados em modelos de machine learning. Uma das transformações mais comuns é a atribuição de rótulos numéricos para dados categóricos (por exemplo, P=1, M=2, G=3). Essa etapa também costuma incluir engenharia de recursos.
A engenharia de recursos é o processo de transformar dados brutos em recursos mais adequados para uso em modelos de aprendizado de máquina. Ela envolve selecionar, extrair e transformar as variáveis mais relevantes dos dados disponíveis para criar recursos que podem melhorar o desempenho e a precisão dos modelos de machine learning.
Redução da dimensionalidade
A redução da dimensionalidade nem sempre é realizada durante o pré-processamento de dados. Ela pode ser importante para melhorar a precisão e a eficiência computacional de um modelo se o conjunto de dados possui muitos recursos. Ela pode ser realizada por meio métodos como a seleção de recursos e a extração de recursos. A seleção de recursos envolve a seleção de um subconjunto de recursos do conjunto de dados original mais relevante para a tarefa. Já a extração de recursos transforma recursos existentes em novos mais adequados para modelagem.
Práticas recomendadas para pré-processamento de dados
Tratamento de valores ausentes
Exclusão: se os pontos de dados com valores ausentes forem uma pequena parte dos dados, eles podem ser removidos.
Imputação: preenchimento dos valores faltantes com estimativas baseadas em outros pontos de dados (por exemplo, média, mediana). Bibliotecas como scikit-learn e pandas auxiliam muito nessa tarefa.
Transformação de dados categóricos em representações numéricas
Codificação de rótulos (label encoding): atribuição de rótulos numéricos para categorias (por exemplo, P=1, M=2, G=3).
One-Hot Encoding: Criação de um novo recurso binário para cada categoria (por exemplo, P = [1,0,0], M = [0,1,0], G = [0,0,1]).
# exemplo de codificação de dados categóricos usando scikit-learn
import pandas as pd
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
# dados ilustrativos
data = {'cor': ['vermelho', 'verde', 'azul', 'vermelho', 'verde']}
df = pd.DataFrame(data) # transforma em dataframe do pandas
# Codificação de rótulos: atribuição de rótulos numéricos
label_encoder = LabelEncoder()
df['cor_label'] = label_encoder.fit_transform(df['cor'])
print("Dados com rótulos codificados:")
print(df)
# resultados
# Dados com rótulos codificados:
# cor cor_label
# 0 vermelho 2
# 1 verde 1
# 2 azul 0
# 3 vermelho 2
# 4 verde 1
Normalização e dimensionamento
Dimensionamento Min-Max: recursos de reescalonamento para um intervalo entre 0 e 1 (ou -1 e 1).
Padronização: dimensionamento de características subtraindo a média e dividindo pelo desvio padrão.
Dimensionamento de recursos: procedimento particularmente importante quando os recursos têm unidades (por exemplo, quilo e centímetro) ou intervalos diferentes. Ele garante que todos os recursos contribuam proporcionalmente ao modelo.
Bibliotecas como NumPy, pandas ou scikit-learn podem realizar esses procedimentos.
Dicas Finais
Durante o pré-processamento de dados, explore bastante seus dados para identificar padrões, valores ausentes e possíveis outliers e escolha técnicas com base no tipo de dados e requisitos do modelo. Nem todas as técnicas são adequadas para todas as situações, por isso, a exploração ampla é fundamental.
Veja também:
O que é machine learning (aprendizado de máquina)?
Como machine learning (aprendizado de máquina) funciona?
Como machine learning (aprendizado de máquina) aprende?
Como implementar um modelo de machine learning?
Como escolher um bom modelo de machine learning?
Classificação e regressão em machine learning
O que é conjunto de dados (dataset) em machine learning?
Onde conseguir conjuntos de dados para machine learning?
Salve localmente conjuntos de dados para machine learning
Pré-processamento de dados em machine learning
Regressão Linear e Machine Learning
Conjuntos de treinamento e teste em machine learning
Função de perda em machine learning
Scikit-learn para machine learning
Matrizes de Confusão em Machine Learning
Floresta aleatória com Scikit-learn
Detecção de anomalias com Isolation Forest
Encontrou algum erro ou quer fazer uma sugestão? Por favor, entre em contato usando nosso formulário de contatos.