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

[Dúvida] [Spark-Classificação][Árvore de decisão]

Boa tarde,

No exemplo da aula o professor utilizou alguns algoritimos como Regressão Logística, Árvore de decisão e Random Forest a fim de obter uma previsão de clientes Churn e Não-Churn. No exemplo da aula a base estava bem distribuída entre as 2 categorias acima, dessa forma, os modelos puderam aprender os padrões e retornar resultados satisfatórios.

Contudo, e se essa distribuição de categorias fosse em um cenário em que teríamos clientes Não-Churn - 10.000 e clientes Churn - 250? Meu objetivo é identificar justamente clientes Churn, contudo , a minha amostra para essa classe é baixa. Quais sugestões eu poderia fazer?

Acredito que balancear as amostras para obter o cenário de: Não-Churn - 250 e Churn - 250 acabaria impactando na aprendizagem dos modelos.

1 resposta
solução!

Olá Lucas, tudo bem?

Entendo sua preocupação, é realmente um desafio quando temos um desequilíbrio de classes em nossos dados, como no caso que você mencionou com muitos mais clientes Não-Churn do que Churn. Esse curso cobre bem a questão de desbalanceamento dos dados: https://cursos.alura.com.br/course/classificacao-validacao-modelos-metricas-avaliacao

Porém, existem algumas estratégias que você pode considerar:

  1. Oversampling da classe minoritária: Nesse caso, você aumentaria a quantidade de amostras da classe Churn em seus dados de treinamento. Isso pode ser feito de várias maneiras, como duplicando amostras ou criando novas amostras sintéticas (por exemplo, usando uma técnica chamada SMOTE).

  2. Undersampling da classe majoritária: Aqui, você reduziria a quantidade de amostras da classe Não-Churn em seus dados de treinamento. Isso pode ser útil se você tiver uma quantidade muito grande de dados e não se importar em perder alguma informação. Mas sim isso pode gerar um impacto negativo na resposta.

  3. Uso de métricas de avaliação adequadas: Quando temos um desequilíbrio de classes, a acurácia pode não ser uma boa métrica para avaliar o desempenho do modelo. Em vez disso, você pode querer usar outras métricas, como a área sob a curva ROC (AUC-ROC), precisão, recall, ou a média harmônica entre precisão e recall (F1-score).

  4. Uso de algoritmos de aprendizado de máquina que lidam bem com classes desbalanceadas: Alguns algoritmos, como árvores de decisão e florestas aleatórias (Random Forest), podem lidar relativamente bem com classes desbalanceadas. Você pode também considerar o uso de algoritmos que são especificamente projetados para lidar com classes desbalanceadas, como o XGBoost.

  5. Ajuste dos pesos das classes: Alguns algoritmos de aprendizado de máquina permitem que você atribua pesos diferentes para diferentes classes. Isso pode ser útil se você quiser que o algoritmo dê mais atenção à classe Churn.

Lembre-se, é importante experimentar diferentes abordagens e avaliar qual funciona melhor para o seu caso específico. Espero ter ajudado e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software