Você está na página 1de 22

Algoritmos para

Ciência de Dados
Material Teórico
Estudo de Caso com Análise de Dados

Responsável pelo Conteúdo:


Prof. Dr. Alberto Messias da Costa Souza
Estudo de Caso com Análise de Dados

• Introdução;
• Modelagem do Estudo de Caso;
• Elaboração das Novas Estratégias.

OBJETIVOS DE APRENDIZADO
• Introduzir o estudo de caso real de utilização de algoritmos de análise de dados e minera-
ção em uma organização real;
• Exibir o processo de implementação e execução do algoritmo apriori em stored procedure
em SQL Server e, posteriormente, analisar os resultados obtidos na organização
em questão.
Orientações de estudo
Para que o conteúdo desta Disciplina seja bem
aproveitado e haja maior aplicabilidade na sua
formação acadêmica e atuação profissional, siga
algumas recomendações básicas:
Conserve seu
material e local de
estudos sempre
organizados.
Aproveite as
Procure manter indicações
contato com seus de Material
colegas e tutores Complementar.
para trocar ideias!
Determine um Isso amplia a
horário fixo aprendizagem.
para estudar.

Mantenha o foco!
Evite se distrair com
as redes sociais.

Seja original!
Nunca plagie
trabalhos.

Não se esqueça
de se alimentar
Assim: e de se manter
Organize seus estudos de maneira que passem a fazer parte hidratado.
da sua rotina. Por exemplo, você poderá determinar um dia e
horário fixos como seu “momento do estudo”;

Procure se alimentar e se hidratar quando for estudar; lembre-se de que uma


alimentação saudável pode proporcionar melhor aproveitamento do estudo;

No material de cada Unidade, há leituras indicadas e, entre elas, artigos científicos, livros, vídeos
e sites para aprofundar os conhecimentos adquiridos ao longo da Unidade. Além disso, você tam-
bém encontrará sugestões de conteúdo extra no item Material Complementar, que ampliarão sua
interpretação e auxiliarão no pleno entendimento dos temas abordados;

Após o contato com o conteúdo proposto, participe dos debates mediados em fóruns de discus-
são, pois irão auxiliar a verificar o quanto você absorveu de conhecimento, além de propiciar o
contato com seus colegas e tutores, o que se apresenta como rico espaço de troca de ideias e
de aprendizagem.
UNIDADE Estudo de Caso com Análise de Dados

Introdução
Considerando uma empresa especializada em recuperação de crédito, que pos-
sui bases de dados com históricos de informações sobre os clientes.

O processo desta empresa funciona da seguinte forma:

O banco ou uma financeira envia os dados dos clientes a serem cobrados e eles
são inseridos no sistema de cobrança, após a inserção os dados vão para uma fila
de entrada para serem agrupados. Na prática, após importar os dados em uma
tabela, é colocado um campo indicando a situação da conta e esse campo é deno-
minado “fila”.

Em seguida é elaborada uma estratégia para a central de telemarketing ativo de


modo a fazer suas respectivas cobranças. De tempos em tempos os dados enviados
são devolvidos e as contas não são mais cobradas. A Figura 1 mostra como esse
processo funciona, a Imagem foi fornecida pela empresa que disponibilizou os da-
dos para a análise.

Figura 1 – Funcionamento do processo da organização


Fonte: Acervo do conteudista

O Discador é um software que faz as ligações para os devedores, com base nas
informações presentes nas bases de dados. As ligações são feitas através de uma
ordem pré-definida pelos gestores. Os gestores são pessoas responsáveis pela de-
finição da estratégia adotada e para as prioridades nas ligações. Diariamente são
emitidos relatórios que mostram os resultados do trabalho realizado no dia.

Critérios e estratégia atual


A estratégia adotada seleciona as contas e determina sua prioridade, estas con-
tas selecionadas são passadas para o discador obedecendo as seguintes prioridades:
• Primeiramente se prioriza cobrança pelo número de dias em atraso, cobra-se
seguindo uma ordem cronológica, dos mais novos para os mais antigos. Parte-se

8
do princípio de que o indivíduo que tem dívidas vencidas em até 15 dias tem
maior probabilidade de pagamento do que outro que está devendo a mais de
1500 dias;
• Depois se prioriza pela faixa de valor, dos valores maiores para os menores.
Essa estratégia garante a rentabilidade, pois quando é fechado um acordo de
valor mais alto se consegue maior lucro do que quando são fechados acordos
com valores baixos. Desta maneira o custo e benefício da tentativa de se nego-
ciar com esses indivíduos são melhores.

Quando se acabam as contas do discador, a fila é retomada novamente, reti-


rando apenas as contas que foram fechados os acordos, ou que tiveram devolução
solicitada pelo cliente.

Modelagem do Estudo de Caso


O foco da proposta é analisar as bases de dados de acordos e traçar o perfil dos
clientes que possuem mais chances de fechar acordo e cumpri-los e a partir desta
seleção de clientes, definir novas estratégias para a central de telemarketing ativo,
de modo a aumentar a rentabilidade do negócio da empresa.

Para isso, será usada uma base de dados de acordos gerados no passado para
três clientes, com comportamentos diversificados.

Para esse estudo de caso optou-se por usar o algoritmo Apriori com as bases de
dados, com o intuito de se gerar regras de associação com ordens de importância
diferentes, tendo em vista que na revisão de literatura foi observado que largamente
as empresas utilizam a tecnologia de Redes neurais artificiais para isto e não foram
encontrados testes e experimentos mostrando a eficiência do algoritmo Apriori
para este fim.

A partir das novas regras serão criadas novas estratégias e em seguida será medi-
do se, com a aplicação das novas estratégias foram obtidos benefícios ou prejuízos.

O processo de formulação de estratégias como um todo, passa pelas seguintes


etapas e farão parte da análise:
• As características atuais da empresa: descrição do negócio e estratégias
atuais adotadas pela organização, que representa, a análise da situação atual
da organização que forneceu os dados, mencionados na descrição de “Estudo
de caso” , na descrição do “Critério atual” e “Caracterização dos clientes”;
• Definição das metas e objetivos da aplicação no estudo de caso: represen-
ta a etapa de definição dos objetivos das novas estratégias;
• O desenvolvimento da análise feita sobre os dados fornecidos para a
determinação das estratégias: esta etapa representa o tratamento dos dados

9
9
UNIDADE Estudo de Caso com Análise de Dados

e execução do método de extração de informação usado para a criação das


novas estratégias;

• Implementação ou aplicação prática das estratégias desenvolvidas: esta


etapa representa a aplicação prática das novas estratégias no negócio da or-
ganização; e

• O acompanhamento, controle e aperfeiçoamento das estratégias desen-


volvidas: neste caso será feita uma análise dos retornos obtidos através da
aplicação das novas estratégias adotadas;

Segue a caracterização dos clientes.

Caracterização dos clientes


Os clientes escolhidos são de três segmentos diferentes, isso é bom para o estu-
do de caso, pois, serão analisados 3 tipos de comportamentos existentes. Segue a
descrição de cada dos clientes.
• Caso 1: Este cliente é uma loja que atua em todo o Brasil, fornece diversos
produtos para uso residencial, como eletrodomésticos, artigos de cama, mesa
e banho e roupas masculinas e femininas.

O principal meio de pagamento deste cliente é um boleto que é feito na


loja no ato da compra. O que é cobrado desse cliente é o boleto atrasado a
partir de 15 dias. A partir desse ponto este cliente será chamado apenas de
CLIENTE A;

• Caso 2: Este cliente é uma loja de roupas para homens e mulheres. No ato da
compra é feito um cartão de crédito e com esse cartão o cliente ganha crédito
para efetuar a suas compras naquele momento. O que é cobrado deste cliente
são os cartões emitidos na loja. A principal diferença deste cliente é faixa de
atraso que está sendo cobrada, que é a partir de 1500 dias de atraso. A partir
daqui este cliente será chamado apenas de CLIENTE B;

• Caso 3: Este cliente é uma financeira que atua na cidade de São Paulo, onde
fornece empréstimos mediante a emissão de boletos para pagamento. Para
este cliente serão cobrados os boletos que não foram pagos. A partir daqui este
cliente será apenas de CLIENTE C.

Pré-tratamento dos dados


A base de dados selecionada é de novembro de 2017 a maio de 2018. Entretan-
to, foi feito um pré-agrupamento para normalizar a base de dados em seu início e
corrigir alguns problemas como:

10
• Agrupamento dos valores;
• Agrupamento dos atrasos;
• Correção das Regiões;
• Agrupamento de faixa de idade;
• Estado Civil;
• Desprezo de alguns registros sem o Sexo;
• Armazenamento dos dados em tabelas temporárias.
• Depois do pré-tratamento foram selecionados os seguintes atributos:
• UF;
• Faixa de atraso;
• Faixa de valor;
• Quantidade de Contatos Efetuados;
• Sexo;
• Idade;
• Ocupação;
• Estado civil;
• Quantidade de Boletos Enviados;
• Quantidade de SMS enviados.

A partir deste tratamento inicial dos dados é possível a aplicação de algoritmos


para extração de informação.

Implementação do algoritmo Apriori clássico


Os dados já foram agrupados no pré-processamento, não será necessário
usar o algoritmo Apriori group, será utilizado algoritmo Apriori Clássico, ou
seja, sem nenhuma variação. Como a base de dados era muito grande, não
seria possível a utilização do software WEKA, optou-se então por implementar
uma Stored procedure no SQLSERVER que gerará as regras da mesma forma
que o Apriori geraria no WEKA, porém funciona com escala maior, para mi-
lhões de registros e diretamente integrado ao sistema de discagem automática
do telemarketing ativo.

Para funcionar os dados precisam ser importados em uma tabela chamada A.


O  código implementado na Stored procedure é apresentado logo em seguida,
porém não se preocupe em conhecer todos os comandos aqui descritos, atente-se
apenas na estrutura montada de execução do algoritmo.

11
11
UNIDADE Estudo de Caso com Análise de Dados

Código fonte da Stored Procedure

12
13
13
UNIDADE Estudo de Caso com Análise de Dados

A ideia de fazer esta stored procedure é ganhar desempenho ao se trabalhar


com base de dados muito grandes. Fazendo algumas comparações com o WEKA
foram geradas as mesmas regras, porém com um desempenho muito superior
usando a base de dados.

Não foi possível se fazer uma comparação gráfica de desempenho entre a stored
procedure criada e a execução do WEKA tendo em vista que ele não consegue
trabalhar com milhões de registro.

Geração das regras


A partir da Base de Dados com todos os dados existentes, ao se executar a
stored procedure criada, foram geradas as seguintes regras:

Regras geradas para o cliente A:

Tabela 1 – Regras gerada para o cliente A


Regra Qtde. Regra Qtde. Conf.
1. Valor= De 200 a 500 1719 Acordo=Sim 1462 0.85
2. UF=SP 3195 Acordo=Sim 2569 0.8

Regras geradas para o cliente B:

Tabela 2 – Regras geradas para o cliente B


Regra Qtde. Regra Qtde. Conf.
1. Atraso=De 2100 a 2200 1719 Acordo=Não 18165 0.93
2. Valor=1- De 200 a 500 11535 Acordo=Não 10268 0.89

Para o cliente B existem muitos registros de transações sem acordos portanto


foram geradas somente regras para “acordos = não”.

Regras geradas para o cliente C:

Tabela 3 – Regras geradas pelo cliente C


Regra Qtde. Regra Qtde. Conf.
1. Sexo=M 3174 Acordo=Não 2562 0.81
2. Atraso de 181 a 240 2360 Acordo=Não 1900 0.81
2. Sexo=F 2819 Acordo=Não 2200 0.78

Para o cliente C existiam muitos atributos iguais, então foram geradas regras
estranhas, como visto nas regras 1 e 3, “Pessoas do sexo masculino não fazem
acordo e pessoas do sexo feminino também não fazem acordo”.

Fazendo uma análise mais apurada das bases e seguindo boas práticas de análi-
se, tendo em vista que o foco era o perfil de clientes que fechariam acordos, foram
separados todos os dados que possuíam o atributo de “acordos=sim” e apenas estes
casos passaram a ser analisados, o que faz sentindo, pois o que se busca com esta
análise é traçar o perfil de clientes que fechem acordos, ou seja, os outros clientes
não são relevantes para esta análise.

14
Devido aos resultados anteriores e uma análise mais apurada da base de dados
percebeu-se que as seguintes variáveis eram irrelevantes:
• “faixa de valor”,
• “faixa de atraso”
• “faixa de idade”.

Uma exceção foi o cliente A, onde pode ser trabalhado o atributo “UF”.

Neste ponto pode-se perceber que o processo de tratamento dos dados para
análise é uma iteração conforme se observa no processo de KDD como um
todo. Com a nova análise dos dados as regras geradas pela stored procedure
foram as seguintes:

Regras geradas para o cliente A, as mais importantes são as regras destacadas:

1. Valor=0- De 0 a 200 UF=SP 843 ⇒ Acordo=Sim 747 conf:(0.89)


2. Valor=0- De 0 a 200 Atraso=6- acima de 120 839 ⇒ Acordo=Sim 742 conf:(0.88)
5. Valor=1- De 200 a 500 Atraso=2- De 31 a 120 738 ⇒ Acordo=Sim 643 conf:(0.87)
7. Atraso=6- acima de 120 1290 ⇒ Acordo=Sim 1109 conf:(0.86)
8. Idade=0- De 0 a 25 984 ⇒ Acordo=Sim 842 conf:(0.86)
10. Valor=1- De 200 a 500 1719 ⇒ Acordo=Sim 1462 conf:(0.85)
12. Idade=1- De 26 a 35 Valor=1- De 200 a 500 562 ⇒ Acordo=Sim 477 conf:(0.85)
13. Atraso=2- De 31 a 120 1566 ⇒ Acordo=Sim 1311 conf:(0.84)
14. Valor=1- De 200 a 500 UF=SP 1127 ⇒ Acordo=Sim 940 conf:(0.83)
15. Atraso=2- De 31 a 120 UF=SP 1064 ⇒ Acordo=Sim 879 conf:(0.83)
16. Idade=2- De 36 a 45 1110 ⇒ Acordo=Sim 913 conf:(0.82)
17. Idade=1- De 26 a 35 1534 ⇒ Acordo=Sim 1252 conf:(0.82)

Regras geradas para o cliente B:

1. Idade=1- De 25 a 30 774 ⇒ Valor=1- De 200 a 500 405 conf:(0.52)


2. Valor=1- De 200 a 500 1267 ⇒ Atraso=3- De 2100 a 2200 618 conf:(0.49)
3. Idade=2- De 30 a 35 631 ⇒ Atraso=3- De 2100 a 2200 306 conf:(0.48)
4. Idade=2- De 30 a 35 631 ⇒ Valor=1- De 200 a 500 296 conf:(0.47)
5. Idade=1- De 25 a 30 774 ⇒ Atraso=3- De 2100 a 2200 358 conf:(0.46)
6. Atraso=3- De 2100 a 2200 1355 ⇒ Valor=1- De 200 a 500 618 conf:(0.46)
7. Valor=2- De 500 a 1000 832 ⇒ Atraso=3- De 2100 a 2200 368 conf:(0.44)
8. Valor=1- De 200 a 500 1267 ⇒ Idade=1- De 25 a 30 405 conf:(0.32)
9. Atraso=3- De 2100 a 2200 1355 ⇒ Valor=2- De 500 a 1000 368 conf:(0.27)
10. Atraso=3- De 2100 a 2200 1355 ⇒ Idade=1- De 25 a 30 358 conf:(0.26)
11. Valor=1- De 200 a 500 1267 ⇒ Idade=2- De 30 a 35 296 conf:(0.23)
12. Atraso=3- De 2100 a 2200 1355 ⇒ Idade=2- De 30 a 35 306 conf:(0.23)

15
15
UNIDADE Estudo de Caso com Análise de Dados

Regras geradas para o cliente C:

1. Parcelas=4-acima de 7 324 ⇒ atraso=7-de 241 a 300 261  conf:(0.81)


2. Valor=5-acima de 2000 263 ⇒ atraso=7-de 241 a 300 152  conf:(0.58)
3. Valor=5-acima de 2000 263 ⇒ Parcelas=4-acima de 7 149  conf:(0.57)
4. Parcelas=3-de 6 a 7 381 ⇒ atraso=6-de 181 a 240 210  conf:(0.55)
5. Idade=2-de 31 a 40 318 ⇒ atraso=7-de 241 a 300 161  conf:(0.51)
6. Valor=3-de 1000 a 1500 288 ⇒ atraso=7-de 241 a 300 135  conf:(0.47)
7. Parcelas=4-acima de 7 324 ⇒ Valor=5-acima de 2000 149  conf:(0.46)
8. Atraso=7-de 241 a 300 571 ⇒ Parcelas=4-acima de 7 261  conf:(0.46)
9. Atraso=6-de 181 a 240 460 ⇒ Parcelas=3-de 6 a 7 210  conf:(0.46)
10. Idade=3-de 41 a 50 316 ⇒ atraso=6-de 181 a 240 135  conf:(0.43)
11. Idade=3-de 41 a 50 316 ⇒ atraso=7-de 241 a 300 129  conf:(0.41)
12. Valor=2-de 500 a 1000 314 ⇒ atraso=6-de 181 a 240 123  conf:(0.39)
13. Atraso=6-de 181 a 240 460 ⇒ Idade=3-de 41 a 50 135  conf:(0.29)
14. Atraso=7-de 241 a 300 571 ⇒ Idade=2-de 31 a 40 161  conf:(0.28)
15. Atraso=6-de 181 a 240 460 ⇒ Valor=2-de 500 a 1000 123  conf:(0.27)
16. Atraso=7-de 241 a 300 571 ⇒ Valor=5-acima de 2000 152  conf:(0.27)
17. Atraso=7-de 241 a 300 571 ⇒ Valor=3-de 1000 a 1500 135  conf:(0.24)
18. Atraso=7-de 241 a 300 571 ⇒ Idade=3-de 41 a 50 129  conf:(0.23)

Os ganhos obtidos ao se executar o algoritmo com os novos conjuntos de atribu-


tos e instâncias da base de dados foram os seguintes:
• Foram geradas regras mais relevantes para as bases; e
• Foram encontrados valores de confiança das regras mais próximas da realidade.

Elaboração das Novas Estratégias


Baseando-se nas regras geradas foram criadas novas estratégias, para isto foram
utilizadas as regras que tiveram maiores valores de confiança. O objetivo é verificar
se os resultados operacionais serão melhores.

As estratégias elaboradas para os respectivos clientes ficaram da seguinte forma:

Estratégia elaborada para o Cliente A


A fila de discagem deverá obedecer às seguintes prioridades:
• Primeiramente débitos com valores de 0 a 200, independente da faixa de atraso;
• Valores entre 200 e 500, com atraso de 31 a 120 dias;
• Faixa etária entre 0 e 25 anos;

16
• Depois débitos acima de 120 dias;
• Depois faixa etária entre 26 a 35 anos; e
• Depois o restante total da base.

Estratégia elaborada para o Cliente B


Para o cliente B, o comportamento foi diferente, o que já era esperado, pois
se tratam de produtos totalmente diferentes. Eliminando as regras aparentemente
inúteis, ficaram as seguintes:
• Faixa de atraso de 2100 a 2200 com valores entre 200 e 500;
• Valores entre 200 e 500;
• Valores entre 500 e 1000; e
• Faixa etária ascendente, pelo que o algoritmo mostra, pessoas mais novas pagam
melhor que as pessoas mais velhas.

Estratégia elaborada para o Cliente C


Com as regras expostas anteriormente, foi elaborada a seguinte estratégia:
• Maior Atraso para o menor atraso;
• Valor a partir de 500 reais, pois valores menores são menos rentáveis;
• Faixa etária acima de 31 anos.

Análise do estudo de caso


Os resultados de taxas de acerto anterior à análise de dados com as estratégias
anteriores fornecidos pela empresa eram as seguintes:

Taxa de acerto Cliente A:

Figura 2 – Taxa de acerto Cliente A


Fonte: Acervo do conteudista

17
17
UNIDADE Estudo de Caso com Análise de Dados

Taxa de acerto cliente B:

Figura 3 – Taxa de acerto Cliente B


Fonte: Acervo do conteudista

Taxa de acerto Cliente C:

Figura 4 – Taxa de acerto Cliente C


Fonte: Acervo do conteudista

Os testes foram feitos durante uma semana do mês 06/2018.

A validação foi feita da seguinte maneira:


• Foram selecionados três operadores que tinham os piores resultados em cada
carteira, ou seja, que fechavam poucos acordos em cada carteira;
• Foram aplicadas as novas estratégias somente a estes operadores durante
uma semana;
• No final do teste foram contabilizadas as quantidades de acordos que foram
fechados durante o período.

18
Com a nova estratégia foram obtidos os seguintes resultados, comparados com
a média da Taxa de Acerto anterior, já mencionada:

Tabela 4 – Resultados
Cliente Taxa de Acerto Média da Taxa de Acerto Anterior
Cliente A 84,66% 77,92%
Cliente B 77,22% 43,27%
Cliente C 31,22% 16,81%

Comparando com o melhor resultado de todos os meses, no cliente A foram


feitos menos acordos, no cliente B e no cliente C os resultados foram melhores.

Pelo pouco tempo que se pode observar as novas estratégias tiveram melhor de-
sempenho do que as anteriores, porém seria interessante aplicá-las com uma quan-
tidade maior de operadores e em um período maior de tempo, embora os gráficos
obtidos mostraram melhor desempenho, mesmo com operadores que não tinham
bom rendimento com os clientes analisados. A próxima etapa seria de refinamentos
nas estratégias definidas.

Pode-se observar através do estudo de caso, que o uso de algoritmos de análi-


se de dados e mineração, obedecendo adequadamente os processos de análise e
implementação de projetos dessa natureza, aliada ao conhecimento do negócio ao
qual se está aplicando e, com a segurança de experimentação em menores escalas
podem trazer ganhos reais para as organizações, sobretudo melhores desempe-
nhos operacionais. A correta escolha da técnica de mineração é extremamente
importante para o projeto e negócio, por isso, um cientista de dados deve conhecer
diversos algoritmos e técnicas de experimentações.

19
19
UNIDADE Estudo de Caso com Análise de Dados

Referências
AGRAWAL, R.; SRIKANT, R. Fast Algorithms for Mining Association Rules;
IBM Almaden Research Center; California, USA, 1994.

GILLMEISTER, P. R. G., CAZELLA, S. C. Uma análise comparativa de algorit-


mos de regras de associação: minerando dados da indústria automotiva, Univer-
sidade do Vale do Rio dos Sinos – UNISINOS; Rio Grande do Sul, 2007.

OLIVEIRA, D. De P. R., Planejamento estratégico – conceitos, metodologia,


práticas, 22.ed, São Paulo: Atlas, 2005.

RIBEIRO, M. X., VIEIRA, MARINA T.; TRAINA, AGMA, J. M., Mineração de


Regras de Associação usando Agrupamentos, Universidade Federal de São
­Carlos, São Carlos; Universidade de São Paulo, São Carlos; Universidade Meto­
dista de Piracicaba, Piracicaba, São Paulo, 2005.

SCHEFFER, T. Finding association rules that trade support optimally against


confidence, In: PKDD 2001: principles of data mining and knowledge discovery,
European conference on principles of data mining and knowledge discovery.
N. 5, 20011973, v. 2168, pages. 424-435.

20

Você também pode gostar