Escolar Documentos
Profissional Documentos
Cultura Documentos
TCC Bruno Sousa Ciência Dados 2021 Final
TCC Bruno Sousa Ciência Dados 2021 Final
Belo Horizonte
2021
Bruno Sousa Cavalcante Barroso
Belo Horizonte
2021
SUMÁRIO
1. Introdução .............................................................................................................. 4
1.1. Contextualização ................................................................................................ 4
1.2. O problema proposto ......................................................................................... 5
2. Coleta de Dados .................................................................................................... 6
3. Processamento/Tratamento de Dados ................................................................ 9
4. Análise e Exploração dos Dados ....................................................................... 18
5. Criação de Modelos de Machine Learning ........................................................ 28
6. Apresentação dos Resultados ........................................................................... 39
7. Links ..................................................................................................................... 42
REFERÊNCIAS ......................................................................................................... 43
4
1. Introdução
1.1. Contextualização
Durante o processo de aquisição de bens e serviços, clientes e fornecedores
firmam uma relação de consumo. Estas relações podem possuir números distintos
de interações entre as partes, podendo ser um simples ato de escolher o produto,
pagar no caixa e levar, até um conjunto de atos que envolvem conhecer o bem, tirar
dúvidas, pedir informações a respeito, agendar datas para reuniões com outras
partes envolvidas e estabelecer prazos para cumprimento de obrigações, até
finalmente efetivar-se a compra.
Independentemente do volume de interações dentro da relação de consumo,
existe um fator crucial para que um estabelecimento comercial consiga, nos dias de
hoje, manter a sua sobrevivência: a fidelização de clientes.
Estima-se que 65% dos negócios vêm de clientes fiéis, e não de novos.
Fidelizar é tornar nosso produto ou serviço tão irresistível que nosso cliente, quando
precisar de mais, irá imediatamente pensar em nós. (GONÇALVES, 2007)
Fidelizar é importante porque os clientes fiéis são mais propensos a pagar
mais pelos nossos produtos e serviços, tendem a comprar mais e também estão
mais inclinados a comprar outros itens e usufruir de outros serviços que a empresa
oferece. (GONÇALVES, 2007)
Todavia, não se trata de uma tarefa fácil. O consumidor está cada vez mais
exigente, ponderando variáveis como tempo de atendimento, qualidade do produto,
se este veio de acordo com o solicitado, atendimento do vendedor, preço, e até
mesmo a comparação com outro concorrente, na avaliação final do estabelecimento
como um todo. E com o advento do e-commerce, a sensibilidade das avaliações
ficou ainda mais acentuada, pois até o simples fato de uma página web não carregar
apenas em um determinado momento pode passar para o consumidor o sentimento
de péssima experiência.
Pandas;
OS;
Numpy;
Regex;
Datetime;
Seaborn;
MatPlotLib;
NLTK;
string;
sklearn;
6
wordcloud;
yellowbrick;
KaggleApi
2. Coleta de Dados
avaliação
order_id Identificador único do String
pedido
review_score Intervalo de notas de 1 a 5 Int
dado pelo consumidor no
momento da pesquisa de
satisfação
review_comment_title Título do comentário String
deixado pelo consumidor,
referente à avaliação
dada, em Português
review_comment_message Comentário do String
consumidor, referente à
avaliação dada, em
Português.
review_creation_date Data em que a pesquisa Date
de satisfação foi enviada
ao consumidor.
review_answer_timestamp Data da resposta à Date
pesquisa de satisfação.
3. Processamento/Tratamento de Dados
Inicialmente, utilizou-se o script abaixo, para criar um DataFrame para cada
um dos arquivos utilizados.
10
olist_orders_dataset.csv
Devido ao objetivo deste trabalho, que tem como intuito prever avaliações a serem
dadas pelos clientes baseado no comentário registrado, não foram localizadas
informações suficientes para o tratamento de missing values alusivos a este tipo de
análise, a não ser a mera exclusão dos registros onde a informação a ser analisada
esteja nula. Antes disso, porém, verificou-se, no dataset de avaliações, se havia
alguma avaliação com o campo de título preenchido e o campo da mensagem não
preenchido. Foram encontrados 1.729 registros, cujo valor do campo
14
Figura 13 – Comando para preencher, onde couber, os registros nulos de comentários, com o valor
do título da mensagem, se disponível
Figura 14 – Comando para remoção de duplicatas, caso existente, deixando o registro mais recente
Figura 16 – Comando para verificar se “customer_id” pertence apenas aos estados da federação
16
Por fim, foi feita a cópia do dataframe para um outro, para não se perder os
dados brutos, e os registros onde “review_comment_message” estavam nulos foram
apagados.
stopwordsnltk = nltk.corpus.stopwords.words('portuguese')
Figura 22 – Comando para criação de dataframe com tamanho das mensagens – nota 5
Figura 25 – Comando para criação de dataframe com tamanho das mensagens – nota 1
22
MultinomialNB
GaussianNB
LogisticRegression
BernoulliNB
Vetorização
Classificação BOW TFIDF
Acurácia Precisão Recall F1-Score Acurácia Precisão Recall F1-Score
MultinomialNB 47,75% 43,28% 43,94% 42,04% 47,55% 41,54% 40,33% 36,74%
GaussianNB 26,23% 29,66% 28,81% 20,01% 26,77% 29,95% 29,43% 20,99%
LogisticRegression 48,33% 43,60% 43,17% 45,54% 49,48% 45,64% 44,34% 43,33%
BernoulliNB 44,37% 40,34% 40,59% 39,38% 44,38% 40,34% 40,59% 39,37%
Figura 57– Cálculo da médias das classes minoritárias e aplicação do número para separação de
amostra de classes majoritárias
Percebe-se, pelo exposto, que houve uma queda abrupta na acurácia dos al-
goritmos, com exceção do GaussianNB. Em contrapartida, houve melhora nas taxas
de acurácia, precisão e f1-score, significando, portanto, que de fato havia necessi-
dade de praticar o balanceamento na base.
7. Links
REFERÊNCIAS
SINGH, Prasoon. Fundamentals of Bag Of Words and TF-IDF Disponível em: <
https://medium.com/analytics-vidhya/fundamentals-of-bag-of-words-and-tf-idf-
9846d301ff22>. Acesso em: 14/04/2021
TAMAIS, Ana Laura Morais. Modelos de Predição | Naive Bayes Disponível em: <
https://medium.com/turing-talks/turing-talks-16-modelo-de-predi%C3%A7%C3%A3o-
naive-bayes-6a3e744e7986>. Acesso em: 19/04/2021