Projeto desenvolvido durante o evento 4º Hackday CDS (Comunidade Data Science), utilizando algoritmos de Machine Learning via Python, para solucionar um problema de classificação.
Objetivos: Simular ambiente de negócio real | Trabalho em equipe | Networking | Aceleração do conhecimento | Ferramentas
Business Problem • Business Assumptions • Solution Strategy • Top 3 Insights • Conclusion • Lessons Learned • How to use • Next Steps • References • Autor • Team • License •
A rede hoteleira espanhola Consta del Data, possui hotéis de 4 e 5 estrelas.
Com a reabertura pós-Covid, houve um aumento na taxa de cancelamento, diferente do que era esperado pelo setor. Vale ressaltar que a Espanha está entre os maiores países afetados pela pandemia e possuem mais de 10% de participação do setor de viagens em suas economias.
A empresa suspendeu ações estratégicas críticas como:
- Expansão da rede hoteleira
- Reforma das unidades com obras já programadas
- Ações de marketing direcionadas
- Desenvolver um modelo de previsão de cancelamento
- Identificar o público com menor incidência de cancelamento e reverter o cenário
- Foram desconsiderados fatores recentes como conflitos armados
- Foram desconsiderados fatores ligados a aumento de preços energéticos
- Não foram analisados acordos comerciais e aprovações orçamentárias (Na Europa ou mesmo no Mundo)
A solução do problema se dará com base no ciclo CRISP, em alguns passos que foram adaptados a metodologia. Aplicamos um modelo de Machine Learning de classificação:
- Coletando dados : coleta de dados de um dataset, disponibilizado pela organização do evento, na plataforma Kaggle.
- Limpeza dos dados : Verificação de tipos de dados e Nan's, renomear colunas, lidar com outliers.
- Feature Engineering : Apesar da criação das novas features no momento de prototipação, nenhuma se mostrou importante para o modelo.
- Exploratory Data Analysis (EDA) : Os dados foram explorados para obter experiência de negócios, buscar insights úteis e encontrar recursos importantes para o modelo de ML.
- Preparação de Dados :
- Técnica de Rescala: aplicada nos dados numéricos
- Técnica de Frequência: aplicada nos dados categóricos.
- Dados Faltantes: atribuído valor 0 (zero) nos campos que estavam com NaN.
- Seleção de features : Todas as features foram utilizadas, mesmo a avaliação de importância mostrar que algumas eram irrelevantes para o resultado final do modelo.
- Machine Learning Modeling :
- Foram treinados os algoritmos: XGBoost, SVM, Decision Tree, Random Forest e Logistic Regressor.
- Hyperparameter Fine Tunning :
- Fazer ajuste fino de hiperparâmetros para identificar o melhor conjunto de parâmetros dos algoritmos e maximizar suas capacidades de aprendizagem.
- O ajuste foi realizado nos modelos XGBoost e Random Forest, pois se mostraram mais acertivos na classificação.
- Performance do modelo :
- Calcular F1 Score (macro) de cada algoritmo treinado
- XGBoost - Média ponderada com F1 Score (dados teste): 0.9719
- O modelo apresenta boa capacidade de generalização (classificar dados inéditos)
Premissa: Os IDs são sequênciais e contínuos (não aleatórios) ,portanto, tem relação com o tempo Insight: Percebe-se que os IDs de 1 a 20000 e de 50000 a 80000 são os intervalos com maior quantidade de cancelamentos, acreditamos que pode estar diretamente relacionado a pandemia do Covid-19, períodos em que houve aumento de restrições, ou outros fatores externos que podem ter ocasionado no cancelamento de viagens e impactando nos números do Hotel.
Insight: Os clientes que cancelam o agendamento tem os valores de tempo da reserva até o check-in maior. Com isso, podem ser feitas ações com o time de marketing (comunicações) para manter o engajamento desses clientes.
Insight: Cerca de 75% das reservas canceladas não tem observação. As reservas sem observação representa o maior volume (60%) e elas representam 75% dos cancelamentos. Está informação evidência a necessidade de realizar ações para manter o engajamento deste público com sua reserva.
- O algoritmo que teve a melhor performance foi o XGBoost
- O resultado da métrica F1-Score foi de 97%
- Esse valor representa o acerto na classificação dos clientes que irão cancelar
- Em projetos com curto espaço de tempo, importante estruturar e executar um modelo o mais rápido possível, pois o resultado servirá de baseline para os próximos.
- Planejar, definir e designar bem as atividades de cada participante.
- Focar em discussões para a criação de novas features.
- Conhecer sobre o negócio e entender as features do dataset original.
- Executar o comando em ambiente local: git clone https://github.com/mbouhid/iv_hackday.git
- Instalar as bibliotecas que estão no arquivo requirements.txt
- Executar o arquivo models/model.py
As seguintes ferramentas foram usadas na construção do projeto:
- Coletar dados de outras fontes (webscrapping)
- Treinar o modelo incluindo os novos dados coletados
- Criar um modelo de ranqueamento, para identificar em real-time a propensão de cancelamento, e ações de MKT sejam executadas antes do cancelamento do cliente.
- André Luis (Minas Gerais-BR)
- Marcio Bouhid (Braga-Portugal) (https://www.linkedin.com/in/marciobouhid/)
- Michele Lopes (Itajaí-BR) (https://www.linkedin.com/in/michele-beatriz-lopes/)
- Rodrigo Cruz (Belém-BR) (https://www.linkedin.com/in/rodrigoceezar/)
- Victor Brasil (São Paulo-BR) (https://www.linkedin.com/in/victor-camilo-brasil/)
GNU General Public License v3.0