S05L08 – Solução da Tarefa e OneHotEncoding – Parte 02

Preparando Dados para Aprendizado de Máquina: Tratamento de Valores Faltantes, Codificação e Balanceamento

Índice

  1. Recapitulação: Fundamentos da Codificação One-Hot
  2. Tratamento de Valores Faltantes
  3. Tratando a Característica de Data
  4. Codificação One-Hot Revisada
  5. Tratamento de Dados Desbalanceados
  6. Dividindo os Dados
  7. Escalonamento de Características
  8. Conclusão

Recapitulação: Fundamentos da Codificação One-Hot

Em nossa sessão anterior, introduzimos a codificação one-hot — um método para converter variáveis categóricas em um formato adequado para algoritmos de aprendizado de máquina. Adicionamos as declarações necessárias, mas pausamos para explorar mais variáveis e conteúdo. Hoje, vamos construir sobre essa base.

Tratamento de Valores Faltantes

Identificando Dados Faltantes

Antes de codificar, é crucial garantir que seu conjunto de dados não contenha valores faltantes, o que pode levar a erros durante o treinamento do modelo. Usando pandas, podemos identificar valores faltantes da seguinte forma:

Uma soma igual a zero indica que não há valores faltantes. No entanto, se certas colunas apresentarem valores diferentes de zero, essas colunas contêm dados faltantes que precisam ser tratados.

Gerenciando Dados Faltantes Numéricos e Categóricos

Conseguimos lidar com valores faltantes em colunas numéricas usando estratégias como imputação da média ou mediana. No entanto, colunas categóricas (strings) requerem uma abordagem diferente. Para dados categóricos, o valor mais frequente é frequentemente usado para imputação. Veja como implementá-lo:

Tratando a Característica de Data

Datas podem ser complicadas, pois muitas vezes contêm valores únicos, tornando-as menos úteis para modelagem preditiva. Incluir a data inteira pode introduzir alta dimensionalidade e desacelerar seu modelo sem adicionar poder preditivo. Aqui estão algumas estratégias:

  1. Extração de Características: Extrair componentes significativos como dia e mês, descartando o ano.
  2. Codificação de Rótulos: Atribuir rótulos numéricos às datas, mas tenha cuidado, pois isso pode introduzir relações ordinais não intencionais.
  3. Codificação One-Hot: Não recomendada para datas devido à explosão no número de características.

Dadas essas dificuldades, a solução mais direta é remover a característica de data completamente se ela não for essencial para o seu modelo:

No nosso caso, com base na descrição do conjunto de dados do “Rain Prediction in Australia” do Kaggle, também excluímos a variável risk_mm para obter melhor desempenho.

Codificação One-Hot Revisada

Após lidar com valores faltantes e remover características irrelevantes, prosseguimos com a codificação one-hot:

Como esperado, o número de colunas aumenta devido ao processo de codificação, expandindo de 23 para 115 em nosso exemplo.

Tratamento de Dados Desbalanceados

Conjuntos de dados desbalanceados podem enviesar seu modelo em direção à classe majoritária, reduzindo sua capacidade de prever a classe minoritária com precisão. Veja como resolver isso:

  1. Verificar Desbalanceamento:

    Se uma classe significativamente supera a outra (por exemplo, 75% vs. 25%), o balanceamento é necessário.

  2. Upsampling da Classe Minoritária:
  3. Verificação:

Dividindo os Dados

Com os dados balanceados, prosseguimos para dividi-los em conjuntos de treinamento e teste:

Escalonamento de Características

Finalmente, padronizamos as características para garantir que cada característica contribua igualmente para o desempenho do modelo:

Nota: Ao lidar com matrizes esparsas resultantes da codificação one-hot, definir with_mean=False no StandardScaler evita erros relacionados ao centramento.

Conclusão

O pré-processamento de dados é tanto uma arte quanto uma ciência, exigindo decisões ponderadas para preparar seu conjunto de dados de forma eficaz. Ao tratar valores faltantes, codificar variáveis categóricas, gerenciar características de data e balancear seus dados, você estabelece uma base sólida para construir modelos de aprendizado de máquina robustos. Lembre-se, a qualidade dos seus dados influencia diretamente o desempenho dos seus modelos, portanto, invista o tempo e esforço necessários nestas etapas de pré-processamento.

Sinta-se à vontade para revisitar este notebook Jupyter para uma experiência prática e não hesite em entrar em contato se tiver alguma dúvida. Boas modelagens!

Partilhe o seu amor