Muitas vezes precisamos criar um modelo para identificar a ocorrência de um evento raro, por exemplo, classificar transações fraudulentas de cartão de credito ou prever a ocorrência de doenças. Na minha opinião, eventos raros são os tipos de casos mais interessantes para se estudar, pois podemos causar melhorias de grade impacto em processos de negócio ao encontrar o modelo certo.

Não existe uma definição exata sobre o que caracteriza um evento raro em termos de percentual de ocorrência…5%? 1%? Menos de 1%? Não importa. O ponto aqui é entendermos a distribuição dos dados. O problema de eventos raros também é chamado de classes desbalanceadas (imbalanced classes).

Por exemplo, dado um dataset com 1000 observações utilizado para classificar transações fraudulentas de cartão de credito, podemos considera-lo desbalanceado e classifica-lo como evento raro se nossa variável de interesse apresentar a seguinte proporção:

Transação fraudulenta (resposta = 1) Transação normal (resposta = 0)
50 (5%) 950 (95%)

Analisando a distribuição no gráfico temos:

rare

E por que isso é um problema? Muito simples, se o objetivo do algoritmo que você está usando é alcançar a melhor acurácia, no exemplo acima podemos classificar 100% das observações como não fraude e alcançar o fantástico resultado de 95% de acerto! Frustrante, não? Nem precisamos de um modelo matemático tão apurado para conseguir acetar 95% dos casos.

De alguma forma precisamos ser capazes de prever os casos de fraude também. Aliás, é para isso que estamos construindo um modelo.

Um ponto importante a destacar aqui é que a distribuição apresentada no gráfico anterior pode ser considerada como Poisson Distribution, ao invés de Normal distribution. Isso já nos dá a primeira dica de que algoritmos adaptados para este tipo de distribuição podem ser mais eficazes para classificar os casos raros.

Já entrando no assunto de abordagens para modelar este tipo de problema, vamos as dicas (retiradas de http://machinelearningmastery.com/):

  • Colete mais dados: Se for possível, amenize o problema coletando mais informações.
  • Escolha a métrica correta para avaliar o modelo: como já dito, talvez “accuracy” não seja a melhor métrica para avaliar o modelo já que as classes estão desbalanceadas. Vale a pena testar outras métricas como precision, recall, F1 e Kappa.
  • Aplique oversampling ou undersampling: Assim como será mostrado na parte pratica deste artigo. Com oversampling são adicionadas copias de observações para repor a classe com menos ocorrência. Já com undersampling algumas observações da classe predominante são excluídas para balancear o conjunto de dados.
  • Gere amostras sintéticas: Teste métodos já conhecidos como o SMOTE (Synthetic Minority Over-sampling Technique). Será apresentado na parte pratica.
  • Tente algoritmos diferentes: Não tente usar sempre os mesmos algoritmos para resolver todos os tipos de problemas.
  • Tente aplicar Penalized Models: Este tipo de modelo acrescenta um custo para as classificações realizadas de forma errada. Desta forma o algoritmo dará mais atenção a classe de menor proporção.
  • Teste novas perspectivas: Existem campos específicos de estudos que possuem seus próprios algoritmos para fazer predições em datasets desbalanceados (por exemplo, detecção de anomalias).
  • Seja criativo: Seja efetivamente um cientista.

Certo pessoal, esse assunto tem muita teoria para estudar. Vamos parar por aqui e ir para a parte pratica.

Faça download do material sobre modelagem de eventos raros em R

Abraços.
Weslley Moura

 

Sobre o Autor: Weslley Moura

Mestre em engenharia da computação, professor de cursos relacionados a análise de dados e co-fundador da empresa Pepsoft Sistemas. Profissional apaixonado pela ciência existente nos dados e suas aplicações práticas. Nos últimos anos vem dedicando seu tempo a projetos de aprendizagem de máquina e mantém seu site pessoal com dicas e aulas relacionadas ao tema em Hacking Analytics.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

w

Conectando a %s