Projeto Final 1 - EPS7008 UFSC
Projeto Final 1 - EPS7008 UFSC
Projeto Final 1 - EPS7008 UFSC
1 Introdução 2
1.1 Objetivo Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Objetivos Específicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Estrutura do Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 Procedimentos Metodológicos 3
2.1 Estrutura e tratamento dos dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 Visualização e Análise Exploratória dos Dados . . . . . . . . . . . . . . . . . . . . . . 4
2.3 Modelagem e comunicação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3 Desenvolvimento e Resultados 5
3.1 Análise Exploratória dos Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.1.1 Carregamento e limpeza dos dados . . . . . . . . . . . . . . . . . . . . . . . . 5
3.1.2 Visualização dos dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.1.3 Limpeza dos dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2 Modelagem preditiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.2.1 Preparação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.2.2 Regressão linear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2.3 Árvore de decisão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.2.4 Random Forest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2.5 Comparação entre os modelos . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2.6 Poisson Regression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2.7 Cálculos Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4 Conclusão 25
5 Referências 26
1 INTRODUÇÃO
A intensa concorrência entre as empresas por fatias de mercado semelhantes têm forçado
as companhias a buscar novas maneiras de capturar e aumentar as participações de mercado,
reduzindo custos. Ao compreender melhor o comportamento de compra dos clientes, pode‐se criar
estratégias de marketing direcionadas que sejam mais eficazes. A tecnologia de armazenamento
de dados permitiu que as empresas organizassem e armazenassem grandes volumes de dados
de negócios em formatos possíveis de serem analisados. O amadurecimento do campo da
“inteligência artificial” criou um conjunto de técnicas de “aprendizado de máquina” que são úteis
na automatização de atividades cruciais de descoberta de padrões em bancos de dados (BOSE;
MAHAPATRA, 2001). Esse avanço na tecnologia mudou a forma como os dados de negócios são
analisados. Originou‐se assim a mineração de dados, a qual integra aprendizado de máquina, análise
estatística e técnicas de visualização, com a intuição e o conhecimento do analista de negócios,
a fim de descobrir padrões significativos e interessantes nos dados de negócios.As técnicas de
2 PROCEDIMENTOS METODOLÓGICOS
A Ciência de Dados é a área que estuda como são extraídos os conhecimentos dos dados, utilizando
técnicas de Estatística e Machine Learning para fazer previsões. As etapas do ciclo de dados tem
suas características determinadas pelo tipo de dados, pela tecnologia empregada no processo e
pela natureza do seu uso. De forma geral, pode‐se dizer que um projeto de Ciência de Dados segue
os seguintes passos (MALDONADO, 2022):
Nas seções seguintes serão detalhados os passos e decisões tomadas em cada etapa para o banco
de dados escolhido.
Neste projeto, será utilizado um dataset sobre a venda de peças de Lego, onde há registro de dados
do cliente como nome, sobrenome do cliente, idade e telefone; dados da compra, como quantidade,
ano e id; dados do produto, como tema, subtema, nome do produto, número de peças e preço.
Para realizar uma melhor visualização e análise dos dados, é necessário realizar um tratamento
para eliminar redundâncias ou informações desnecessárias para o estudo. Com isso, dados como
informações do cliente com exceção da idade, ano, ID’s foram eliminados e também foram obtidas
informações combinando dados como valor e quantidade comprada para obter a receita, caso seja
necessário. Após a limpeza dos dados, restaram as seguintes informações: tema, subtema, número
de peças, preço, quantidade vendida e receita.
É recomendável ainda realizar um exame gráfico das relações entre as variáveis analisadas, bem
como uma análise descritiva que quantifique o grau de inter‐relação entre elas, identificando assim
os possíveis outliers e presença de dados ausentes (LAURETTO, 2011).
Neste projeto, serão gerados gráficos relacionando preço e faturamento; quantidade de peças e
faturamento; tema e faturamento; subtema e faturamento, para encontrar possíveis correlações
entre as variáveis.
Machine learning (ou Aprendizado de Máquina) é um ramo da inteligência artificial (IA) que
automatiza a construção de modelos analíticos e faz uso de dados e algoritmos para imitar a
maneira como os humanos aprendem, melhorando gradualmente sua precisão. Os algoritmos
de aprendizado de máquina podem ser divididos em três grupos: Aprendizagem Supervisionada;
Aprendizagem por Reforço e Aprendizagem Não Supervisionada. Neste relatório serão explorados
apenas os modelos de aprendizagem supervisionada e não supervisionada.
Já a aprendizagem não supervisionada usa algoritmos de machine learning para analisar e agrupar
conjuntos de dados não rotulados, tentando encontrar padrões ocultos ou agrupamentos de
dados. Devido à capacidade do modelo de descobrir semelhanças e diferenças nas informações, é
muito utilizado para análise exploratória de dados, estratégias de vendas cruzadas, segmentação
de clientes, imagem e reconhecimento de padrões. Os algoritmos usados no aprendizado não
supervisionado incluem redes neurais, armazenamento em cluster de k‐médias, métodos de
armazenamento em cluster probabilístico e muito mais (IBM, 2020).
Neste projeto, serão utilizados os métodos Regressão Linear, Árvore de decisão e Random Forest
para prever o possível faturamento gerado por um produto, analisando características como tema,
subtema, quantidade de peças e preço. Para entender qual método descreverá melhor o modelo,
serão comparados os parâmetros MAE, RMSE e R2 por meio de gráficos. Aquele que apresentar o
menor parâmetro MAE, menor RMSE e maior R2 de acordo com os gráficos, será o escolhido para
calcular o modelo final.
Caso o valor de R2 na análise pelo modelo escolhido foi próximo de 1, haverão indícios de que o
modelo desenvolvido explicará bem a variabilidade dos dados de resposta.
Além dos três métodos de machine learning citados, será utilizado um 4° método supervisionado
de previsão, Os parâmetros obtidos nesse método serão comparados com os tradicionais vistos em
sala de aula, a fim de avaliar a acuracidade do modelo proposto.
3 DESENVOLVIMENTO E RESULTADOS
Nesta seção será detalhado o procedimento da análise dos dados e os resultados obtidos com essas
análises.
O Tidyverse contém inúmeros outros pacotes, mas somente os citados acima são carregados
quando o comando library(tidyverse) é acionado.
Além do Tidyverse, outro pacote importante a ser utilizado neste trabalho é o pacote Tidymodels,
cuja estrutura consiste em um conjunto de pacotes para modelagem e aprendizado de máquina
usando os princípios do Tidyverse. A partir dele é possível criar classificadores e regressores usando
algoritmos como Regressão Linear, Random Forest, Regressão Logística, entre outros modelos.
Por utilizarmos um banco de dados com dados históricos de vendas de Lego, instalaremos também
o pacote Lubridate, o qual permite a melhor manipulação de informações contendo datas. Como
ainda não exploramos as características dos nossos dados, esse pacote será carregado caso seja
necessário.
• Forcats: permite trabalhar os dados como variáveis categóricas, atribuindo níveis a essas
variáveis;
• Broom: este pacote sumariza informações‐chave sobre os modelos em tibbles usando três
funções: tidy, glance e augment, este último especialmente importante por impedir que as
colunas existentes sejam substituídas ao se adicionar colunas a um conjunto de dados.
• Knitr: por meio deste pacote, os blocos de códigos (ou chunks) em um documento R
Markdown vão conter marcação especial para indicar que devem ser interpretados pelo R.
library(tidyverse)
library(tidymodels)
library(readxl)
library(dplyr)
library(lubridate)
library(scales)
library(plotly)
library (glue)
Após carregar os dados, é importante explorar o banco de dados e visualizar quais tipos de variáveis
estão contidas nele por meio do código str().
str(lego_sales)
Nesta subseção serão plotados alguns gráficos e tabelas para que seja possível entender como as
variáveis se comportam e se correlacionam entre si.
vendas
Gear 79
Friends 56
Elves 28
Duplo 50
Disney Princess 20
Dimensions 24
DC Comics Super Heroes 35
Creator 35
Collectable Minifigures 57
Classic 1
City 65
Bionicle 46
Architecture 15
Advanced Models 5
0 30 60 90 120
Quantidade vendida
mais_vendidos
# A tibble: 25 x 2
theme quantity
<chr> <int>
1 Star Wars 117
2 Nexo Knights 93
3 Mixels 83
4 Gear 79
5 City 65
6 Ninjago 59
7 Collectable Minifigures 57
8 Friends 56
A próxima análise foi sobre o faturamento obtido com as vendas desses dez temas mais vendidos.
vendas
# A tibble: 25 x 2
theme faturamento
<chr> <dbl>
1 Star Wars 4448.
2 Ninjago 2279.
3 City 2211.
4 Nexo Knights 2209.
5 Minecraft 1550.
6 Gear 1533.
7 Friends 1279.
8 Duplo 1220.
9 Elves 1120.
10 Ghostbusters 880.
# ... with 15 more rows
Essas tabelas mostram que o faturamento não depende somente da quantidade vendida, visto que
o segundo e o terceiro temas mais vendidos não são os mesmos em segundo e terceiro lugar em
faturamento.
O gráfico seguinte mostra o faturamento por temática dos conjuntos de Lego vendidos:
vendas %>%
group_by(theme) %>%
arrange(desc(faturamento)) %>%
head(10) %>%
ggplot(aes(faturamento, theme,label=faturamento))+
geom_col(fill= "#C71585")+
geom_label()+
labs(x="Faturamento", y="Tema", title = "Faturamento dos jogos vendidos por tema")
Ghostbusters
Gear 1533.21
Friends 1279.44
Elves 1119.72
Duplo 1219.5
City 2211.35
0 1000 2000 3000 4000
Faturamento
preco_lego %>%
head(10)
Para visualizar melhor a distribuição dos preços entre os conjuntos de Lego, os dados foram
ajustados em categorias de preços, conforme apresentado na tabela a seguir.
compra_preco
# A tibble: 6 x 2
categoria_preco Quantidade
<chr> <int>
1 0-$20 580
2 $21-$50 260
3 $51-$90 70
4 $91-$120 21
5 $121-$200 11
6 acima de $200 3
Pelo resultado da tabela, constata‐se que mais da metade dos conjuntos de Lego vendidos custam
até 20 dólares. Além disso, quase 90% dos conjuntos vendidos custam até 50 dólares.
O Box‐Plot a seguir mostra a distribuição do faturamento por categoria de preços dos produtos
Lego.
grafico_precos
100
$21−$50
$51−$90
$91−$120
30
0−$20
acima de $200
10
Os blocos preenchidos com cores representam a diferença entre o primeiro e o terceiro quartil,
exemplificando a dispersão do faturamento de cada categoria de preços. As categorias possuem
uma contribuição ao faturamento bem diferente umas das outras.
Uma observação interessante de se notar, é que apesar da maior quantidade das vendas
corresponder à categoria de preços 0‐$20 (com 580 conjuntos vendidos) e $21‐$50 (com 260
conjuntos vendidos), a categoria que apresenta o maior faturamento é a “acima de $200”, a qual,
neste banco de dados, conta com três conjuntos vendidos.
grafico_precos2
categoria_preco
$121−$200
4 $21−$50
density
$51−$90
$91−$120
0−$20
2
acima de $200
0
10 30 100 300
faturamento
Outra análise considerada interessante de se realizar nesta etapa, foi mensurar o faturamento por
faixa etária dos compradores. Para isso, os dados de idade foram agrupados em categorias etárias,
conforme a tabela a seguir.
compras_idade
# A tibble: 5 x 2
categoria_idades Quantidade
<chr> <int>
1 0-18 45
2 19-25 192
3 26-35 285
4 36-50 313
5 51 e supperior 110
Diferente das categorias de preço, a quantidade de compras realizadas está melhor distribuída entre
Da mesma forma como foi feito com as categorias de preços, foi plotado um gráfico Box‐Plot
mostrando a distribuição do faturamento entre as categorias etárias.
grafico_vendas
300
categoria_idades
Faturamento
100 0−18
19−25
26−35
30 36−50
51 e supperior
10
No gráfico é possível perceber que os grupos etários de 0‐18 anos e de 19‐25 anos têm
faturamentos semelhantes. O mesmo acontece com os grupos etários de 26‐35 anos e de 36‐50
anos. De todos os grupos, o de 36‐50 anos é o que possui a maior mediana, indicando que
os clientes dessa faixa etária em propensão a gastar mais. No grupo “51 e superior”, há uma
maior dispersão no faturamento dentre todos os grupos etários analisados, mas sua mediana é
semelhante aos três primeiros grupos etários.
Outro gráfico em que é possível realizar uma comparação da distribuição do faturamento entre os
grupos etários é o gráfico de densidade.
grafico_etario
0.9
categoria_idades
0−18
density
0.6 19−25
26−35
36−50
0.3 51 e supperior
0.0
10 30 100 300
faturamento
Além de analisar o faturamento por tema, a ideia era também plotar um gráfico de faturamento
por ano, para visualizar se o faturamento aumentava ou diminuía por tema ao longo dos anos.
Entretanto, ao explorar as datas das compras antes de plotar um gráfico de linhas, constatou‐se
que o banco de dados utilizado fornece somente informações de vendas de conjuntos de Lego
realizadas no ano de 2018, impossibilitando a análise da variação do faturamento por ano.
lego_sales %>%
group_by(year) %>%
summarize(theme=n())
# A tibble: 1 x 2
year theme
<int> <int>
1 2018 674
Com os dados conhecidos, será preciso realizar uma limpeza antes da aplicação dos métodos de
Machine Learning. Como constatado durante a análise exploratória, algumas linhas das variáveis
subtema (subtheme), número de peças (pieces) possuem dados vazios. O que pode interferir no
bom funcionamento dos modelos preditivos.
Além disso, para obter uma melhor acurácia nos modelos de previsão, é interessante retirar as
variáveis que aparentemente não contribuem com o que se pretende analisar.
Neste trabalho, serão retiradas as variáveis subtema, por não estar presente em todos os dados, e
por estar intrinsecamente relacionada ao tema do conjunto de Legos. Serão retiradas as variáveis
de nomes dos conjuntos opr motivos similares aos da retirada dos subtemas.
Serão retiradas ainda as variáveis theme_id e set_id, por serem apenas utilizadas para controle dos
conjuntos de Legos vendidos no banco de dados da empresa, bem como o link para a imagem
do conjunto. Outras variáveis a serem retiradas são as relacionadas a informações pessoais dos
compradores, os chamados dados sensíveis, como número de telefone, nome e sobrenome do
cliente.
faturamento_lego %>%
head(10)
3.2.1 PREPARAÇÃO
set.seed(1234)
faturamento_split <- initial_split(faturamento_lego,prop=0.75, strata=faturamento)
faturamento_train %>%
head(10)
faturamento_test %>%
head(10)
Em seguida, será usado um procedimento chamado k‐fold cross validation ou validação cruzada,
a fim de que a robustez das estimações seja aprimorada. Além disso, a recipe criada servirá para
todas as análises.
Para validar os modelos propostos, serão usadas três métricas: R², MAE e RMSE. O R² é uma medida
estatística que mede quão próximos os dados estão da linha de regressão ajustada. Essa métrica
é conhecida ainda como o coeficiente de determinação ou o coeficiente de determinação múltipla
para a regressão múltipla.
• 0: indica que o modelo não explica nada da variabilidade dos dados de resposta ao redor de
sua média.
• 1: indica que o modelo explica toda a variabilidade dos dados de resposta ao redor de sua
média.
MAE (Erro Médio absoluto): O erro médio absoluto (MAE) é a métrica de erro de regressão que
calcula o valor dos resíduos para cada um dos pontos e, em seguida, tira a média de todos esses
resíduos.
RMSE (Raiz do Erro Quadrático Médio): é uma medida de erro absoluto que eleva os desvios ao
quadrado a fim de impedir que os desvios positivos e negativos se cancelem. Essa medida também
tende a superestimar erros grandes, o que pode ajudar a eliminar os métodos com esses erros.
A Regressão linear é um algoritmo supervisionado de machine learning usado para estimar o valor
de uma variável com base em uma série de dados históricos. Para treinar o modelo de Regressão
Linear, será utilizado o lm.
collect_metrics(lm_rs)
# A tibble: 3 x 6
.metric .estimator mean n std_err .config
<chr> <chr> <dbl> <int> <dbl> <chr>
1 mae standard 0.206 10 0.0188 Preprocessor1_Model1
2 rmse standard 0.384 10 0.0496 Preprocessor1_Model1
3 rsq standard 0.858 10 0.0181 Preprocessor1_Model1
A Árvore de Decisão lembra muito um fluxograma, pois assim como os fluxogramas, a árvore de
decisão estabelece nós (decision nodes) que se relacionam entre si por uma hierarquia previamente
estabelecida. Para treinar o modelo de Árvore de Decisão, será utilizado o rpart.
collect_metrics(tree_rs)
# A tibble: 3 x 6
.metric .estimator mean n std_err .config
<chr> <chr> <dbl> <int> <dbl> <chr>
1 mae standard 0.246 10 0.0307 Preprocessor1_Model1
2 rmse standard 0.532 10 0.120 Preprocessor1_Model1
3 rsq standard 0.796 10 0.0263 Preprocessor1_Model1
Este modelo cria várias árvores de decisão, quanto mais árvores criadas, melhores serão os
resultados do modelo, e maior o tempo necessário para o sistema rodar o modelo. Em determinado
ponto, a nova árvore criada não consegue levar a uma melhora significativa no desempenho do
modelo, então o algoritmo apresenta o resultado.
Neste trabalho, será utilizado o ranger para treinar o modelo de Random Forest.
collect_metrics(rf_rs)
# A tibble: 3 x 6
.metric .estimator mean n std_err .config
<chr> <chr> <dbl> <int> <dbl> <chr>
1 mae standard 0.179 10 0.0279 Preprocessor1_Model1
2 rmse standard 0.426 10 0.138 Preprocessor1_Model1
3 rsq standard 0.894 10 0.0176 Preprocessor1_Model1
Nesta subseção será feito um comparativo entre os três modelos aplicados, os quais foram
aprendidos em sala de aula. A comparação das variáveis R², MAE e RMSE será feita por meio de
gráficos.
resultados %>%
ggplot(aes(modelo, mean, fill=modelo))+
geom_col() +
facet_wrap(vars(.metric
), scales = "free_y")+
scale_fill_viridis_d()+
theme(axis.title.y = element_blank(),
axis.title.x = element_blank(),
legend.position = "none")
0.75
0.20
0.4
0.15
0.50
0.10
0.2
0.25
0.05
Como observado nos gráficos, ainda que não possua o menor RMSE, o modelo Random Forest
apresentou o menor MAE e maior R2 de acordo com os gráficos. Portanto, dos três modelos
aplicados até então, o Random Forest será o escolhido para calcular o modelo final.
Antes de calcular o modelo final, será avaliado o algoritmo de um quarto método de previsão
utilizando Machine Learning supervisionado, conforme solicitado no escopo deste projeto. O
modelo proposto será o Poisson Regression e será apresentado na subseção seguinte.
Para realizar o quarto modelo de previsão supervisionado, optou‐se por utilizar poisson regression
ou quasi poisson regression. Para definir qual dos modelos seria utilizado, foi feita uma análise de
grandeza dos valores de média e de variância do faturamento.
var
mean var
1 41.20862 3276.331
Visto que foi obtido 3276,33 como resultado da variância e 41,21 o resultado da média de
faturamento, optou‐se pelo modelo quasi poisson de previsão, pois a variância é muito maior que
a média dos valores de faturamento.
Inicialmente foi aplicado o modelo de previsão no dataset de treinamento, como mostra o código a
seguir.
Para realizar a análise da qualidade do modelo de previsão, utilizou‐se as métricas MAE, RMSE,
pseudoR2 e um gráfico que compara o modelo de previsão e os dados do dataset de teste.
pseudoR2
[1] 0.764963
faturamento_test %>%
mutate(residual = pred - faturamento) %>%
summarize(mae = (mean(sqrt(residual^2)))/mean(faturamento))
mae
1 0.3648393
rmse
1 0.5251102
250
200
faturamento
150
100
50
0
40 80 120 160
pred
Com isso, obteve‐se um MAE de 0,3648, RMSE de 0,5251 e pseudo R2 de 0,7650. Com base nos
resultados obtidos, podemos observar que o modelo não é muito preciso em prever o faturamento,
fato que pode ser explicado pela pequena quantidade de dados para análise, visto que esse método
é recomendado para situações de com elevada quantidade de dados de entrada.
# A tibble: 2 x 4
.metric .estimator .estimate .config
<chr> <chr> <dbl> <chr>
1 rmse standard 0.230 Preprocessor1_Model1
2 rsq standard 0.894 Preprocessor1_Model1
collect_predictions(modelo_final) %>%
ggplot(aes(faturamento, .pred)) +
geom_abline(lty = 2, color = "gray50") +
geom_point(size = 2, alpha = 0.5, color = "#e32d91") +
coord_fixed()
2
.pred
0 1 2 3
faturamento
O gráfico acima aponta uma boa correlação entre o faturamento real e a previsão calculada com o
Random Forest, indicando que o modelo proposto é adequado a este caso.
Finalmente, serão avaliadas quais das variáveis utilizadas foram mais relevantes para chegar aos
resultados obtidos com o modelo. Para isso, será utilizado o pacote vip.
library(vip)
us_price
pieces
quantity
theme_Mixels
theme_Nexo.Knights
theme_Bionicle
theme_Duplo
theme_Creator
theme_Disney.Princess
theme_DC.Comics.Super.Heroes
Portanto, de acordo com o gráfico, as variáveis preço, quantidade de peças no conjunto de Lego e
quantidade vendida foram as três variáveis mais relevantes neste modelo.
4 CONCLUSÃO
Este trabalho tinha como objetivos utilizar técnicas de estatística e Machine Learning para analisar
o comportamento das vendas de uma empresa de Lego. Pode‐se dizer que o projeto cumpriu seus
objetivos, uma vez que foram utilizados os pacotes em R para realizar a análise exploratória dos
dados, bem como o uso de modelos de Machine Learning como Regressão Linear, Árvore de Decisão
e Random Forest para prever o faturamento das vendas dos conjuntos de Lego.
Além disso, neste trabalho foi proposto um quarto método de aprendizado supervisionado para a
modelagem do problema, a Regressão de Poisson.
A partir das análises, pode‐se concluir que um bom modelo de previsão pode ser um grande aliado
de um empreendimento que busca desenvolver novos produtos e visualizar o faturamento que a
venda destes produtos trará para a empresa.
Além disso, contatou‐se que para gerar um bom modelo de previsão deve‐se ter acesso a uma base
de dados grande e completa. Aliado a isso, o tratamento dos dados foi fundamental para evitar
redundâncias e dados irrelevantes para o desenvolvimento do modelo.
Por fim, observou‐se que a base de dados poderia conter mais informações, como as vendas de
outros anos além de 2018, a localização das vendas, vendas ocorridas em outros países, entre
outros. Esses dados trariam para o modelo a capacidade de prever tendência, sazonalidades e
conferir maior precisão de previsão, relacionando as datas a eventos como lançamentos de filmes
com o mesmo tema e poder de compra da população na região, por exemplo.
5 REFERÊNCIAS
BOSE, I.; MAHAPATRA, R. K. Business data mining ‐ a machine learning perspective. Information &
Management, v. 39., p. 211‐225. 2001. Disponível em: https://doi.org/10.1016/S0378‐7206(01)
00091‐X. Acesso em: 12 dez. 2022.
IBM. Cloud Education. O que é Machine Learning? 2020. Disponível em: https://www.ibm.com/
br‐pt/cloud/learn/machine‐learning#toc‐mtodos‐de‐‐jJ9aK‐QI. Acesso em: 29 nov. 2022.
LAURETTO. Capítulo 1 ‐ Análise Exploratória de Dados. Disciplinas USP, 2011. Disponível em:
http://www.each.usp.br/lauretto/SIN5008_2011/aula01/aula1. Acesso em: 29 nov. 2022.