Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Reflexão sobre balanceamento de dados

Olá.

Este foi um ótimo desafio, colocando a gente para praticar do começo ao fim. Estão de parabéns!

Gostaria de tirar uma dúvida sobre a etapa de balanceamento dos dados.

Este dataset estava com um alto desbalanceamento, com 91% dos dados para a classe negativa e 9% para a positiva. Isso me levou a refletir sobre aplicação de oversampling e undersampling.

Aplicar o undersampling resultaria em eliminar muitos dados da classe negativa, o que reduziria meu conjunto de dados para treinamento. Aplicar o oversampling implicaria na criação de uma quantidade muito grande de dados sintéticos, o que poderia incluir padrões errados no treinamento. Em ambos os casos, isso poderia causar um impacto no treinamento do modelo. Minha ideia então seria seguir por um meio termo com o SMOTEENN, que faz o oversampling da classe minoritária e depois aplica um undersampling em ambas as classes para remoção de "ruído" e outliers.

Por favor, poderiam dizer se minha abordagem estaria correta? O SMOTEENN seria uma estratégia boa neste caso? Existe alguma outra estratégia que atenderia bem a este caso (pensando no resultado final ao criar um modelo)?

Já fiz essa pergunta ao Google Bard, mas como se trata um pouco mais de reflexão, estou trazendo para o fórum para receber uma resposta de quem já tem experiência na área.

Obrigado!

1 resposta
solução!

Olá, Matheus!

Ficamos felizes que tenha gostado do desafio e que esteja pensando criticamente sobre como abordar o problema do desbalanceamento de classes. Você está absolutamente correto em suas reflexões sobre as implicações do oversampling e undersampling. Ambas as técnicas têm suas vantagens e desvantagens, e a escolha entre elas depende muito do contexto específico do problema que você está tentando resolver.

Quanto à sua ideia de usar o SMOTEENN, essa é uma abordagem bastante razoável. O SMOTEENN combina duas técnicas: SMOTE (Synthetic Minority Over-sampling Technique) e ENN (Edited Nearest Neighbours). O SMOTE ajuda a aumentar a quantidade de exemplos da classe minoritária por meio da criação de exemplos sintéticos, enquanto o ENN ajuda a limpar o conjunto de dados ao remover exemplos da classe majoritária que estão perto da fronteira de decisão. Isso pode ajudar a tornar o conjunto de dados mais equilibrado e reduzir o ruído, melhorando potencialmente o desempenho do modelo.

No entanto, vale lembrar que, embora o SMOTEENN possa ser uma boa estratégia em muitos casos, ele não é uma solução perfeita e pode não ser a melhor escolha para todos os conjuntos de dados ou problemas. Por exemplo, se o conjunto de dados for muito grande, o SMOTEENN pode ser computacionalmente caro, pois envolve calcular distâncias entre exemplos. Além disso, se as classes forem muito sobrepostas, o SMOTEENN pode acabar gerando muitos exemplos sintéticos que são difíceis de classificar corretamente.

Outras estratégias que você pode considerar incluem o uso de algoritmos de aprendizado de máquina que são robustos ao desbalanceamento de classes (como árvores de decisão ou florestas aleatórias), o ajuste dos pesos das classes no algoritmo de aprendizado de máquina, ou a combinação de várias técnicas de reamostragem para criar um conjunto de dados mais equilibrado.

Em última análise, a melhor maneira de determinar qual estratégia funciona melhor para um problema específico é experimentar diferentes abordagens e comparar seus desempenhos. Portanto, eu encorajaria você a tentar o SMOTEENN e outras técnicas e ver qual delas produz os melhores resultados para o seu conjunto de dados.

Espero ter ajudado e bons estudos!