Estratégias eficazes para lidar com conjuntos de dados desbalanceados
O desbalanceamento de dados é um problema crítico no contexto de aprendizado de máquina e mineração de dados. Ele surge quando há uma quantidade significativamente menor de instâncias em uma classe em comparação com outra, o que pode prejudicar o desempenho da maioria dos algoritmos de machine learning que são projetados para trabalhar com conjuntos de dados balanceados.
O objetivo deste artigo é esclarecer como esse problema ocorre e apresentar abordagens para resolvê-lo. Ao abordar esse problema, podemos melhorar a capacidade de generalização dos modelos de aprendizado de máquina e torná-los mais úteis na prática.
Como os dados tornam-se desbalanceados, e qual a consequência?
O desbalanceamento de dados pode ser uma característica intrínseca de alguns problemas, como em análises de fraudes de cartão de crédito, em que é esperado que haja uma quantidade maior de transações legítimas do que indevidas. No entanto, em outros casos, a desigualdade na distribuição dos dados pode estar relacionada a problemas na coleta de dados, como custo, privacidade, entre outros fatores.
Independentemente da causa do desbalanceamento, ele pode introduzir desafios significativos na avaliação e treinamento de modelos de machine learning. Por exemplo, a métrica de avaliação pode estar enviesada em favor da classe majoritária, levando a conclusões equivocadas e desfavorecendo a classe minoritária.
Além disso, algoritmos de machine learning, como árvores de decisão, análise discriminante e redes neurais, são projetados para trabalhar com conjuntos de dados balanceados, o que pode resultar em um limite de decisão enviesado em favor da classe majoritária e aumentar a probabilidade de classificação incorreta das instâncias de classes minoritárias (Nguyen, et al., 2009).
Outro problema relacionado ao desbalanceamento é o impacto do ruído nas classes minoritárias, uma vez que os algoritmos de machine learning podem ter a tendência de tratar essas instâncias como ruído e, assim, subestimá-las ou descartá-las durante o treinamento do modelo. Ademais, o tamanho do conjunto de dados é um fator importante a ser considerado na construção de um bom classificador, pois a falta de exemplos pode tornar difícil descobrir regularidades em classes pequenas. Em geral, quanto mais dados de treinamento estiverem disponíveis, menos sensíveis serão os classificadores em relação às diferenças entre as classes.
Para lidar com o desbalanceamento de dados, diversas abordagens têm sido propostas, como a reamostragem dos dados, o ajuste de pesos, a utilização de algoritmos especializados em lidar com dados desbalanceados, entre outras técnicas. Essas abordagens visam melhorar a qualidade do modelo, aumentando a precisão na classificação de instâncias de classes minoritárias e, consequentemente, o desempenho geral do modelo em tarefas de aprendizado de máquina, e serão discutidas a seguir.
Abordagens
Abordagem baseada em reconhecimento
A abordagem baseada em reconhecimento é uma solução alternativa para lidar com o desbalanceamento de dados em que o classificador é modelado nos exemplos de uma única classe, geralmente a classe minoritária, na ausência de exemplos da classe majoritária. Essa abordagem pode ser útil quando a classe minoritária é de interesse especial, como em casos de detecção de fraude, detecção de anomalias ou diagnósticos médicos raros.
No entanto, é importante observar que a abordagem baseada em reconhecimento não pode ser aplicada a muitos algoritmos de aprendizado de máquina, como árvores de decisão, Naive Bayes e classificação associativa, pois esses classificadores não são construídos apenas a partir de amostras de uma classe. Além disso, a abordagem baseada em reconhecimento pode levar a um desempenho insatisfatório em problemas de classes desbalanceadas em que a classe minoritária é complexa.
Cost-sensitive
O aprendizado sensível ao custo é uma abordagem que leva em consideração o custo de uma classificação incorreta durante a construção do modelo de aprendizado de máquina. Essa abordagem tem como objetivo produzir um classificador que minimize o custo total de classificação, em vez de apenas maximizar a precisão geral do modelo e se aproveita do fato de que as consequências de uma classificação incorreta podem ter diferentes custos, e que é mais caro classificar erroneamente uma instância de verdadeiro positivo do que de verdadeiro negativo.
Uma técnica comum de aprendizado sensível ao custo é a árvore de decisão sensível ao custo. Nessa técnica, cada nó da árvore é dividido com base no custo de classificação incorreta, em vez de apenas maximizar a pureza da divisão. Isso pode resultar em árvores de decisão mais equilibradas e com melhor desempenho em relação à classe minoritária.
No entanto, é importante observar que o cost-sensitive pode levar a overfitting durante o treinamento (Weiss, 2004), especialmente quando o custo de classificação incorreta é baseado em dados de treinamento. Além disso, a definição adequada dos custos de classificação incorreta pode ser desafiadora e pode variar dependendo do contexto de aplicação.
Amostragem
A amostragem é uma técnica comumente utilizada para lidar com o desbalanceamento de dados em problemas de aprendizado de máquina. Essa técnica tem como objetivo pré-processar os dados de treinamento para minimizar a discrepância entre as classes, modificando as distribuições no conjunto de treinamento.
Existem duas técnicas de amostragem: undersampling e oversampling. A técnica de undersampling extrai um conjunto menor de instâncias majoritárias enquanto preserva todas as instâncias minoritárias. Essa técnica é adequada para aplicações em larga escala, onde o número de amostras majoritárias é muito grande. No entanto, é importante observar que descartar dados pode levar à perda de instâncias informativas da classe majoritária e degradar o desempenho do classificador.
Já a técnica de oversampling aumenta o número de instâncias minoritárias replicando-as. Nesse caso, não há perda de informação, mas criar novos dados pode levar a um custo computacional maior (Chawla et al., 2004).. Além disso, se algumas amostras de classes pequenas contiverem erros, adicioná-los irá deteriorar o desempenho da classificação na classe minoritária.
Existem diversos algoritmos de amostragem que podem ser aplicados em diferentes contextos, dependendo das características do conjunto de dados e dos objetivos de aprendizado. Alguns exemplos de algoritmos são o Cluster Centroids, que é uma técnica de undersampling em que a classe majoritária é agrupada em clusters e, em seguida, exemplos de cada cluster são selecionados aleatoriamente até que o conjunto de dados esteja equilibrado, e o SMOTE (Synthetic Minority Over-sampling Technique), que é uma técnica de oversampling amplamente utilizada em problemas de classificação em que a classe minoritária é significativamente menor do que a classe majoritária.
É importante ressaltar que a escolha da melhor distribuição de classes irá depender das medidas de desempenho específicas do problema e pode variar de um conjunto de dados para outro. Além disso, a combinação de undersampling e oversampling pode ser uma opção viável para equilibrar o conjunto de dados e melhorar o desempenho do modelo em problemas de classes desbalanceadas.
Conclusão
Nesse artigo, vimos como ocorre e quais as consequências do desbalanceamento de dados em datasets. Analisamos os principais problemas em relação ao classificador e vimos abordagens úteis a fim de solucionar ou minimizar tal questão, como a abordagem baseada em reconhecimento, o cost-sensitive e a amostragem.
Não deixe de conferir o último artigo publicado: Detectando padrões de fraude em transações de cartão de crédito com Machine Learning.