33
Maxwell Lincoln Dantas da Silva Aprendizado de Máquina e Engenharia de Atributos em Predição de Vendas CRUZ DAS ALMAS - BAHIA 2019

Aprendizado de Máquina e Engenharia de Atributos em

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Aprendizado de Máquina e Engenharia de Atributos em

Maxwell Lincoln Dantas da Silva

Aprendizado de Máquina e Engenharia deAtributos em Predição de Vendas

CRUZ DAS ALMAS - BAHIA

2019

Page 2: Aprendizado de Máquina e Engenharia de Atributos em

Maxwell Lincoln Dantas da Silva

Aprendizado de Máquina e Engenharia de Atributos em

Predição de Vendas

Trabalho monográfico apresentado para ob-tenção do grau de bacharel em ciênciasexatas e tecnológicas.

Universidade Federal do Recôncavo da Bahia - UFRB Bacharelado em CiênciasExatas e Tecnológicas

Orientador: Ramon Pereira Lopes

CRUZ DAS ALMAS - BAHIA

2019

Page 3: Aprendizado de Máquina e Engenharia de Atributos em

Maxwell Lincoln Dantas da SilvaAprendizado de Máquina e Engenharia de Atributos em Predição de Vendas/

Maxwell Lincoln Dantas da Silva. – CRUZ DAS ALMAS - BAHIA, 2019-32p. : il. p&b.

Orientador: Ramon Pereira Lopes

Monografia (Graduação) – Universidade Federal do Recôncavo da Bahia - UFRBBacharelado em Ciências Exatas e Tecnológicas, 2019.

1. Aprendizado de Máquina. 2. Engenharia de Atributos. 3. Predição deVendas. I. Ramon Lopes. II. Universidade Federal do Recôncavo da Bahia. III.Título

Page 4: Aprendizado de Máquina e Engenharia de Atributos em
Page 5: Aprendizado de Máquina e Engenharia de Atributos em

Agradecimentos

Aos meus pais, pelo amor, incentivo e apoio incondicional.

Ao professor orientador Ramon Pereira Lopes, pela confiança e dedicaçãodurante a elaboração deste trabalho.

A todos os professores, que além de me instruírem como estudante, foram fortespilares para a formação dos meus valores éticos e morais como ser humano.

Page 6: Aprendizado de Máquina e Engenharia de Atributos em

“Nós só podemos ver um pouco do futuro, maso suficiente para perceber que há muito a fazer”

(Alan Turing)

Page 7: Aprendizado de Máquina e Engenharia de Atributos em

Resumo

Uma das aplicações do aprendizado de máquina é a predição, que se mostra eficaz emproblemas de diversas áreas. Visando melhorar o desempenho na tarefa de prediçãodos algoritmos supervisionados, é investigada neste trabalho a utilização de atributos deatraso através de técnicas de engenharia de atributos. Para criação do modelo preditivofoi utilizado o algoritmo Extreme Gradient Boosting, implementado pela bibliotecaXGBoost em Python3. Experimentos realizados sobre dados reais disponibilizados poruma companhia russa de lojas entre os anos de 2013 e 2015 mostram que a utilizaçãodos atributos de atraso fornece resultados 23% superiores.

Palavras-chave: Aprendizado de Máquina. Engenharia de Atributos. Predição deVendas. Extreme Gradient Boosting.

Page 8: Aprendizado de Máquina e Engenharia de Atributos em

Abstract

One of the applications of machine learning is prediction, which proves effective inproblems in many areas. In order to improve performance in the prediction task of su-pervised algorithms, we investigated the use of lag features through feature engineeringtechniques. To create the predictive model the Extreme Gradient Boosting algorithm,implemented by the XGBoost library in Python3, was used. Experiments conducted onreal data provided by a Russian store company between 2013 and 2015 show that theuse of lag features yields 23 % higher results.

Keywords: Machine Learning. Feature Engineering. Sales Prediction. Extreme GradientBoosting.

Page 9: Aprendizado de Máquina e Engenharia de Atributos em

Lista de ilustrações

Figura 1 – Matriz de Confusão . . . . . . . . . . . . . . . . . . . . . . . . . . . 17Figura 2 – Boxplot para item_price . . . . . . . . . . . . . . . . . . . . . . . . . 22Figura 3 – Boxplot para item_cnt_day . . . . . . . . . . . . . . . . . . . . . . . 22Figura 4 – Histograma para item_category_id . . . . . . . . . . . . . . . . . . . 23Figura 5 – Histograma para shop_id . . . . . . . . . . . . . . . . . . . . . . . . 23Figura 6 – Matriz de Correlação . . . . . . . . . . . . . . . . . . . . . . . . . . . 24Figura 7 – Itens Vendidos em 2013 . . . . . . . . . . . . . . . . . . . . . . . . . 25Figura 8 – Itens Vendidos em 2014 . . . . . . . . . . . . . . . . . . . . . . . . . 25Figura 9 – Itens Vendidos em 2015 . . . . . . . . . . . . . . . . . . . . . . . . . 26Figura 10 – Decaimento do RMSE – Dataset 2 . . . . . . . . . . . . . . . . . . . 29Figura 11 – Importância dos Atributos . . . . . . . . . . . . . . . . . . . . . . . . 30

Page 10: Aprendizado de Máquina e Engenharia de Atributos em

Lista de tabelas

Tabela 1 – Melhores Parâmetros . . . . . . . . . . . . . . . . . . . . . . . . . . 29Tabela 2 – Desempenho dos Modelos . . . . . . . . . . . . . . . . . . . . . . . 30

Page 11: Aprendizado de Máquina e Engenharia de Atributos em

Lista de abreviaturas e siglas

AM Aprendizado de Máquina

RMSE Root Mean Square Error

Page 12: Aprendizado de Máquina e Engenharia de Atributos em

Sumário

1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2 FUNDAMENTAÇÃO TEÓRICA . . . . . . . . . . . . . . . . . . . . . 132.1 Aprendizado de Máquina . . . . . . . . . . . . . . . . . . . . . . . . 132.1.1 Aprendizado Supervisionado . . . . . . . . . . . . . . . . . . . . . . . 142.1.2 Regressão Linear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.1.3 Árvores de Decisão . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.1.4 Floresta Aleatória . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.2 Overfitting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.3 Métricas de Desempenho . . . . . . . . . . . . . . . . . . . . . . . . 162.3.1 Matriz de Confusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.3.2 Root Mean Square Error . . . . . . . . . . . . . . . . . . . . . . . . . 172.4 Análise Exploratória . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.5 Engenharia de Atributos . . . . . . . . . . . . . . . . . . . . . . . . 182.5.1 Engenharia de Atributos para Séries Temporais . . . . . . . . . . . . 18

3 MATERIAIS E MÉTODOS . . . . . . . . . . . . . . . . . . . . . . . . 203.1 Definição do Problema . . . . . . . . . . . . . . . . . . . . . . . . . 203.2 Análise Exploratória do Dataset . . . . . . . . . . . . . . . . . . . . 203.3 Engenharia de Atributos . . . . . . . . . . . . . . . . . . . . . . . . 263.3.1 Criação de Atributos . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.3.1.1 Atributos de Atraso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.4 Criação do Modelo Preditivo . . . . . . . . . . . . . . . . . . . . . . 273.5 Resultados e Discussões . . . . . . . . . . . . . . . . . . . . . . . . 30

4 CONCLUSÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314.1 trabalhos futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

Referências . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

Page 13: Aprendizado de Máquina e Engenharia de Atributos em

12

1 Introdução

O crescimento exponencial da tecnologia e da Internet das coisas trouxe consigoum grande volume de dados. Esses dados muitas vezes contêm informações valiosase precisam ser pré-processados e explorados para extração de conhecimento útil.Uma das formas de se aproveitar as informações dos dados é através do aprendizadode máquina, que consiste em estruturar algoritmos para buscar padrões, regras ourelações entre variáveis, para, assim, aprender com os dados e escolher a melhorresposta, saída ou decisão para novas entradas.

Faceli et al. (2011) e Grus (2018) sugerem que a engenharia de atributos e oestudo do conjunto de dados são importantes para o aprendizado de máquina. Todavia,a manipulação dos dados depende muito de sua estrutura, fazendo com que a melhorforma de tratamento varie muito de um problema para outro. Portanto, procura-se, nestetrabalho, uma forma adequada de tratamento de dados com o intuito de responder aseguinte pergunta: Será que a aplicação da engenharia de atributos no conjunto dedados aumenta o desempenho dos algoritmos de aprendizagem supervisionados?

Para fins de investigação, este trabalho utiliza um conjunto de dados reais emforma de históricos de vendas diárias (de janeiro de 2013 até outubro de 2015) de umacompanhia russa, composta por diversas lojas. Com os dados em mãos, o problemaconsiste em prever as vendas para novembro de 2015. A relevância do problemaé evidente, uma vez que realizar predições de vendas futuras pode ajudar lojas aotimizarem seus estoques, contribuindo para a maximização do seu lucro.

Partiu-se da hipótese de que exploração de atributos temporais das vendaspode melhorar a acurácia das predições. A fim de verificar tal hipótese, a aprendiza-gem de máquina foi aplicada em dois conjuntos de dados diferentes. O primeiro nãocontinha quase nenhuma manipulação, ou seja, os dados estavam em sua forma bruta.O segundo, por sua vez, foi manipulado para que as informações contidas fossemutilizadas para se obter novas informações, a saber, os atributos temporais investigadosforam adicionados. Como algoritmo supervisionado, utilizamos XGBoost, o qual é umaimplementação de gradient boosted decision trees.

Os resultados dos experimentos demonstram que, por meio da engenhariade atributos, foi possível diminuir a raiz do erro quadrático médio em cerca de 23%.Portanto, a hipótese investigada neste trabalho foi validada com sucesso, concluindoque a criação de bons atributos pode aumentar a acurácia de algoritmos de aprendizadosupervisionado.

Page 14: Aprendizado de Máquina e Engenharia de Atributos em

13

2 Fundamentação Teórica

2.1 Aprendizado de Máquina

Nas últimas décadas, com o crescimento da complexidade dos problemas quedevem ser tratados computacionalmente e do volume de dados gerados, tornou-seclara a necessidade de ferramentas computacionais mais rebuscadas, que fossemmais independentes, reduzindo, então, a necessidade de intervenção humana (Faceliet al., 2011). Para isso, essas ferramentas devem ser capazes de criar, a partir daexperiência passada (conjunto de treino), uma hipótese, capaz de resolver o problemaque se deseja tratar. A esse processo de busca de uma hipótese a partir de informaçõespassadas dá-se o nome Aprendizado de Máquina (AM) (Faceli et al., 2011).

No AM, computadores são programados para aprender através do treino. Paraisso, devem obter deduções genéricas a partir de um conjunto de exemplos (Faceli et al.,2011). Assim, os algoritmos de AM aprendem a induzir uma função ou hipótese capazde resolver um problema a partir de dados que representam instâncias do problema aser resolvido. Esses dados formam um conjunto, denominado dataset ou conjunto dedados em tradução livre.

Cada dado do dataset, também chamado objeto, padrão, exemplo ou registro, éformado por valores característicos ou atributos que descrevem seus principais aspec-tos, também chamados de campos ou variáveis. Para algumas tarefas de aprendizado,um dos atributos é classificado como um atributo de saída (também chamado atributometa ou atributo alvo), cujo os valores podem ser estimados através dos valores dosdemais atributos (também chamados atributos previsores) (Faceli et al., 2011).

Russell and Norvig (2009) classificam os algoritmos de aprendizagem de má-quina em três tipos: i) supervisionado, quando os dados são rotulados, ou seja, amáquina tem acesso a saída correta de cada entrada, ii) não supervisionado, quandoos dados de análise não são rotulados, ou seja, a máquina não conhece a saídacorreta das entradas, e iii) aprendizado por reforço, quando a aprendizagem é feita porsistemas de recompensas, onde a máquina é capaz de verificar o impacto de suasdecisões e minimizar suas perdas (aprendizado não indutivo).

Faceli et al. (2011) afirmam que as tarefas indutivas de AM (baseadas na induçãode uma função) podem ser classificadas como preditivas ou descritivas. Em tarefasde predição, o objetivo é encontrar uma função (também chamada de hipótese oumodelo) a partir de uma parcela do dataset original (conjunto de treino) que possaser utilizada para prever valores do atributo alvo para novos exemplos, com base

Page 15: Aprendizado de Máquina e Engenharia de Atributos em

Capítulo 2. Fundamentação Teórica 14

nos demais atributos. Para isso, os atributos de entrada e saída devem ser rotulados.Logo, os algoritmos utilizados nesse tipo de tarefa seguem o paradigma de aprendizadosupervisionado. Em tarefas de descrição, por sua vez, o objetivo é explorar ou descreverum conjunto de dados. Por isso, os algoritmos de AM usados nessas tarefas não utilizamo atributo de saída. Consequentemente, seguem o paradigma de aprendizado nãosupervisionado (Faceli et al., 2011). Um claro exemplo de tarefa descritiva pode sero agrupamento de dados, cuja meta é encontrar grupos com características comunsdentro de um dataset.

Faceli et al. (2011) listam inúmeras aplicações de técnicas de AM que já sãoutilizadas com êxito na solução de problemas, algumas delas são:

• Reconhecimento de palavras faladas;

• Predição de taxas de cura de pacientes com diferentes doenças;

• Detecção de Fraudes em cartões de créditos;

• Veículos Autônomos;

• Detecção de potenciais ameaças ao computador;

• Detecção de tendências de valorização de ações no mercado financeiro;

2.1.1 Aprendizado Supervisionado

Russell and Norvig (2009) definem o aprendizado supervisionado da seguinteforma: dado um conjunto {(x1, y1), (x2, y2), . . . , (xn, yn)} ⊆ X × Y de treinamento comn pares de exemplos de entrada e saída, onde cada yi foi gerado por uma funçãodesconhecida yi = f(xi), o objetivo é encontrar uma função h que se aproxime dafunção verdadeira f ; o domínio X e a contra-domínio Y não precisam necessariamenteser numéricos.

A aprendizagem é na verdade a busca pela função que terá o melhor de-sempenho, mesmo para novos exemplos além do conjunto conhecido. Para mediro desempenho da função h, é fornecido um conjunto de dados (conjunto de testes)distinto do conjunto de treinamento. A função h é uma hipótese, que deve prevercorretamente o valor de yi para novos exemplos.

Quando a saída y pertence a um conjunto discreto, o problema da aprendizagemé chamado de classificação e tenta prever o elemento que melhor representa y. Caso y

pertença a um conjunto contínuo, o problema de aprendizagem é chamado de regressãoe tenta estimar o valor y mais próximo possível de y. Tecnicamente, a solução de umproblema de regressão é encontrar uma estimativa de y porque a probabilidade de seencontrar exatamente o valor real de y tende a zero (Russell and Norvig, 2009).

Page 16: Aprendizado de Máquina e Engenharia de Atributos em

Capítulo 2. Fundamentação Teórica 15

2.1.2 Regressão Linear

A regressão linear é um dos métodos mais simples de aprendizado de máquinasupervisionado, sendo um modelo comumente utilizado nos casos em que o atributoalvo y é contínuo. Tal modelo permite a construção de uma função linear que minimizeo erro quadrático e, consequentemente, se adéque melhor a todos os pontos (exemplosdo conjunto de treino). Para a predição de qualquer novo valor, o domínio, que pode sercomposto de uma ou mais variáveis, é aplicado à função (Russell and Norvig, 2009).

2.1.3 Árvores de Decisão

Uma árvore de decisão representa uma função que tem como entrada um vetorde valores de atributos e retorna uma decisão (um valor de saída único) (Russell andNorvig, 2009). Os valores de entrada e saída podem ser discretos ou contínuos. Paravalores de saída discretos, as árvores são chamadas de árvores de classificação, jápara prever um valor contínuo de saída, é necessário uma árvore de regressão (Russelland Norvig, 2009).

Uma árvore de decisão alcança sua decisão executando uma sequência detestes. Cada nó da árvore corresponde a um teste do valor de um dos atributos deentrada, já as ramificações dos nós são classificadas com as possíveis respostas doteste (Russell and Norvig, 2009). Cada nó folha da árvore representa uma decisão quepode ser retornada pela função. Quanto mais um atributo é usado para tomar decisõesimportantes, maior é sua importância relativa (Russell and Norvig, 2009).

2.1.4 Floresta Aleatória

Floresta aleatória é um dos algoritmos mais utilizados na aprendizagem supervi-sionada, devido à sua simpleza e ao fato de que pode ser aplicado tanto em tarefas declassificação quanto de regressão. Ele é um ensemble, ou seja ,vários classificadorescombinados para potencializar os resultados ao realizar a predição de novos exemplos.

Esse algoritmo separa amostras aleatórias a partir do conjunto de treino. Cadanova árvore é produzida utilizando uma amostra aleatória e um subconjunto de atributosaleatórios, dentre os atributos aleatórios é escolhido um atributo mais representativopara ser o atributo de decisão. Este procedimento cria uma grande diversidade deárvores, o que geralmente leva a criação de modelos melhores (Oshiro, 2013). Uma dasimplementações mais eficientes de floresta aleatória é o Extreme Gradient Boosting(XGBoost).

Page 17: Aprendizado de Máquina e Engenharia de Atributos em

Capítulo 2. Fundamentação Teórica 16

2.2 Overfitting

Overfitting é o superajuste aos dados. Em outras palavras, o superajuste ocorrequando a hipótese se ajusta muito bem ao conjunto de dados utilizado durante o treino,mas se mostra ineficaz na predição de novos exemplos. Neste caso, também é ditoque a hipótese memorizou ou se especializou no conjunto de treinamento (Faceli et al.,2011).

Para evitar o overfitting, é necessário fazer com que o modelo preditivo não graveo conjunto de treino. Em modelos iterativos, o ideal é interromper o aprendizado quandoo erro do conjunto de treino começa a apresentar um decaimento desprezível (Faceliet al., 2011), interrupção essa denominada early stopping. O early stopping é umaabordagem comumente eficaz para impedir o superajuste e consiste em interromper oaprendizado quando o erro (dependendo da métrica de desempenho usada) não decai,por exemplo, após uma sequencia de n iterações.

Em alguns algoritmos como o XGBoost, é possível evitar o overfitting com oajuste de hiperparâmetros, pois alguns deles acabam melhorando a variedade deárvores criadas pelo modelo. Contudo, o verdadeiro foco do ajuste de parâmetros éencontrar uma configuração capaz de potencializar o desempenho do algoritmo utilizado(Faceli et al., 2011). Uma das técnicas mais famosas de tunagem de hiperparâmetros éo grid search, que utiliza conjuntos de valores pré estabelecidos de cada parâmetropara realizar uma análise combinacional e encontrar a melhor configuração possível.

2.3 Métricas de Desempenho

Métricas de desempenho são maneiras de mensurar a eficiência dos modeloscriados. Elas são de extrema importância, pois indicam o quão distante os resultadosestão da realidade (Faceli et al., 2011).

2.3.1 Matriz de Confusão

Matriz de Confusão é um método para visualizar o desempenho do classificadoratravés das taxas de erro e acerto. Suas linhas indicam as classes verdadeiras dosobjetos, enquanto as colunas representam as classes preditas para os objetos, adiagonal principal ilustra as predições que foram feitas com sucesso, enquanto osdemais elementos representam as classificações previstas pelo classificador de formaerrônea (Faceli et al., 2011). A partir da matriz de confusão derivam-se diversasmétricas de desempenho para problemas de classificação, como taxa de erro, acurácia,sensibilidade, especificidade, dentre outras. A Figura 1 ilustra uma possível matriz deconfusão para um problema de classificação entre cachorro, gato e rato.

Page 18: Aprendizado de Máquina e Engenharia de Atributos em

Capítulo 2. Fundamentação Teórica 17

Figura 1 – Matriz de Confusão

2.3.2 Root Mean Square Error

Root mean square error (RMSE) ou raiz do erro quadrático médio, é uma medidade desvio da diferença entre o valor real e o valor previsto. O RMSE tem mesma unidadede medida do atributo alvo, tornando mais fácil mensurar a exatidão da predição. Porisso, o RMSE é a medida de erro mais comumente usada para avaliar os métodos deregressão (Faceli et al., 2011), seu cálculo é dado pela equação 2.1.

RMSE =

√√√√ n∑i=1

(yi − h(xi))2

n(2.1)

Onde yi é o valor real da variável, enquanto h(xi) é o valor estimado pelo modelopreditivo,

2.4 Análise Exploratória

A análise exploratória é a análise detalhada das características presentes emum conjunto de dados que permite a descoberta de padrões e tendências. Dessaforma, uma grande quantidade de informações pode ser extraída de um conjuntode dados, ajudando assim, a entender o problema e modelar a solução de maneiramais eficiente. Muitas dessas características são obtidas através do estudo estatísticosimples dos dados como média, mediana e moda. Outras podem ser induzidas pormeio da observação do conjunto e representações visuais como gráficos em forma dehistograma, dispersão ou boxplot (Faceli et al., 2011).

Page 19: Aprendizado de Máquina e Engenharia de Atributos em

Capítulo 2. Fundamentação Teórica 18

Os atributos mais comuns podem ser categorizados em dois tipos distintos:i) quantitativo, quando representa quantidades numéricas e ii) qualitativo, quandorepresenta categorias ou classificações (Faceli et al., 2011). Além disso, os valores dasvariáveis podem variar com diferentes tipos de domínio: numérico, categórico, textualou localização.

2.5 Engenharia de Atributos

A engenharia de atributos é o processo de transformação dos dados de umestado bruto para um estado mais adequado para a modelagem. Seu objetivo é obter omáximo de informações para serem usadas durante a criação do modelo preditivo. Paraisso, é necessário manipular seus atributos e buscar informações que muitas vezesestão implícitas no conjunto de dados (Grus, 2018). As principais técnicas incluemmodificar e criar atributos a partir dos já existentes.

Os atributos dos dados influenciam diretamente nos modelos preditivos e nosresultados que se podem alcançar. Em geral, quanto mais atributos um dataset tem,maior é o ganho de informação do algoritmo e maiores são as chances de ocorreroverfitting. Uma das técnicas utilizadas para a criação de novas variáveis consiste emcriar novos atributo a partir dos atributos existentes altamente correlacionados com oatributo alvo (Grus, 2018).

Algoritmos de modelagem preditiva mais complexos executam a importância ea seleção de atributos internamente enquanto constroem seu modelo. Geralmente, aimportância dos atributos fornecem pontuações que indicam quão útil cada atributo foidurante a construção das árvores (de decisão ou regressão) (Grus, 2018).

2.5.1 Engenharia de Atributos para Séries Temporais

Para séries temporais, um das técnicas de engenharia de atributos é a criaçãode atributos de atraso. De acordo com Brownlee (2016) um atributo de atraso é qualquervariável que armazene informações com um certo grau de retardo. Uma variável deatraso pode ser, por exemplo, o preço da gasolina no dia anterior.

A presença de sazonalidade nas séries temporais impacta diretamente naeficiência dos atributos de atraso, uma vez que eles são mais eficazes (no ganhode informação) com dados que tendem a repetir seu comportamento de tempos emtempos (Zivot and Wang, 2007).

Outra técnica utilizada para obter informações de séries temporais, são asmédias móveis. Morettin and de Castro Toloi (1981) definem uma média móvel comoa média (ponderada ou não) dos valores antigos de um determinado elemento para

Page 20: Aprendizado de Máquina e Engenharia de Atributos em

Capítulo 2. Fundamentação Teórica 19

uma certa quantidade de tempo t qualquer. Uma média móvel pode ser, por exemplo, amédia do preço da gasolina nos últimos 7 dias.

Uma estratégia na utilização das médias móveis é ponderar o peso exponencial-mente à medida que se aproxima da atualidade, dessa forma, quanto mais antiga for ainformação, menos impacto ela terá na atualidade (Zivot and Wang, 2007). De acordocom Morettin and de Castro Toloi (1981), as médias móveis são, por natureza, medidasde atraso muito eficazes para a identificação de tendências.

Page 21: Aprendizado de Máquina e Engenharia de Atributos em

20

3 Materiais e Métodos

Neste trabalho, o aprendizado de máquina supervisionado é aplicado em umconjunto de dados históricos de vendas, disponibilizado pelo Kaggle para a competição“Predict Future Sales”, com o intuito de prever os itens vendidos para um determinadomês. O objetivo é utilizar a engenharia de atributos no conjunto de dados e, em seguida,investigar e discutir o impacto de seu uso no desempenho final das previsões (atravésdo ranking da competição).

3.1 Definição do Problema

A competição “Predict Future Sales”, conta com um conjunto de dados temporais,em forma de histórico de vendas, disponibilizado por uma das maiores empresas desoftware da Rússia – a 1C Company. Os dados disponibilizados pela empresa sãorotulados. Além disso, para cada item vendido no dia, existe uma série de atributossobre a venda que são armazenadas, como a categoria do item, a loja em que o itemfoi vendido, o preço do item no dia, dentre outros. O objetivo final da competição éprever o total de vendas de cada par loja e produto para o mês de novembro de 2015,baseando-se nas informações armazenadas nos 33 meses anteriores.

3.2 Análise Exploratória do Dataset

Antes de manipular os atributos ou aplicar métodos de aprendizado, é necessárioconhecer a base de dados, entender como ela está estruturada e quais as suasprincipais características. O processo de análise exploratória de dados traz informaçõesrelevantes para o tratamento correto do problema. Os dados foram disponibilizadospelo Kaggle em forma de 6 arquivos diferentes:

• sales_train.csv - o conjunto de treinamento. Dados históricos de vendas diáriasdas lojas, durante janeiro de 2013 e outubro de 2015.

• test.csv - o conjunto de teste, contendo os itens e as lojas cuja quantidade deitens vendidos em novembro de 2015 deve ser prevista.

• sample_submission.csv - um arquivo com o modelo de envio no formato correto.

• items.csv - informações complementares sobre os itens / produtos.

• item_categories.csv - informações complementares sobre as categorias deitens.

Page 22: Aprendizado de Máquina e Engenharia de Atributos em

Capítulo 3. Materiais e Métodos 21

• shops.csv - informações complementares sobre as lojas.

O arquivos sales_train.csv, items.csv, item_categories.csv, shops.csv foramcarregados em diferentes datasets em um kernel1 do Kaggle. Após mesclar todas asinformações em um único dataset de treino, verificou-se que os dados continham osseguintes atributos:

• ID - identificador que representa uma combinação única de item e loja dentro doconjunto de testes.

• shop_id - identificador único de uma loja.

• item_id - identificador único de um produto.

• item_category_id - identificador único da categoria de um item.

• item_cnt_day - número de produtos vendidos no dia (será previsto um valormensal dessa medida).

• item_price - preço atual de um item.

• date - data em formato dia/mês/ano.

• date_block_num - um número consecutivo utilizado para representar um mês.Janeiro de 2013 é 0, fevereiro de 2013 é 1, ..., outubro de 2015 é 33.

• item_name - nome do item (em russo).

• shop_name - nome da loja (em russo).

• item_category_name - nome da categoria do item (em russo).

O conjunto de treino tem 2935849 exemplos, 22170 itens diferentes, distribuí-dos em 60 lojas e 84 categorias. As colunas que contêm nomes foram descartadas,pois além de estarem em russo, os ids já eram identificadores únicos para as lojas,categorias e itens. As variáveis quantitativas que não são identificadores (item_cnt_daye item_price) estão expressas por meio de gráficos, tanto em forma de histogramaquanto em forma de boxplot nas Figuras 2, 3, 4 e 5.

Pelas Figuras 2 e 3, é possível identificar visualmente alguns valores outliers.Tais valores foram retirados do dataset para melhorar a exatidão da predição, uma vezque poucos dados drasticamente distantes do resto do conjunto podem deslocar asmedidas de tendência e atrapalhar a análise de dados.

Page 23: Aprendizado de Máquina e Engenharia de Atributos em

Capítulo 3. Materiais e Métodos 22

Figura 2 – Boxplot para item_price

Figura 3 – Boxplot para item_cnt_day

Page 24: Aprendizado de Máquina e Engenharia de Atributos em

Capítulo 3. Materiais e Métodos 23

Figura 4 – Histograma para item_category_id

Figura 5 – Histograma para shop_id

Page 25: Aprendizado de Máquina e Engenharia de Atributos em

Capítulo 3. Materiais e Métodos 24

Na Figura 4 é possível observar que poucas categorias são responsáveis pelamaior parte das vendas, enquanto a maior parte das categorias possuem poucasocorrências de vendas. O mesmo comportamento pode ser observado nas lojas (Figura5), porém de maneira menos desequilibrada.

Investigou-se a existência de valores nulos no dataset, mas nenhum foi encon-trado. Em seguida, a correlação entre as variáveis quantitativas foi averiguada atravésde uma matriz de correlação, representada na Figura 6. A hipótese inicial era que opreço e a quantidade de itens vendidos no dia tinham uma correlação linear fortementenegativa (coeficiente de correlação de Pearson próximo de -1). Porém constatou-seque a correlação de Pearson entre esses dois atributos é fraca (0,013).

Figura 6 – Matriz de Correlação

1 Disponível em: <https://www.kaggle.com/maxlincoln/an-lise-explorat-ria-de-dados>

Page 26: Aprendizado de Máquina e Engenharia de Atributos em

Capítulo 3. Materiais e Métodos 25

Como o atributo alvo é a quantidade de itens vendidos em um mês (novembro de2015), os dados foram reestruturados de forma que o dataset contivesse informaçõesreferentes aos itens vendidos em cada mês. Para isso, os objetos que continham osmesmos shop_id, item_id e date_block_num (mesmo item, loja e mês de venda) forammesclados. A variável item_cent_day foi substituída por item_cent_month, que é osomatório dos itens vendidos por dia para cada combinação de mês, loja e item. Comessa nova informação, foi possível plotar os gráficos representados nas Figuras 7, 8 e9.

Figura 7 – Itens Vendidos em 2013

Figura 8 – Itens Vendidos em 2014

Page 27: Aprendizado de Máquina e Engenharia de Atributos em

Capítulo 3. Materiais e Métodos 26

Figura 9 – Itens Vendidos em 2015

As Figuras 7, 8 e 9 evidenciam a sazonalidade das vendas. O comportamentodas vendas em cada mês tende a se repetir anualmente, sendo mais intenso em janeiro,fevereiro, março e, principalmente, dezembro. Com isso, conclui-se que o mês é umainformação relevante para a predição das vendas.

3.3 Engenharia de Atributos

Os dados foram estruturados em dois datasets. No dataset 1, estão contidosos dados na forma final da análise exploratória, sem a aplicação da engenharia deatributos. Enquanto o dataset 2, por sua vez, contém os dados com todos os atributosdo dataset 1 junto com os atributos que foram criados durante o processo de engenhariade atributos, processo este explicado a seguir.

3.3.1 Criação de Atributos

O formato do atributo que representa a data (dia/mês/ano), não é aceito peloalgoritmo de aprendizado. Para solucionar este problema, o atributo date foi substituídopor 2 novas variáveis, month e day. O atributo day, representa o dia do mês (podendovariar de 0 a 31), enquanto o atributo month representa o mês do ano (podendo variarde 1 a 12).

Além disso, foram feitos alguns questionamentos relevantes. E se alguma lojaparasse de vender certos itens? E se algum item, por algum motivo, parasse deser vendido? Cogitando estas possibilidades foram criadas duas novas variáveis:i) item_shop_last_sale, representando a quantidade de meses desde a última venda do

Page 28: Aprendizado de Máquina e Engenharia de Atributos em

Capítulo 3. Materiais e Métodos 27

item na loja e ii) item_last_sale, representando a quantidade de meses desde a últimavenda daquele item.

3.3.1.1 Atributos de Atraso

Os atributos de atraso foram criados para aumentar o ganho de informações doalgoritmo de predição. A desvantagem deste processo é dada pela perda dos dadosmais antigos do dataset, uma vez que não se tem informações que os antecedam paraque variáveis com um certo grau de atraso possam ser criadas. Desse modo, não éviável criar atributos que contenham dados muito antigos (acima de 6 meses). Tendoisto em mente, criou-se 20 novas variáveis:

• item_cnt_month_lag_n - quantidade de itens vendidos nos últimos n meses.

• date_item_avg_item_cnt_lag_n - média da quantidade de itens vendidos, paraum determinado item, nos últimos n meses.

• date_shop_avg_item_cnt_lag_n - média da quantidade de itens vendidos, parauma determinada loja, nos últimos n meses.

• date_cat_avg_item_cnt_lag_n - média da quantidade de itens vendidos, parauma determinada categoria, nos últimos n meses.

• item_avg_item_price_lag_n - média do preço dos itens vendidos, nos últimos n

meses.

Onde n assume os valores discretos em {1, 2, 3, 6}.

Durante a crianção das variáveis de atraso, alguns valores nulos surgiram. Osobjetos que contêm tais valores devem ser retirados do dataset, inclusive os seisprimeiros meses do conjunto de dados. Com a adição dos atributos de atraso a etapade engenharia de atributos se encerra.

3.4 Criação do Modelo Preditivo

Como novembro de 2015 é o mês onde devemos prever as vendas (conjuntode teste), outubro de 2015 se torna o conjunto de validação. Todos os outros mesescontinuam no conjunto de treino.

O atributo alvo é uma variável contínua, portanto, o modelo deve ser criadoatravés de um método de regressão. O Algoritmo utilizado é o Extreme GradientBoosting (XGBoost), implementado em Python 3 pela biblioteca xgboost (versão 0.81).Seus principais parâmetros são:

Page 29: Aprendizado de Máquina e Engenharia de Atributos em

Capítulo 3. Materiais e Métodos 28

• max_depth - tamanho máximo de cada árvore (6 por padrão).

• n_estimators - número de estimadores criados durante a regressão (100 porpadrão).

• min_child_weight - número mínimo de instâncias necessárias em cada nó (1por padrão).

• colsample_bytree - porcentagem das colunas mostradas aleatoriamente aoalgorítimo para a criação de uma nova árvore (1 por padrão).

• subsample - porcentagem dos objetos mostrados aleatoriamente ao algorítimopara a criação de uma nova árvore (1 por padrão).

• eta - decaimento do tamanho do passo para cada iteração (0.3 por padrão).

Para avaliar o desempenho do algoritmo, é utilizado o RMSE (equação ??) comométrica de desempenho. Tal métrica evidencia o quão distante as predições estão darealidade através da raiz do erro quadrático médio da diferença entre o valor real e ovalor estimado.

Aplicando o XGBoost sem o ajuste dos parâmetros em ambos os datasets,observou-se que o RMSE para o conjunto de teste estava muito mais alto do quenos conjuntos de treino e validação em ambos os datasets. A causa disso muitoprovavelmente é o overfitting, pensando assim, a melhor solução é aplicar a técnicade grid search para encontrar a melhor configuração de parâmetros, juntamente como early stopping. Para realizar a tunagem (do inglês, tuning) de parâmetros nos doisdatasets, é necessário fazer uma análise combinatória entre valores pré-estabelecidosde cada parâmetro:

1. max_depth = {2, 4, 6, 8, 10}

2. n_estimators = {10, 30, 50, 80, 100, 200, 300}

3. min_child_weight = {10, 100, 300, 500, 1000}

4. colsample_bytree = {0.2, 0.4, 0.6, 0.8, 1}

5. subsample = {0.2, 0.4, 0.6, 0.8, 1}

6. eta = {0.1, 0.2, 0.3, 0.4}

Page 30: Aprendizado de Máquina e Engenharia de Atributos em

Capítulo 3. Materiais e Métodos 29

Tabela 1 – Melhores Parâmetros

Dataset 1 Dataset 2max_depth 4 8n_estimators 300 30min_child_weight 300 300colsample_bytree 0.8 0.8subsample 0.8 0.8eta 0.3 0.3

A Tabela 1 apresenta os melhores parâmetros para ambos os datasets, assimcomo esperado, as configurações são diferentes para os dois casos, pois os novosatributos estão influenciando na configuração dos parâmetros. A Figura 10 apresenta oRMSE do XGBoost para o dataset 2 em função do número de iterações. Com basena figura podemos concluir que a partir de um certo ponto o decaimento do RSMEpara o conjunto de validação se torna ínfimo e o modelo começa a se superadaptar(overfitting) ao conjunto de treino.

Figura 10 – Decaimento do RMSE – Dataset 2

O problema mais relevante enfrentado durante o experimento foi o overfitting.Com isso, comprovou-se que modelos preditivos superadaptados são especialmenteruins para prever exemplos que não estão contidos no conjunto de treino, como afirma aliteratura. Com o gráfico do decaimento do RMSE no conjunto de treino e de validação,representado na Figura 10, é possível visualizar em vermelho a região ideal em quedeve-se parar de treinar a base de dados.

Page 31: Aprendizado de Máquina e Engenharia de Atributos em

Capítulo 3. Materiais e Métodos 30

3.5 Resultados e Discussões

A Tabela 2 mostra as diferenças obtidas entre os modelos preditivos apósserem submetidos ao Kaggle para avaliação. O modelo criado a partir do dataset comos atributos criados, obteve uma performance melhor (RMSE) tanto no conjunto devalidação quanto no conjunto de test. Em termos de colocação na competição doKaggle, o modelo com os novos atributos alcançou o top 32% melhores, enquanto omodelo sem a engenharia de atributos chegou apenas ao top 76% melhores. Comoos dois modelos passaram pelo processo de tunagem de parâmetros, a causa doganho no desempenho do modelo com melhor pontuação é por conta da engenhariade atributos.

Tabela 2 – Desempenho dos Modelos

Dataset 1 Dataset 2RMSE do conjunto de validação 1.11784 0.95262RMSE do conjunto de teste 1.28751 0.98917Colocação no rank do Kagle 1729o 738o

Dessa forma, os resultados computacionais confirmam a hipótese de que aintrodução dos atributos propostos melhora a acurácia das predições do aprendizadosupervisionado. A Figura 11 apresenta quais foram os atributos mais relevantes durantepara o aprendizado. Com base na figura podemos concluir que muitos dos atributoscriados durante a engenharia de atributos são os mais importante. Sendo os 3 me-lhores: item_cnt_month_lag_2 (quantidade de itens vendidos nos últimos 2 meses),date_item_avg_item_cnt_lag_1 (quantidade de itens vendidos no mês passado, paraum determinado item) e month (mês atual).

Figura 11 – Importância dos Atributos

Page 32: Aprendizado de Máquina e Engenharia de Atributos em

31

4 Conclusão

Neste trabalho, foi estudada engenharia de atributos no desempenho do apren-dizado de máquina supervisionado aplicado aos dados de uma companhia de lojas.A relevância do trabalho é perceptível, uma vez que o aprendizado de máquina vemocupando cada vez mais espaço no cenário financeiro atual. Portanto, o aumento dodesempenho durante as predições pode ajudar o mercado de diversas formas, comopor exemplo: recomendação de produtos, detecção de tendências de preço, detecçãode fraude ou até mesmo previsão de demanda.

Para a realização dos testes, foi proposto a utilização de um algoritmo baseadoem árvores de aumento de gradiente (XGBoost). Basicamente, o experimento consistiuem aplicar a regressão em dois conjuntos de dados, um que continha os dados sem otratamento dos atributos e outro que continha os dados que passaram pelo processo deengenharia de atributos. Durante o processo, muitas variáveis de atraso foram criadasa partir das existentes, posteriormente, os modelos criados foram avaliados.

Por fim, a queda do RMSE para os dois modelos criados, em termos de por-centagem, foi de aproximadamente 23%. Dentre os dez melhores atributos utilizadosdurante a criação do modelo superior, nove (90%) foram atributos criados no processode engenharia de atributos. Portanto, os resultados computacionais provam que oprocesso de engenharia de atributos melhora o modelo preditivo, validando assim ahipótese proposta.

4.1 trabalhos futuros

Uma estratégia não explorada durante a execução do trabalho, foi a utilização demédias móveis exponenciais para potencializar os atributos de atraso. É possível queatribuir pesos menores para informações mais antigas forneça atributos de atrasos maisfiéis, capazes de perver tendências com uma facilidade maior. Outra ideia promissoraé a de investigar os atributos criadas em outros algoritmos além do XGBoost, porexemplo, regressão linear, redes neurais artificiais.

Page 33: Aprendizado de Máquina e Engenharia de Atributos em

32

Referências

aaaa.

J. Brownlee. Time series prediction with lstm recurrent neural networks in python withkeras. Available at: machinelearningmastery. com, 2016. Citado na página 18.

K. Faceli, A. C. Lorena, J. Gama, A. C. P. d. L. Carvalho, et al. Inteligência artificial:Uma abordagem de aprendizado de máquina. 2011. Citado 6 vezes nas páginas 12,13, 14, 16, 17 e 18.

J. Grus. Data Science do zero: Primeiras regras com o Python. Alta Books Editora,2018. Citado 2 vezes nas páginas 12 e 18.

P. A. Morettin and C. M. de Castro Toloi. Modelos para previsão de séries temporais,volume 1. Instituto de matematica pura e aplicada, 1981. Citado 2 vezes nas páginas18 e 19.

T. M. Oshiro. Uma abordagem para a construção de uma única árvore a partir deuma Random Forest para classificação de bases de expressão gênica. PhD thesis,Universidade de São Paulo, 2013. Citado na página 15.

S. Russell and P. Norvig. Artificial Intelligence: A Modern Approach. Prentice Hall Press,Upper Saddle River, NJ, USA, 3rd edition, 2009. ISBN 0136042597, 9780136042594.Citado 3 vezes nas páginas 13, 14 e 15.

E. Zivot and J. Wang. Modeling financial time series with S-Plus R©, volume 191. SpringerScience & Business Media, 2007. Citado 2 vezes nas páginas 18 e 19.