Descubra como o oversampling pode equilibrar classes desbalanceadas em problemas de aprendizado de máquina. Conheça métodos eficazes para melhorar o desempenho de modelos com dados desbalanceados.
O que é Oversampling?
O oversampling é o processo de aumentar a quantidade de dados da classe minoritária até atingir um equilíbrio desejado entre as classes. O objetivo é fazer com que o modelo tenha uma quantidade similar de exemplos de cada classe durante o treinamento. Isso permite que o modelo não seja tendencioso para a classe majoritária simplesmente por ter muito mais exemplos dela. Equilibrando as classes, espera-se que o modelo generalize melhor para ambas.
- Oversampling é essencial para lidar com dados desbalanceados em problemas de aprendizado de máquina.
- O objetivo é equilibrar as classes aumentando a quantidade de exemplos da classe minoritária.
- Ao equilibrar as classes, o modelo tende a generalizar melhor para ambas as classes.
- O balanço entre classes é medido pela razão entre a classe minoritária e majoritária, com um balanço de 1 indicando que as classes têm o mesmo tamanho.
Exemplo Visual de Dados Desbalanceados
Para ilustrar dados desbalanceados, considere o seguinte gráfico com duas classes. A classe azul (target 0) tem muito mais exemplos do que a classe laranja (target 1), prejudicando potencialmente o desempenho do modelo na pequena classe laranja. Foi gerado um gráfico com as mesmas classes balanceadas a 50%, mostrando que mais exemplos da classe laranja foram gerados até haver uma distribuição equilibrada entre azul e laranja.
- Dados desbalanceados ocorrem quando há uma diferença significativa entre as classes minoritárias e majoritárias no conjunto de dados.
- O desbalanceamento pode prejudicar o desempenho do modelo na classe minoritária.
- A ilustração visual demonstra claramente o desbalanceamento entre as classes.
- A geração de mais exemplos da classe minoritária resulta em uma distribuição equilibrada entre as classes.
Métodos de Oversampling
Existem duas abordagens principais para fazer oversampling: Sample Extraction e Synthetic Data Generation. A primeira abordagem extrai aleatoriamente observações da classe minoritária e as replica até atingir o balanceamento desejado. Já a segunda abordagem envolve a criação de dados sintéticos para a classe minoritária, como o método SMOTE (Synthetic Minority Over-sampling Technique).
- Sample Extraction envolve a replicação de observações da classe minoritária até atingir o balanceamento desejado.
- Synthetic Data Generation cria dados sintéticos para a classe minoritária, como o método SMOTE.
- O método SMOTE é uma técnica popular de oversampling que cria exemplos sintéticos da classe minoritária.
- Ambas as abordagens têm o objetivo de equilibrar as classes durante o treinamento do modelo.
Sample Generation
Gera novas observações a partir dos dados existentes da classe minoritária. Técnicas como SMOTE e ADASYN se encaixam nesta categoria, criando dados sintéticos com base nos casos reais. Dentro da sample generation, há dois subtipos: Uso de todas observações e Uso de observações de fronteira. Veremos com mais detalhes algumas dessas técnicas mais adiante.
- Técnicas de geração de amostras são essenciais para lidar com desequilíbrios de classe em conjuntos de dados
- SMOTE e ADASYN são técnicas populares que geram dados sintéticos com base nos casos reais da classe minoritária
- Existem dois subtipos de sample generation: uso de todas as observações e uso de observações de fronteira
Motivação para Oversampling
O oversampling busca equilibrar as classes para reduzir o viés do modelo para a classe majoritária. Isso ocorre porque com dados muito desbalanceados, há poucos exemplos da classe minoritária, dificultando o aprendizado do modelo sobre ela. Além disso, métricas como acurácia podem ser enganosas e o modelo pode não generalizar bem para a minoria.
- O oversampling equilibra as classes para reduzir o viés do modelo para a classe majoritária
- Dados desbalanceados dificultam o aprendizado do modelo sobre a classe minoritária
- Métricas como acurácia podem ser enganosas em conjuntos de dados desbalanceados
Técnicas de Oversampling
Agora que entendemos a motivação e ideia geral do oversampling, vamos explorar com mais detalhes algumas técnicas específicas.
- A compreensão das técnicas de oversampling é essencial para lidar com desequilíbrios de classe em conjuntos de dados
Random Oversampling
Uma das formas mais simples é o random oversampling. Ele funciona selecionando aleatoriamente casos da classe minoritária e os replicando até atingir o balanceamento desejado.
- Random oversampling é uma técnica simples que replica aleatoriamente casos da classe minoritária
SMOTE (Synthetic Minority Oversampling Technique)
Proposto em 2002, SMOTE é uma técnica de oversampling muito popular e efetiva. Ao invés de replicar casos minoritários como o random oversampling, o SMOTE gera novos exemplos sintéticos.
- SMOTE é uma técnica de oversampling popular e efetiva que gera novos exemplos sintéticos
SMOTE: uma técnica de oversampling
O algoritmo do SMOTE funciona selecionando um caso minoritário aleatoriamente e encontrando seus k vizinhos mais próximos também da classe minoritária. Em seguida, escolhe aleatoriamente um desses k vizinhos e cria uma nova observação sintética ao longo do segmento de reta entre o caso inicial e seu vizinho escolhido. Esse processo é repetido até balancear as classes. O parâmetro k controla o quão local ou global é a geração de novos casos, sendo um k menor significa casos mais similares aos originais, enquanto um k maior adiciona mais diversidade.
- SMOTE é um algoritmo de oversampling que funciona gerando novos casos sintéticos para balancear classes desiguais em conjuntos de dados.
- O algoritmo seleciona casos minoritários aleatoriamente e encontra seus vizinhos mais próximos, gerando novas observações sintéticas ao longo do segmento de reta entre o caso inicial e seu vizinho escolhido.
- O parâmetro k controla o quão local ou global é a geração de novos casos, sendo um k menor significa casos mais similares aos originais, enquanto um k maior adiciona mais diversidade.
ADASYN: uma abordagem adaptativa
O ADASYN é similar ao SMOTE, porém, em vez de escolher aleatoriamente, ele se foca nos casos mais difíceis de serem aprendidos pelo modelo. Utiliza um classificador provisório para identificar quais casos da minoria têm maior probabilidade de serem classificados incorretamente e prioriza a geração de mais exemplos similares a esses casos difíceis através da interpolação. Dessa forma, o ADASYN adapta a quantidade de casos sintéticos gerados de acordo com o grau de dificuldade das observações originais, melhorando o desempenho geral.
- O ADASYN é uma abordagem de oversampling que se concentra nos casos mais difíceis de serem aprendidos pelo modelo.
- Utiliza um classificador provisório para identificar quais casos da minoria têm maior probabilidade de serem classificados incorretamente e prioriza a geração de mais exemplos similares a esses casos difíceis através da interpolação.
- Adapta a quantidade de casos sintéticos gerados de acordo com o grau de dificuldade das observações originais, melhorando o desempenho geral.
A importância do oversampling
O oversampling é uma poderosa técnica para lidar com desbalanceamento de classes em dados. Ao expandir a quantidade de observações da classe minoritária, consegue-se melhorar o desempenho do modelo nessa classe normalmente prejudicada. Existem diversas técnicas, desde simples replicação aleatória de casos até geração sofisticada de novos dados sintéticos. Métodos mais avançados como SMOTE e ADASYN conseguem criar exemplos onde o modelo mais precisa, nas regiões de fronteira.
- O oversampling é uma técnica poderosa para lidar com desbalanceamento de classes em dados.
- Ao expandir a quantidade de observações da classe minoritária, consegue-se melhorar o desempenho do modelo nessa classe normalmente prejudicada.
- Existem diversas técnicas de oversampling, desde simples replicação aleatória de casos até geração sofisticada de novos dados sintéticos.
Conclusão
O oversampling é uma habilidade crucial para construir modelos de aprendizado de máquina robustos mesmo na presença de dados desbalanceados. Utilize esse conhecimento para melhorar o desempenho de seus modelos!