Coder Social home page Coder Social logo

lucas-penalva / classifier-learn-to-rank Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 1.98 MB

(projeto ainda não finalizado) - Este repositório contém um projeto de uma seguradora deseja começar a vender seguro de veículos para clientes que já possuem plano de saúde.

License: MIT License

Jupyter Notebook 100.00%
classification learning-to-rank lightgbm machine-learning-algorithms precision-recall random-forest xgboost

classifier-learn-to-rank's Introduction

Insurance All

hi

Problema de Negócio:

Uma companhia de seguros vende planos de saúde para seus clientes. Eles pretendem começar a vender seguros de veículos aos seus clientes, a fim de diversificar seus produtos. A empresa irá entrar em contato com esses clientes e oferecer esse novo tipo de seguro. Além disso, ela fez uma pesquisa com sua base de clientes para obter alguns dados e saber quais deles estariam interessados no seguro de veículos à fim de efetuar uma venda cruzada(cross-selling). A empresa tem disponibilidade para fazer somente duas mil ligações. Eles acreditam que uma das formas de atingir o maior número possível de clientes com a menor quantidade de chamadas é fazer um modelo de aprendizado de máquina que classifique a lista de clientes para maximizar a quantidade de serviços contratados.

I. Atributos

AtributosDescrição
idID exclusivo para cada cliente
genderGênero do cliente
ageidade do cliente
driving_licenseindica se o cliente tem carteira de motorista ou não, 0 = não tem, 1 = tem
region_codeindica o código da região do cliente
previously_insuredindica se o cliente tem um seguro de veículo ou não, 0 = não tem, 1 = tem
vehicle_ageidade do veículo
vehicle_damageindica se o veículo do cliente sofreu algum tipo de dano no passado, 0 = não sofreu, 1 = sofreu
annual_premiumquantidade de clientes que optam pagar premium no ano
policy_sales_channelcódigo anônimo para o canal de divulgação do cliente, ou seja, agentes diferentes, por correio, por telefone, pessoalmente, etc.
vintagenúmero em dias que o cliente está associado à companhia
responsese o cliente está interessado ou não, 0 = não está, 1 = está

Premissas de Negócio:

  • Cross-selling é uma técnica de vendas que envolve a venda de um produto ou serviço adicional a um cliente existente.
  • Learning To Ranking é um tipo de problema de classificação em que o objetivo é ordenar uma tabela de dados com base na probabilidade de alguns dados serem de uma classe específica.

Estratégia de Negócio:

Etapa 01 - Entedimento do problema de négocio.

Etapa 02 - Download do dataset diretamente do Kaggle.

Etapa 03 - Limpeza do conjunto de dados removendo valores discrepantes, valores NA e recursos desnecessários.

Etapa 04 - Exploração os dados (EDA) para criar hipóteses, gerar insights e validá-los.

Etapa 05 - Preparação dos dados a serem utilizados pelos algoritmos de modelagem, codificando variáveis, dividindo o conjunto de dados em treino e teste.

Etapa 06 - Criando modelos utilizando algoritmos de Machine Learning.

Etapa 07 - Avaliando os modelos criados para encontrar aquele que melhor se configura ao problema.

Etapa 08 - Ajustar o modelo para obter uma melhor performance.

Resultados:

I) Modelos de Machine Learning

O resultado final deste projeto é um modelo de classificação para ranquear a tabela. Portanto, foram criados cinco modelos: KNN (K-Nearest Neighbors), Logistic Regression, Random Forest, XGBoost e LightGBM.

Model NamePrecision at KRecall at K
Random Forest0.36630.0778
KNN0.31930.0678
Logistic Regression0.30280.0643
XGBoost0.14140.0300
LightGBM0.13340.0283

II) Final Model

Para decidir qual seria o modelo final, foi feito um cross-validation para avaliar o desempenho dos algoritmos de forma mais robusta. Essas métricas estão representadas na tabela abaixo.

Model NamePrecision at KRecall at K
LightGBM CV0.4182 +/- 0.01090.112 +/- 0.0029
XGBoost CV0.4062 +/- 0.01620.109 +/- 0.0044
Random Forest CV0.3538 +/- 0.00910.095 +/- 0.0026
KNN CV0.3104 +/- 0.01220.0832 +/- 0.0031
Logistic Regression CV0.2934 +/- 0.01290.0788 +/- 0.0033

O modelo LightGBM foi o melhor entre todos os modelos criados, portanto foi o escolhido para ser implantado. Após a escolha de qual seria o modelo final, uma otimização de hiperparâmetros de busca aleatória foi utilizada para melhorar o desempenho do modelo. As métricas de avaliação do modelo final estão na tabela abaixo.

Model NamePrecision at KRecall at K
LightGBM CV0.41 +/- 0.010.1102 +/- 0.0025

Conclusões:

O modelo quando aplicado ao conjunto de dados inicial com 381.109 clientes, incluiria 891 clientes a mais que desejam um seguro de veículo, do que 2.000 clientes selecionados aleatoriamente no banco de dados. Isso representaria um aumento de 338,78% no número de ligações bem sucedidas.

Melhorias Futuras:

  • Fazer o Deploy do modelo.
  • Adicionar novas features.
  • Explorar o dataset para encontrar mais insights.
  • Testar outros algoritmos de Machine Learning.

classifier-learn-to-rank's People

Contributors

lucas-penalva avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.