O pré-processamento de dados é uma etapa fundamental no pipeline de aprendizado de máquina, envolvendo a preparação e transformação dos dados brutos em um formato adequado para a modelagem.
Técnicas comuns incluem a limpeza de dados, normalização, codificação de variáveis categóricas, e a criação de novas características.
Exemplo: Remover valores ausentes, normalizar dados e codificar variáveis categóricas
import pandas as pd
from sklearn.preprocessing import StandardScaler, OneHotEncoder
from sklearn.compose import ColumnTransformer
from sklearn.pipeline import Pipeline
# Criar um DataFrame de exemplo
data = {
'idade' : [ 25 , 30 , 45 , None , 50 ],
'salario': [ 50000 , 54000 , 61000 , 58000 , None ],
'cidade' : [ 'São Paulo' , 'Rio de Janeiro' , 'Belo Horizonte' , 'São Paulo', 'Rio de Janeiro' ]
}
df = pd.DataFrame(data)
# Remover linhas com valores ausentes
df = df.dropna()
# Definir colunas numéricas e categóricas
num_features = ['idade', 'salario']
cat_features = ['cidade']
# Criar transformadores para cada tipo de coluna
num_transformer = Pipeline(steps=[
('scaler', StandardScaler())
])
cat_transformer = Pipeline(steps=[
('onehot', OneHotEncoder())
])
# Combinar transformadores em um ColumnTransformer
preprocessor = ColumnTransformer(
transformers=[
('num', num_transformer, num_features),
('cat', cat_transformer, cat_features)
])
# Aplicar o pré-processamento aos dados
df_processado = preprocessor.fit_transform(df)
print(df_processado)