Relatório de Negócios de Mineração de Dados Hansraj Yadav
Relatório de Negócios de Mineração de Dados Hansraj Yadav
Relatório de Negócios de Mineração de Dados Hansraj Yadav
NEGÓCIOS DE
MINERAÇÃO DE
DADOS
1|Página
HANSRAJ YADAV
LOTE PGPDSBA JAN'2020
CONTEÚDO
1. Objetivo............................................................................................................... 3
2. Problema 1: Agrupamento .........
a) Suposições............................................................................................. 4
b) Importação de Pacotes ............ 4
c) Solução 1.1 ............
d) Solução 1.2 .........
e) Solução 1.3 ............
f) Solução 1.4 ............
g) Solução 1.5 .........
3. Problema 2: CART, RF, ANN ...............
a) Suposições............................................................................................. 18
b) Importação de Pacotes ............ 18
c) Solução 2.1 ............
d) Solução 2.2 .........
e) Solução 2.3 ............
f) Solução 2.4 ............
g) Solução 2.5 .........
2|Página
OBJETIVO DO PROJETO
Problema 1: Clustering
Um banco líder quer desenvolver uma segmentação de clientes para oferecer ofertas
promocionais aos seus clientes. Eles coletaram uma amostra que resume as atividades dos
usuários durante os últimos meses. Você recebe a tarefa de identificar os segmentos com
base no uso do cartão de crédito.
1.1. Realizar Análise Exploratória de Dados no conjunto de dados e descrevê-lo
brevemente.
1.2. Para justificar se o dimensionamento é necessário para o agrupamento nesse caso.
1.3. Para executar clustering hierárquico para dados dimensionados e identificar o
número de clusters ótimos usando Dendrogram e descrevê-los brevemente.
1.4. Para executar o clustering K-Means em dados dimensionados e determinar clusters
ótimos. Aplique a curva de cotovelo e o escore de silhueta.
1.5. Descrever perfis de cluster para os clusters definidos e recomendar diferentes
estratégias promocionais para diferentes clusters.
Problema 2: CART-RF-ANN
Uma empresa de seguros que fornece seguro turístico está enfrentando maior frequência
de sinistros. A gestão decide coletar dados dos últimos anos. Você recebe a tarefa de criar
um modelo que preveja o status da declaração e forneça recomendações ao
gerenciamento. Use CART, RF E ANN e compare o desempenho dos modelos em conjuntos
de trem e teste.
2.1. Para ler o conjunto de dados e realizar as estatísticas descritivas e fazer a verificação
da condição de valor nulo e escrever uma inferência sobre ele.
2.2. Para dividir os dados em teste e treinamento, construa o modelo de classificação
CART, Floresta Aleatória e Rede Neural Artificial.
2.3. Verificar o desempenho das Previsões em conjuntos de Trem e Teste utilizando
Precisão, Matriz de Confusão, Plot curva ROC e obter ROC_AUC pontuação para cada
modelo.
3|Página
2.4. Comparar todos os modelos e fazer uma inferência sobre qual modelo é
melhor/otimizado.
2.5. Para fornecer insights e recomendações de negócios.
PROBLEMA 1: CLUSTERING
SUPOSIÇÕES
O conjunto de dados que nos é fornecido é armazenado como
"bank_marketing_part1_Data.csv", que contém dados de 210 clientes e 7 variáveis, a saber:
current_balance Valor do saldo deixado na conta para fazer compras (em 1000s)
IMPORTANDO PACOTES
Para importar o conjunto de dados e realizar a Análise Exploratória de Dados no conjunto de
dados fornecido, importamos os seguintes pacotes:
4|Página
SOLUÇÕES
1.1 Realizar Análise Exploratória de Dados no conjunto de dados e descrevê-
lo brevemente.
Importando o conjunto de dados
A estrutura do conjunto de dados pode ser calculada usando a função .info ().
5|Página
Resumo do conjunto de dados
O resumo do conjunto de dados pode ser calculado usando a função .describe ().
Os valores ausentes ou "NA" precisam ser verificados e descartados do conjunto de dados para
facilitar a avaliação e valores nulos podem dar erros ou disparidades nos resultados. Os valores
ausentes podem ser calculados usando a função .isnull().sum().
6|Página
Conforme calculado a partir do comando acima, o conjunto de dados não tem nenhum valor nulo ou
NA.
Análise Univariada
Os histogramas são plotados para todas as variáveis numéricas usando a função sns.displot () do
pacote seaborn.
7|Página
Boxplots de variáveis para verificar Outliers
8|Página
Inferência: Depois de plotar os Boxplots para todas as variáveis, podemos concluir que alguns
outliers estão presentes na variável, a saber, min_payment_amt o que significa que há apenas
alguns clientes cujo valor mínimo de pagamento cai no lado mais alto em média. Como apenas uma
das sete variáveis tem um valor atípico muito pequeno, portanto, não há necessidade de tratar os
outliers. Este pequeno valor não criará qualquer diferença na nossa análise.
Podemos concluir pelos gráficos acima que a maioria dos clientes em nossos dados tem uma maior
capacidade de gastos, alto saldo corrente em suas contas e esses clientes gastaram um valor maior
durante um único evento de compras. A maioria dos clientes tem maior probabilidade de fazer o
pagamento integral ao banco.
Análise Multivariada
Agora vamos plotar um Mapa de Calor ou Matriz de Correlação para avaliar a relação entre
diferentes variáveis em nosso conjunto de dados. Este gráfico pode nos ajudar a verificar quaisquer
correlações entre diferentes variáveis.
9|Página
Inferência: De acordo com o Mapa de Calor, podemos concluir que as seguintes variáveis estão
altamente correlacionadas:
Com isso podemos concluir que os clientes que estão gastando muito alto possuem um saldo
corrente maior e alto limite de crédito. Os pagamentos antecipados e o gasto máximo feito em
compras individuais são feitos pela maioria dos clientes que têm saldo corrente alto em suas contas
bancárias.
A probabilidade de pagamentos integrais é maior para aqueles clientes que têm um limite de crédito
maior.
O valor mínimo de pagamento não está correlacionado a nenhuma das variáveis, portanto, não é
afetado por quaisquer alterações no saldo atual ou limite de crédito dos clientes.
10 | P á g i n a
Com a ajuda do gráfico de pares acima, podemos entender as tendências univariadas e bivariadas
para todas as variáveis no conjunto de dados.
11 | P á g i n a
1.2 Justificar se o dimensionamento é necessário para o agrupamento neste
caso
Dimensionamento de recursos ou padronização é uma técnica para algoritmos de Machine Learning
que ajuda no pré-processamento dos dados. Ele é aplicado a variáveis independentes, o que ajuda a
normalizar os dados em um intervalo específico. Se o dimensionamento de recursos não for feito,
um algoritmo de aprendizado de máquina tende a pesar valores maiores, mais altos e considerar
valores menores como os valores mais baixos, independentemente da unidade dos valores.
Para os dados que nos são fornecidos, o escalonamento é necessário, pois todas as variáveis são
expressas em diferentes unidades, como gastos em 1000, pagamentos antecipados em 100 e limite
de crédito em 10000, enquanto a probabilidade é expressa como valores fracionários ou decimais.
Uma vez que os outros valores expressos em unidades superiores superarão as probabilidades e
podem dar resultados variados, portanto, é importante dimensionar os dados usando o Standard
Scaler e, portanto, normalizar os valores onde as médias serão 0 e o desvio padrão 1.
12 | P á g i n a
1.3 Para executar clustering hierárquico para dados dimensionados e
identificar o número de clusters ótimos usando Dendrogram e descrevê-los
brevemente.
Para criar um Dendrogram usando nossos dados dimensionados, primeiro importamos o pacote
dendrogram, linkage de scipy.cluster.hierarchy. Usando esta função, criamos um dendrograma que
mostra dois clusters muito claramente. Agora, vamos verificar a composição desses dois
13 | P á g i n a
aglomerados usando 'maxclust' e 'distance'. Como pode ser visto de cima, agora tomaremos 2
clusters para nossa análise mais aprofundada.
14 | P á g i n a
Os dois métodos acima mostram os clusters designados que são atribuídos a cada um dos clientes.
Segregamos os dois clusters usando dois métodos do pacote fcluster.
15 | P á g i n a
De acordo com o gráfico acima, ou seja, dentro do método da soma dos quadrados (wss), podemos
concluir que o número ótimo de agrupamentos a serem tomados para o agrupamento k-means é 3,
uma vez que, de acordo com o método do cotovelo, pode ser facilmente visto na curva que após 3 a
curva fica plana
De acordo com o gráfico de Escores médios de silhuetas, pode-se observar que o maior escore
médio é correspondente a k=3. Assim, de acordo com ambos os métodos, ou seja, dentro da soma
de quadrados e do método da silhueta, podemos concluir que o número ótimo de k ou
agrupamentos que precisa ser tomado para agrupamento k-means é 3.
16 | P á g i n a
As pontuações de silhuetas e larguras de silhuetas são calculadas usando silhouette_samples e
silhouette_score pacote de sklearn.metrics. A pontuação média das silhuetas está chegando a ser de
0,400 e a pontuação mínima das silhuetas é de 0,002. O escore de silhueta varia de -1 a +1 e quanto
maior o escore de silhueta, melhor o agrupamento.
Agora, o passo final é identificar os clusters que criamos usando clustering hierárquico e cluster K-
means para nossa análise de segmento de mercado e elaborar estratégias promocionais para os
diferentes clusters. A partir da análise acima, identificamos 2 clusters de agrupamento hierárquico e
3 clusters ótimos de agrupamento k-means. Vamos agora analisar e determinar a melhor abordagem
de agrupamento que pode ser útil para o problema de segmentação de mercado em mãos. Primeiro,
plotaremos e mapearemos os clusters a partir de ambos os métodos.
AGRUPAMENTO
17 | P á g i n a
AGRUPAMENTO K-
Agora, na tabela abaixo, tabulamos as médias para todas as variáveis dos cinco clusters criados a
partir do agrupamento acima usando métodos hierárquicos e K-means. De acordo com os valores,
podemos segmentar os clusters em dois para clusters Hierárquicos e três segmentos para clusters K-
means.
Segmentos
Cluster Hierárquico 1: Este segmento possui maior gasto por mês, saldo corrente elevado e limite de
crédito. Esta é a classe Próspera ou Alta com renda majoritariamente mais alta. Esse segmento pode
ser segmentado por meio de diversas ofertas, como cartões com recompensas e pontos de
fidelidade para cada gasto.
Cluster Hierárquico 2: Esse segmento tem menor gasto por mês com saldo corrente baixo e limite
de crédito menor. Essa é a classe média de baixa renda. Esse segmento pode ser alvo de cartões que
possuem juros mais baixos para incentivar mais gastos.
K-means Cluster 0: Este segmento tem o menor gasto por mês, menor saldo corrente e limite de
crédito. Esta é a classe financeiramente estressada com renda muito baixa em média. Esse
segmento pode ser segmentado com cartões com ofertas como cobrança zero de anuidade e com
benefícios como cupons gratuitos ou ingressos e isenções em diversos lugares.
K-means Cluster 1: Este segmento tem maiores gastos por mês, saldo corrente elevado e limite de
crédito. Esta é a classe Próspera ou Alta com renda majoritariamente mais alta. Esse segmento pode
ser segmentado por meio de diversas ofertas, como cartões com recompensas e pontos de
fidelidade para cada gasto.
K-means Cluster 2: Este segmento tem menor gasto por mês com saldo corrente baixo e limite de
crédito menor. Essa é a classe média de baixa renda. Esse segmento pode ser alvo de cartões que
possuem juros mais baixos para incentivar mais gastos.
18 | P á g i n a
VARIÁVEIS Gastos Adiantam Probabilid Saldo Limite Pagamen Max
entos ade de atual de to gasto em
pagament crédito mínimo compras
o total Amt individua
is
PROBLEMA 2: CART-RF-ANN
SUPOSIÇÕES
O conjunto de dados que nos é fornecido é armazenado como "insurance_part2_data.csv"
que contém dados de 3000 clientes e 10 variáveis, a saber:
19 | P á g i n a
IMPORTANDO PACOTES
Para importar o conjunto de dados e realizar a Análise Exploratória de Dados no conjunto de
dados fornecido, importamos os seguintes pacotes:
SOLUÇÕES
2.1 Para ler o conjunto de dados e executar as estatísticas descritivas e fazer
a verificação de condição de valor nulo e escrever uma inferência sobre ele.
20 | P á g i n a
Estrutura do conjunto de dados
O resumo do conjunto de dados pode ser calculado usando a função pd.describe ().
Os valores ausentes ou "NA" precisam ser verificados e descartados do conjunto de dados para
facilitar a avaliação e valores nulos podem dar erros ou disparidades nos resultados. Os valores
ausentes podem ser calculados usando a função .isnull().sum().
21 | P á g i n a
Conforme calculado a partir do comando acima, o conjunto de dados não tem nenhum valor nulo ou
NA.
Neste conjunto de dados, "Agency_Code" é a coluna que não pode ser usada para nossa análise.
Portanto, vamos descartar esta coluna usando a função .drop().
Análise Univariada
Os histogramas são plotados para todas as variáveis numéricas usando a função sns.displot () do
pacote seaborn.
22 | P á g i n a
Os gráficos de barras são plotados para todas as variáveis categóricas usando a função
sns.countplot() do pacote seaborn.
23 | P á g i n a
Boxplots de variáveis para verificar Outliers
24 | P á g i n a
Inferência: Depois de plotar os Boxplots para todas as variáveis numéricas, podemos concluir que
um número muito alto de outliers está presente nas variáveis a saber, Idade, Commissão, Duração e
Vendas , o que significa que precisamos tratar esses valores atípicos para prosseguir com nossa
construção e análise do modelo, pois esses valores podem criar erros e podem se desviar dos
resultados reais.
Podemos concluir pelos gráficos acima que a maioria dos clientes que fazem uma reclamação em
nossos dados pertencem à faixa etária de 25-40 anos, com o tipo de empresa de Agência de Turismo
sendo Agência de Viagens, Canal sendo Online, Nome do Produto sendo Plano Personalizado e
Destino sendo Ásia.
Análise Multivariada
Agora vamos plotar um Mapa de Calor ou Matriz de Correlação para avaliar a relação entre
diferentes variáveis em nosso conjunto de dados. Este gráfico pode nos ajudar a verificar quaisquer
correlações entre diferentes variáveis.
Conforme interpretado a partir do mapa de calor acima, não há correlação ou é extremamente baixa
entre as variáveis fornecidas no conjunto de dados.
25 | P á g i n a
2.2. Para dividir os dados em teste e treinamento, construa o modelo de
classificação CART, Floresta Aleatória e Rede Neural Artificial.
26 | P á g i n a
Modelo CART
Árvores de Classificação e Regressão (CART) são um tipo de árvores de decisão usadas na
mineração de dados. É um tipo de Técnica de Aprendizagem Supervisionada onde o resultado
previsto é uma discreta ou classe (classificação) do conjunto de dados ou o resultado é de
natureza contínua ou numérica (regressão).
Para a criação do Modelo CART foram importados dois pacotes, a saber, "DecisionTreeClassifier"
e "tree" do sklearn.
27 | P á g i n a
Usando o pacote GridSearchCV da sklearn.model_selection identificaremos os melhores
parâmetros para construir uma árvore de decisão regularizada. Assim, fazendo algumas
iterações com os valores, obtivemos os melhores parâmetros para construir a árvore de decisão,
que são os seguintes:
Esses melhores parâmetros de grade passam a ser usados para construir a árvore de decisão
regularizada ou podada.
28 | P á g i n a
árvore regularizada é armazenada como um arquivo de ponto, ou seja,
claim_tree_regularised.dot e pode ser visualizada usando webgraphviz no navegador.
Floresta aleatória
Random Forest é outra Técnica de Aprendizado Supervisionado usada em Machine Learning que
consiste em muitas árvores de decisão que ajudam nas previsões usando árvores individuais e
seleciona a melhor saída delas.
29 | P á g i n a
Usando esses melhores parâmetros avaliados usando GridSeachCV é criado um Modelo de Floresta
Aleatória que é posteriormente usado para avaliação de desempenho do modelo.
Em primeiro lugar, teremos que dimensionar os dois conjuntos de dados usando o pacote Standard
Scaler.
30 | P á g i n a
Usando esses melhores parâmetros avaliados usando GridSeachCV é criado um Modelo de Rede
Neural Artificial que é posteriormente usado para avaliação de desempenho do modelo.
Modelo CART
Relatório de Classificação
31 | P á g i n a
Matriz de confusão
32 | P á g i n a
Pontuação do modelo
Matriz de confusão
33 | P á g i n a
Escore AUC_ROC e Curva ROC
34 | P á g i n a
Matriz de confusão
35 | P á g i n a
2.4. Comparar todos os modelos e fazer uma inferência sobre qual modelo é
melhor/otimizado.
Modelo CART
Floresta aleatória
Redes Neurais
Insights:
A partir da tabela acima, comparando os avaliadores de desempenho do modelo para os três
modelos, fica bastante claro que o Modelo de Floresta Aleatória está tendo um bom desempenho
em comparação com os outros dois, pois tem alta precisão para dados de treinamento e teste e
embora o Escore AUC seja o mesmo para todos os três modelos para dados de treinamento, mas
para dados de teste é o mais alto para o Modelo de Floresta Aleatória. Escolher o Modelo de
Floresta Aleatória é a melhor opção neste caso, pois exibirá muito menos variância em comparação
com uma única árvore de decisão ou uma Rede Neural de várias camadas.
36 | P á g i n a
2.5. Para fornecer insights e recomendações de negócios.
Para o problema de negócios de uma empresa de seguros que fornece seguro de turismo,
tentamos fazer alguns modelos de dados para previsões de probabilidades. Os modelos que
são tentados são a saber, CART ou Árvores de Classificação e Regressão, Floresta Aleatória e
Rede Neural Artificial (MLP). Os três modelos são então avaliados em conjuntos de dados de
treinamento e teste e suas pontuações de desempenho do modelo são calculadas.
A Precisão, Precisão e Pontuação F1 são calculadas usando o Relatório de Classificação. A
matriz de confusão, os escores AUC_ROC e o gráfico ROC são computados para cada modelo
separadamente e comparados. Todos os três modelos tiveram um bom desempenho, mas
para aumentar nossa precisão na determinação das reivindicações feitas pelos clientes,
podemos escolher o Modelo de Floresta Aleatória. Em vez de criar uma única árvore de
decisão, ela pode criar várias árvores de decisão e, portanto, pode fornecer o melhor status
de declaração a partir dos dados.
Como visto a partir das medidas de desempenho do modelo acima, para todos os modelos,
ou seja, CART, Random Forest e ANN tiveram um desempenho excepcionalmente bom.
Assim, podemos escolher qualquer um dos modelos, mas escolher o Modelo de Floresta
Aleatória é uma ótima opção, pois mesmo que eles exibam a mesma precisão, mas escolher
o modelo de Floresta Aleatória em vez de Carrinho é muito melhor, pois eles têm muito
menos variância do que uma única árvore de decisão.
37 | P á g i n a