• Nenhum resultado encontrado

Análise de padrões de trajetórias para melhor direcionamento de anúncios

N/A
N/A
Protected

Academic year: 2022

Share "Análise de padrões de trajetórias para melhor direcionamento de anúncios"

Copied!
35
0
0

Texto

(1)

Universidade Federal de Pernambuco Centro de Informática

Graduação em Ciência da Computação

Análise de padrões de trajetórias para melhor direcionamento de anúncios

Rodrigo Carneiro Reis de Souza Trabalho de Graduação

Recife

04 de dezembro de 2019

(2)

Universidade Federal de Pernambuco Centro de Informática

Rodrigo Carneiro Reis de Souza

Análise de padrões de trajetórias para melhor direcionamento de anúncios

Trabalho apresentado ao Programa de Graduação em Ci- ência da Computação do Centro de Informática da Univer- sidade Federal de Pernambuco como requisito parcial para obtenção do grau de Bacharel em Ciência da Computação.

Orientador: Ricardo Bastos Cavalcante Prudêncio

Recife

04 de dezembro de 2019

(3)

Dedico este trabalho a todas as pessoas que contribuíram

na minha formação acadêmica

(4)

Agradecimentos

Quero agradecer a meus pais que investiram em mim para que eu tivesse uma educação de qualidade. Principalmente a minha mãe por me transmitir sua vontade de aprender. Também quero agradecer a meu irmão por estar sempre presente. Também agradeço a Maria Eduarda e Thaís por estarem presentes nos momentos de dificuldade e tiveram uma grande contribuição para que eu tenha chegado até aqui. Além de Aimée, Antonio, Gabriel e Rafael por terem facilitado minha adaptação a mudança de cidade. Além disso agradeço a meus amigos de graduação, que sem eles, teria uma graduação bem mais conturbada. Por último, gostaria de agradecer meu orientador, por ser meu guia neste trabalho.

iv

(5)

Alguns fracassos são inevitáveis. É impossível viver sem fracassar em alguma coisa, a não ser que você viva tomando tanto cuidado com tudo que você simplesmente não viva.

—J. K. ROWLING (Autora de Harry Potter)

(6)

Resumo

Hoje em dia grande parte da população está conectada a internet, por esta razão muitas das coisas do mundo físico acabaram indo também para o mundo digital; como é o caso dos anúncios, a chamada mídia programática. Através da localização do smartphone de alguém é possível entender por exemplo quais tipos de locais essa pessoa costuma visitar, e utilizar esse conhecimento para trazer para o usuário anúncios que mais se encaixam no seu dia a dia, aumentando as chances dele ser impactado.

Portanto, este trabalho tem como objetivo encontrar, baseado nos dados de visita coletados pela In Loco[1] e com o auxílio de uma biblioteca open source de mineração de dados[5], padrões de visitas a estabelecimentos dos usuários que possuem a tecnologia da empresa no seu smartphone. A partir desses padrões, foi possível identificar diferenças entre visitas nos dias de semana e nos finais de semana, além de encontrar também a probabilidade de um usuário visitar certas categorias de estabelecimentos após percorrer uma trajetória definida.

Palavras-chave: mídia programática, localização, In Loco, padrões de visitas, anúncios, mi- neração de dados

vi

(7)

Abstract

Nowadays a big part of society is connected in the internet, for that reason, many of the existing things of the real world, ended up going to the digital world; It’s the case of advertising, or programmatic media. Using the location of a smartphone it’s possible to understand for example which places a person likes to visit, and use this knowledge to show the device’s user ads which fits in his daily trajectory, increasing the chance of that user be impacted.

Said that, this paper has the purpose of find, using data collected from In Loco[1] and with the help of a data mining open source library[5], visit patterns from the users who have the company’s technology in their smartphone. Through these patterns, I was able to find differences between trajectories in the days of the week compared with the weekend, also was possible to calculate the probability of a person go to some category of place, based on his past trajectory.

Keywords: programmatic media, location, In Loco, visit patterns, ads, data mining

(8)

Sumário

1 Introdução 1

1.1 Objetivos 2

1.2 Estrutura do trabalho 2

2 Revisão de Literatura 3

2.1 Mídia programática 3

2.2 Mineração de dados de trajetórias 3

2.3 Categorias de análise de padrões 4

2.3.1 Padrões de movimento em conjunto 4

2.3.2 Agrupamento de trajetórias 5

2.3.3 Mineração de padrões sequenciais 6

2.3.4 Mineração de padrões periódicos 7

3 PrefixSpan 8

3.1 Definição do problema 8

3.2 FreeSpan 9

3.3 PrefixSpan 10

4 Pré-processamento dos dados 13

4.1 Dados de Visita 13

4.2 Pré-processamento 13

5 Experimentos 17

5.1 Dados 17

5.2 Análises 17

6 Conclusão 22

viii

(9)

Lista de Figuras

2.1 Processo de mídia programática. Fonte: [2] 3

2.2 Gastos em mídia programática US. Fonte: [3] 4

2.3 Paradigma de mineração de dados de trajetória. Fonte: [19] 4 2.4 Grupo de objetos movimentando-se juntos. Fonte: [10] 5

2.5 Gathering. Fonte: [18] 5

2.6 Subtrajetórias em comum. Fonte: [9] 6

2.7 Partition-and-group framework. Fonte: [9] 6

2.8 Hierarquia dos padrões de vida. Fonte: [16] 7

4.1 Dados após pré-processamento 15

(10)

Lista de Tabelas

3.1 Banco de dados de sequências 8

3.2 Bancos de dados projetado e padrões sequenciais 11

4.1 Dados de visita 14

4.2 Visitas ordenadas por id e timestamp 14

4.3 Trajetória de cada id 15

4.4 Exemplo de padrão de entrada utilizado no algoritmo de PrefixSpan do SPMF 15 4.5 Exemplo de padrão de saída utilizado no algoritmo de PrefixSpan do SPMF 16

4.6 Exemplo de padrões encontrados 16

5.1 Trajetórias extraídas 17

5.2 Trajetórias de maior suporte do dia 06/10/2019 18

5.3 Trajetórias de maior suporte do dia 07/10/2019 18

5.4 Trajetórias de maior suporte do dia 08/10/2019 18

5.5 Trajetórias de maior suporte do dia 09/10/2019 19

5.6 Trajetórias de maior suporte do dia 10/10/2019 19

5.7 Trajetórias de maior suporte do dia 11/10/2019 19

5.8 Trajetórias de maior suporte do dia 12/10/2019 19

5.9 Suporte de grocery_or_supermarket na base 20

5.10 Porcentagem de pessoas que fazem grocery_or_supermarket -> HOME após

grocery_or_supermarket 20

5.11 Média e desvio padrão de pessoas que realizaram grocery_or_supermarket ->

HOME após grocery_or_supermarket 20

x

(11)

C APÍTULO 1

Introdução

Com o crescente uso dos smartphones, está cada vez mais fácil coletar dados de localização das pessoas. O que tem atraído bastante atenção tanto de empresas como de pesquisadores, por possibilitar encontrar padrões implícitos que podem ser úteis para analisar e prever o mo- vimento de uma pessoa[8].

A mineração de trajetórias[19] é uma área cada vez mais estudada, havendo diversas técni- cas voltadas para encontrar padrões de trajetórias de um objeto em movimento.

Em [19] são introduzidas 4 principais categorias de padrões que podem ser descobertos através de uma ou mais trajetórias. O artigo cita os padrões movendo juntos voltado para descobrir grupo de objetos que se movimentam juntos por um certo período de tempo, o agru- pamento de trajetórias voltado para agrupar trajetórias similares, afim de encontrar caminhos representativos e tendências compartilhadas por diferentes objetos em movimento, a minera- ção de padrões sequenciais que visa encontrar objetos que movimentam-se em uma sequência de localizações em comum em intervalos de tempos semelhantes e por último a mineração de padrões periódicos que tem a finalidade de encontrar os padrões periódicos de um objeto em movimento, por exemplo quando uma pessoa vai ao shopping todo mês, essa trajetória pode ser considerada um padrão periódico. O uso desse conhecimento pode ser útil para o mercado de mídia programática, possibilitando a entrega de anúncios cada vez mais personalizados e engajadores.

A mídia programática é a forma como os anúncios em sites e aplicativos chegam do anún- ciante para o consumidor final, com o uso de DSPs(demand side platforms), SSPs(supply side platforms) e Ads Exchanges, plataformas que compram espaços disponibilizados por sites e aplicativos para mostrar um anúncio, que tentam vender esses espaços com o máximo de lucro possível para uma ou mais DSP, e que fazem o gerenciamento entre DSPs e SSPs respecti- vamente. Dentro desse ecossistema um anunciante pode escolher para que tipos de pessoas mostrar seu anúncio, por exemplo para pessoas que visitaram alguma rede de fast food nos últimos 15 dias.

A In Loco é uma empresa que utiliza geolocalização com o intuito de trazer conveniência para as pessoas. E através dos dados de localização dos smartphones que possuem sua tecnolo- gia embarcada consegue fazer análises para utilizar na área de mídia programática. Ou seja, é possível descobrir comportamentos que identifiquem pessoas que poderiam engajar mais com os anúncios criados na plataforma da empresa. A empresa possui uma tecnologia própria de localização 100 vezes mais precisa que o GPS, e que através dela é possível dizer se um dispo- sitivo entrou em algum estabelecimento e continuou dentro por alguns minutos, contabilizando uma visita.

Este trabalho visa utilizar os dados de visita coletados pela In Loco para encontrar padrões

(12)

1.1 OBJETIVOS

2 de trajetória e fazer análises, afim de entender o comportamento de grupos de pessoas e po- der assim dizer que tipo de anúncio seria o ideal para mostrar para os grupos e trazer mais engajamento na campanha.

1.1 Objetivos

O Objetivo desse trabalho é encontrar padrões de trajetória nos dados de visita da In Loco contabilizados na cidade de São Paulo entre os dias 06/10/2019 e 12/10/2019, afim de entender quais trajetórias são comuns, quais as diferenças nas trajetórias de dias diferentes e por fim a probabilidade de uma pessoa visitar um estabelecimento X após realizar uma trajetória Y.

1.2 Estrutura do trabalho

Este trabalho é dividido conforme a seguinte descrição: O capítulo 2 apresenta uma intro-

dução a ideia de mídia programática, além de explicar as principais categorias de mineração de

padrões. O capítulo 3 apresenta a ideia e o algoritmo por trás do PrefixSpan. O capítulo 4 mos-

tra em detalhes a estrutura dos dados utilizados, além de como foi feito o pré-processamento

deles. O capítulo 5 apresenta os experimentos realizados e os resultados obtidos. Por fim o

capítulo 6 apresenta conclusões extraídas dos resultados encontrados, além de possíveis me-

lhorias para trabalhos futuros.

(13)

C APÍTULO 2

Revisão de Literatura

Neste capítulo, será visto uma breve introdução a mídia programática. Além de mais de- talhadamente as principais categorias de análise de padrões e como podemos utilizar essas análises na prática.

2.1 Mídia programática

Figura 2.1: Processo de mídia programática. Fonte: [2]

Em [2] é dito que a mídia programática é uma forma de comprar e vender espaço publi- citário para público-alvos específicos, com o uso de um ecossistema que abrange DSPs[15], SSPs[17] e Ads Exchanges[11]. Onde diversos anunciantes podem competir dinamicamente, através de um leilão em tempo real (Real-Time Bidding)[7], pela oportunidade de mostrar o seu anúncio cada vez que um usuário acessa um website, ou utiliza um aplicativo.

É uma indústria que está crescendo cada vez mais. Em 2016 contribuiu 25.48 bilhões de dólares para o mercado de mídia digital nos Estados Unidos. E em 2019 é projetado para chegar a 45.72 bilhões de dólares investidos. Tendo um crescimento de mais de 2.5 vezes em apenas 4 anos[3]; Como pode ser visto na figura 2.2.

A escolha do momento em que se deve mostrar um anúncio para o público-alvo se dá através de parâmetros como a localização, hora do dia, interesses dos usuários e inclusíve o clima. Todos esses parâmetros exigem que o sistema seja bastante inteligente e consiga fazer análises relevantes.

2.2 Mineração de dados de trajetórias

Como explicado em [19], uma trajetória espacial é um caminho gerado por um objeto em

movimento em espaços geográficos, normalmente representados por uma série de pontos orde-

(14)

2.3 CATEGORIAS DE ANÁLISE DE PADRÕES

4

Figura 2.2: Gastos em mídia programática US. Fonte: [3]

nados cronologicamente. Ex: p

1

→ p

2

→ . . . → p

n

, onde cada ponto consiste de um par de coor- denadas geoespaciais, normalmente latitude e longitude, e um timestamp tal como p = (x, y,t).

Como pode ser visto na figura 2.3, a mineração de trajetórias é um campo que abrange um grande número de processos, e neste trabalho focaremos no processo de minerar padrões.

Figura 2.3: Paradigma de mineração de dados de trajetória. Fonte: [19]

2.3 Categorias de análise de padrões

2.3.1 Padrões de movimento em conjunto

O objetivo desse ramo é encontrar objetos que se movem em conjunto. E que podem ajudar

no estudo de migrações de espécies, encontros e/ou paradas que aglomeram muitas pessoas,

(15)

2.3 CATEGORIAS DE ANÁLISE DE PADRÕES

5 além de análise de tráfico. bons exemplos de algoritmos que visam encontrar grupos de objetos movimentando-se junto são o swarm e o gathering.

Swarm, como explicado em [10] propõe encontrar grupos de objetos com pelo menos min

0

indivíduos que movimentam-se em conjuntos, onde movimentar-se em conjunto significa es- tarem a uma distância relativamente próxima uns dos outros, em pelo menos min

t

espaços de tempos diferentes, não necessariamente consecutivos.

Figura 2.4: Grupo de objetos movimentando-se juntos. Fonte: [10]

Em [18] gathering é dito como um método usado para encontrar coisas incomuns ou sig- nificantes acontecendo, por exemplo protestos, celebrações, entre outros conglomerados de pessoas. A ideia é encontrar grupos com uma alta densidade e que dure por um certo período contínuo de tempo, onde é preciso que m

p

participantes apareçam em pelo menos k

p

clusters do gathering. Na figura 2.5, considerando k

p

= 2 e m

p

= 3, encontramos o gathering hc

1

, c

2

, c

4

i.

Figura 2.5: Gathering. Fonte: [18]

2.3.2 Agrupamento de trajetórias

O objetivo desse ramo é conseguir agrupar diferentes trajetórias, com a intenção de encon-

trar caminhos semelhantes. Um dos grandes desafios das ténicas focadas nisso é conseguir lidar

com trajetórias complexas e de tamanhos bastante variados.

(16)

2.3 CATEGORIAS DE ANÁLISE DE PADRÕES

6 Em [9] é explicado que apesar de existirem várias técnicas focadas em agrupamento de trajetórias como por exemplo em [6], elas são focadas em agrupar as trajetórias inteiras. Porém como trajetórias podem ser grandes, pode-se encontrar partes delas que sejam similares entre si.

Figura 2.6: Subtrajetórias em comum. Fonte: [9]

Como é o caso na figura 2.6, onde é possível ver que apesar das trajetórias acabarem indo para direções totalmente diferentes, elas compartilham um trecho em comum. Essa informação seria perdida se fossem analisadas trajetórias como um todo.

Nesse artigo o autor propõe um framework que ele chama de partition-and-group. Que basicamente particiona uma trajetória em um conjunto de segmentos de linhas e então agrupa segmentos semelhantes. Uma representação gráfica do framework pode ser vista na figura 2.7.

Figura 2.7: Partition-and-group framework. Fonte: [9]

2.3.3 Mineração de padrões sequenciais

Nesta, o objetivo é encontrar sequências de trajetórias realizados por um grupo de objetos em movimento, num intervalo de tempo similar, onde uma sequência não necessariamente precisa ser consecutiva. Por exemplo, duas trajetórias A : p

1

−−→

0.5h

p

2

−−−→

0.25h

p

3

−→

1h

p

4

e B : p

1

−−→

0.4h

p

2

−−→

1.3h

p

4

compartilham uma trajetória p

1

→ p

2

→ p

4

pois a ordem das visitas é igual, e o tempo entre as viagens foi semelhante.

Em conjunto, é considerado um valor de suporte, por exemplo 20% das trajetórias da base,

onde caso uma subtrajetória esteja presente em no minímo esse valor, ela pode ser considerada

um padrão sequencial. Isso pode ser usado para recomendações de viagens, entendimento do

padrão de vida das pessoas, além de auxiliar no direcionamento de anúncios digitais.

(17)

2.3 CATEGORIAS DE ANÁLISE DE PADRÕES

7 Em [16] é proposto uma análise do padrão de vida das pessoas. Inicialmente são definidas regras ou padrões, que podem ser analisadas através de trajetórias. Um dos que ele cita é o conditional life pattern, onde dada uma condição, a pessoa sempre realiza o mesmo padrão.

Um exemplo seria dizer que nos dias que uma pessoa X vai ao trabalho, 90% desses dias ela passa entre 6 à 8 horas nele.

Também é introduzida a noção de padrão atômico, que é um local que pode ser significante na vida da pessoa, por ela ir constantemente lá. E a partir da combinação desses padrões atômicos são construídos padrões mais complicados e que fornecem uma melhor análise. Na figura 2.8 é possível visualizar o que o autor chama de Hierarquia dos padrões de vida que é a base para as análises feitas.

Figura 2.8: Hierarquia dos padrões de vida. Fonte: [16]

2.3.4 Mineração de padrões periódicos

Nesta, é levado em consideração que normalmente objetos em movimento realizam um padrão periódico de atividades. Como por exemplo uma pessoa que toda semana joga futebol com os amigos, ou a migração de aves em certas épocas do ano.

Em [4] por exemplo, é abordado um algoritmo semelhante aos utilizados na mineração de padrões sequenciais, onde os autores também levam em conta que mesmo uma pessoa que realiza diariamente as mesmas atividades, como acordar, tomar banho e ir ao trabalho, essas atividades podem ser distorcidas ou adiadas/atrasadas. No exemplo acima a pessoa pode acabar acordando mais tarde e realizar todo seu padrão mais tarde, ou então o trânsito para chegar ao trabalho pode atrapalhar na sua hora de chegada.

Nesse artigo portanto um padrão periódico P é definido como uma sequência r

0

r

1

. . . r

t−1

de

tamanho T , no qual r

i

é ou uma região espacial ou um ∗ (denotando que a pessoa pode acabar

indo para qualquer lugar). E o tamanho de P é o número de regiões que não são ∗ em P.

(18)

C APÍTULO 3

PrefixSpan

PrefixSpan foi o algoritmo utilizado neste trabalho para fazer a mineração dos padrões sequenciais. Nesta capítulo será apresentada a definição do problema e como funciona a im- plementação do algoritmo de acordo com [12]. Esse algoritmo foi escolhido por utilizar uma quantidade pequena de espaço e ser bastante eficiente em trajetórias pequenas.

3.1 Definição do problema

Seja I = {i

1

, i

2

, . . . ,i

n

} o conjunto de todos os itens, sendo neste trabalho um item equi-

valente a uma localização. Uma sequência é uma lista ordenada de conjunto de itens. Uma sequência A é denotada por (s

1

, s

2

, . . . , s

j

), onde s

j

é um conjunto de itens. E s

j

pode ser cha- mado também de um elemento da sequência, e denotado por (x

1

, x

2

, . . . ,x

m

), onde x

k

é um item.

Por abreviatura, os parêntesis podem ser omitidos se o elemento tiver somente um item. Ex:

elemento (x) é escrito como x. Um item pode aparecer no máximo uma vez em um elemento de uma sequência, porém pode aparecer mais de uma vez em diferentes elementos. O número de instâncias de itens em uma sequência é o que define seu tamanho.

Uma sequência α = (a

1

, a

2

, . . . ,a

n

) é uma subsequência de uma outra sequência β = (b

1

, b

2

, . . . , b

m

e β uma super sequência de α: α ⊆ β , se existirem inteiros 1 ≤ j

1

< j

2

<

. . . < j

n

< m, onde a

1

⊆ b

1j

, a

2

⊆ b

2j

, a

n

⊆ b

jn

. Um banco de dados sequencial S é um con- junto de tuplas (s

id

, s), onde s

id

é o identificador da sequência e s é uma sequência. O suporte de uma sequência α em um banco de dados sequencial S é o número de tuplas contendo α .

support

s

(α ) =| {((s

id

, s) | (s

id

, s) ∈ S) ∩ (α ⊆ s)} | (3.1) Dado um inteiro positivo min_support como o limite do suporte, uma sequência α é cha- mada de um padrão sequencial no banco de dados S se suporte(α ) ≥ min_support .

Como exemplo podemos utilizar a tabela 2.1, considerando o valor de min

support

= 2. O conjunto de itens no banco é {a,b, c, d, e, f , g}. A sequência a(abc)(ac)d(c f ) tem cinco ele-

Id da sequência Sequência

10 ha(abc)(ac)d(c f )i

20 h(ad)c(bc)(ae)i

30 h(e f )(ab)(d f )cbi

40 heg(a f )cbci

Tabela 3.1: Banco de dados de sequências

8

(19)

3.2 FREESPAN

9 mentos: (a), (abc), (ac), (d) e (c f ), onde os itens a e c aparecem mais de uma vez, em elementos diferentes. O item a aparece três vezes nessa sequência, portanto ela contribui 3 para o tamanho da sequência. No entanto a sequência inteira a(abc)(ac)d(c f ) só contribui 1 no suporte a (a). Além disso, a sequência a(bc)d f é uma subsequência de a(abc)(ac)d(c f ).

Por fim, como as sequências 10 e 30 da tabela contêm a subsequência s = (ab)c, s é um padrão sequencial de tamanho 3.

Portanto, o problema é definido como: dado um banco de dados de sequências e um limite mínimo min_support, mineração de padrões sequenciais se resume a encontrar o conjunto completo de padrões sequenciais no banco de dados.

3.2 FreeSpan

Para uma sequência α = (s

1

. . . s

k

), o conjunto de itens s

1

∪ . . . ∪ s

k

é chamado de conjunto de itens projetado de α . O algoritmo de FreeSpan é baseado na seguinte propriedade: se um conjunto de itens X não for frequente, qualquer sequência que o conjunto de itens projetado for um super conjunto de X não poder ser um padrão sequencial. O algoritmo encontra padrões sequenciais particionando o espaço de busca e projetando as sub-bases recursivamente baseado no conjunto de itens projetados.

Para uma visão melhor do algoritmo vamos considerar a lista = (x

1

. . . x

n

), que representa todos os itens frequentes no banco de dados sequencial S. O conjunto completo de padrões sequenciais em S pode ser dividido em n subconjuntos disjuntos: 1) o conjunto de padrões sequenciais contendo somente o item x

1

, 2) aqueles contendo o item x

2

mas não os (x

3

, . . . , x

n

), e assim sucessivamente. Generalizando, o i

th

subconjunto (1 ≤ i ≤ n) é o conjunto de padrões sequenciais contendo item x

i

mas nenhum item (x

i+1

, . . . , x

n

). Sendo assim, no momento de derivar o banco de dados projetado p a partir de DB, o conjunto de itens frequentes X de DB já é conhecido. E com isso, somente os itens em X vão precisar estar em p. Fazendo com que informações irrelevantes sejam descartadas e reduzindo ao mínimo o tamanho de p. Iterando recursivamente, é possivel encontrar os banco de dados projetados e gerar o conjunto completo de padrões sequenciais sem duplicação.

Podemos utilizar o mesmo banco de dados sequencial S da tabela 2.1 e o mesmo valor de min

support

para exemplificar a execução do algoritmo. O FreeSpan inicialmente escaneia S, coleta o suporte de cada item e encontra o conjunto de itens frequentes. Itens frequentes são ordenados por ordem de maior suporte, isso é: a : 4, b : 4, c : 4, d : 3, e : 3, f : 3, como g aparece somente uma vez, ele não é considerado frequente. Eles formam seis padrões sequenciais de tamanho um. Após isso o conjunto completo de padrões sequenciais pode ser dividido em seis subconjuntos disjuntos: 1) os contendo somente o item a, 2) os contendo item b mas nenhum item após ele, 3) os contendo item c mas nenhum após ele, e assim sucessivamente, e 4) os contendo somente f .

Os padrões sequenciais relacionados aos seis subconjuntos particionados podem ser encon- trados construindo seis bancos de dados projetados, obtidos após escanear o banco mais uma vez. O processo de mineração de cada banco projetado é detalhado a seguir:

• Inicialmente mineramos os padrões contendo somente item a. Através do banco proje-

(20)

3.3 PREFIXSPAN

10 tado de a: {(aaa), (aa), (a), (a)}, de acordo com o min

support

somente o padrão (aa) : 2 é encontrado.

• Após isso são minerados os padrões contendo item b mas nenhum após ele. Pela proje- ção de b: {(a(ab)a, (aba), ((ab)b), (ab)}, temos mais quatro padrões. Eles são {(ab) : 4, (ba) : 2, ((ab)) : 2, (aba) : 2}.

• Em seguida é a vez dos padrões contendo item c mas nenhum após ele. A projeção de c: {(a(abc)(ac)c), (ac(bc)a), ((ab)cb), (acbc)}. Podemos encontrar {(ac) : 4, ((bc)) : 2, (bc) : 3, (cc) : 3, (ca) : 2,(cb) : 3} de tamanho 2. Minerando o banco de dados proje- tado de (ac): {(a(abc)(ac)c), (ac(bc)a), ((ab)cb), (acbc)}, gera os seguintes padrões de tamanho 3: {(acb) : 3, (acc) : 3, ((ab)c) : 2, (aca) : 2}.

Podemos em seguida minerar a projeção de (acb): {(ac(bc)a), ((ab)cb), (acbc)}, que não gera nenhum padrão de tamanho 4, terminando então a mineração.

A vantagem do FreeSpan é que ele procura por um banco de dados projetado menor em cada projeção subsequente do que outros algoritmos, como por exemplo o GSP[13]. Porém uma das maiores desvantagens desse algoritmo é que pode acabar gerando muitos bancos de dados projetados que não são triviais. Se um padrão aparece em todas as sequências do banco, seu banco de dados projetado não encolhe, exceto pela remoção de itens não frequentes. Por exemplo, o banco de f contêm três das mesmas sequências que no banco S original, exceto pela remoção de g na sequência 40. Além disso, como uma subsequência de tamanho k pode crescer por qualquer direção, a busca por uma subsequência de tamanho k + 1 vai precisar checar todas as combinações possíveis, o que acaba sendo custoso.

3.3 PrefixSpan

Como visto na seção acima, o FreeSpan tem um custo alto que é o número de bancos de dados projetados que podem acabar sendo criados. Portanto, o próximo passo é tentar reduzir o tamanho dos bancos projetados e o custo de checar cada possível posição de uma sequência em potencial. Para diminuir o custo da checagem podemos fixar a ordem dos itens dentro de cada elemento. Como itens dentro de um elemento podem ser colocados em qualquer ordem, podemos assumir que eles estão sempre ordenados alfabeticamente. Por exemplo, no banco de dados S, a sequência com id 10 passa a ser listada como h(a(abc)(ac)d(c f )) no lugar de (a(bac)(ca)d( f c)). Utilizando essa convenção, a expressão de uma sequência se torna única.

Em seguida, examinamos se podemos fixar a ordem da projeção dos itens na geração de um banco de dados projetado. Intuitivamente, se seguirmos a ordem do prefixo de uma sequência e projetamos somente o sufixo de uma sequência, é possível examinar de maneira ordenada todas as subsequências possíveis e seus bancos de dados projetados associados.

Portanto, utilizando novamente o mesmo banco de dados S e um min

support

= 2, padrões sequenciais podem ser encontrados por um método de projeção baseado em prefixo, seguindo os seguintes passos:

1. Encontre padrões sequenciais de tamanho 1. Eles são (a) : 4, (b) : 4, (c) : 4, (d) : 3, (e) : 3

e ( f ) : 3.

(21)

3.3 PREFIXSPAN

11

prefixo banco de dados projetado

(sufixos)

Padrões sequenciais

hai h(abc)(ac)d(c f )i,

h(_d)c(bc)(ae)i, h(_b)(d f )cbi, h(_ f )cbci

hai, haai, habi, ha(bc)i, ha(bc)ai, habai, habci, h(ab)i, h(ab)ci, h(ab)di, h(ab) f i, h(ab)dci, haci, hacai, hacbi, hacci, hadi, hadci, ha f i

hbi h(_c)(ac)d(c f )i, h(_c)(ae)i,

h(d f )cbi, hci

hbi, hbai, hbci, h(bc)i, h(bc)ai, hbdi, hbdci, hb f i

hci h(ac)d(c f )e,h(bc)(ae)i, hbi,

hbci

hci, hcai, hcbi, hcci hdi h(c f )i, hc(bc)(ae)i, h(_ f )cbi hdi, hdbi, hdci, hdcbi hei h(_ f )(ab)(d f )cbi, h(a f )cbci hei, heai, heabi, heaci, heacbi, hebi hebci, heci, hecbi, he f i, he f bi, he f ci, he f cbi h f i h(ab)(d f )cbi, hcbci h f i, h f bi, h f bci, h f ci, h f cbi

Tabela 3.2: Bancos de dados projetado e padrões sequenciais

2. Divida o espaço de busca. O conjunto completo de padrões pode ser particionado nos se- guintes subconjuntos de acordo com os seis prefixos: os com prefixo (a), os com prefixo (b) . . . e os com prefixo ( f ).

3. Encontre subconjuntos de padrões. O subconjunto de padrões pode ser obtido cons- truindo o conjunto de banco de dados projetado correpondente e minerando cada um recursivamente. Os bancos de dados projetados, bem como os padrões sequenciais en- contrados estão listados na tabela 2. O processo de mineração é explicado a seguir:

(a) Encontrar os padrões com prefixo (a). Somente as sequências contendo (a) devem ser coletadas. Além disso, em uma sequência contendo (a), somente a subsequên- cia prefixada com a primeira ocorrência de (a) deve ser considerada. Por exemplo, na sequência (e f )(ab)(d f )cb, somente a subsequência (_b)(d f )cb deve ser consi- derada para minerar padrões sequenciais prefixados com (a). (_b) significa que o último elemento no prefixo, que é a, junto com b, formam um elemento.

As sequências em S contendo (a) são projetadas para formar o banco de dados pro-

jetado que consiste de quatro sufixos: (abc)(ac)d(c f )), ((_d)c(bc)(ae)), ((_b)(d f )cb)

e ((_ f )cbc). Percorrendo o banco de dados uma vez, encontramos seus itens fre-

quentes locais {a : 2, b : 4, b : 2, c : 4, d : 2, f : 2}. Portanto, todos os padrões sequen-

ciais de tamanho 2 prefixados em (a) são encontrados {(aa) : 2, (ab) : 4, ((ab)) :

2, (ac) : 4, (ad) : 2, (a f ) : 2}. Recursivamente, todos os padrões sequenciais com

prefixo (a) podem ser particionados em seis subconjuntos: aqueles prefixados em

(aa), aqueles prefixados em (ab), . . . e aqueles prefixados em (a f ). Esses subcon-

juntos podem ser minerados pela construção de seus respectivos banco de dados

projetado e minerando cada um recursivamente:

(22)

3.3 PREFIXSPAN

12 i. O banco de dados projetado de (aa) consiste de duas subsequências não vazias {((_b)c)(ac)d(c f ), ((_e))}. Como não é possível gerar mais nenhum padrão sequencial a partir dessas duas subsequências, o processamento nesse banco de dados é terminado.

ii. O banco de (ab) consiste de três subsequências {((_c)(ac)d(c f )), ((_c)a), (c)}.

Minerando recursivamente encontramos quatro padrões sequenciais: ((_c)), ((_c)a), (a) e (c) (i.e, (a(bc)), (a(bc)a), (aba) e (abc)). Formando o conjunto completo de padrões sequenciais prefixados em (ab).

iii. O banco de ((ab)) contém duas subsequências {((_c)(ac)d(c f )), ((d f )cb)}.

O que nos leva aos seguintes padrões: (c), (d), ( f ) e (dc).

iv. O banco de dados de (ac), (ad) e (a f ) podem ser gerados similarmente. Os padrões sequenciais encontrados são mostrados na Tabela 3.2.

(b) Encontrar os padrões com prefixo (b), (c), (d), (e) e ( f ) respectivamente. Sendo feito através da geração e mineração do banco de dados projetado de cada um. O banco de dados projetado e os padrões sequenciais de cada podem ser encontrados na tabela 3.2.

4. Por fim, baseado nos passos acima, o algoritmo de PrefixSpan pode ser descrito como:

Algorithm 1 Prefix-projected sequential pattern mining (PrefixSpan).

Input: Um banco de dados sequencial S, e o suporte mínimo min_support.

Output: O conjunto completo de padrões sequenciais.

Method: Chamar Pre f ixSpan((), 0, S).

Subrountine: Pre f ixSpan(α , len, S

α

).

Os parâmetros são: α é um padrão sequencial, len é o tamanho de α, e S

α

é o banco de dados projetado se α 6= (), caso contrário, é o banco de dados sequencial S.

Method:

1. Escaneia s

α

uma vez, encontra cada item frequente b, onde:

(a) b pode ser adicionado no último elemento de α formando um padrão sequencial;

ou

(b) (b) pode ser adicionado ao fim de α formando um padrão sequencial.

2. Para cada item frequente b, adiciona ao fim de α para formar um padrão sequencial α

e retorna α

.

3. Para cada α

, constroi o banco de dados projetado S

α

, e chama Pre f ixSpan(α

, len +

1, S

α

).

(23)

C APÍTULO 4

Pré-processamento dos dados

Neste capítulo será explicada a estrutura dos dados coletados, e como foi feito o pré- processamento afim de tornar possível rodar o algoritmo de mineração neles.

4.1 Dados de Visita

A coleta dos dados foi feita utilizando a base da In Loco, onde cada dado representa a visita de um smartphone a determinado local. A estrutura do dado pode ser vista na tabela 4.1, onde o id do smartphone representa um identificador único para cada dispositivo dentro da estrutura da empresa, lugares representa a informação que pôde ser coletada sobre onde o dispositivo se encontra, e por fim o timestamp representa a hora em que a visita foi detectada.

A coluna de lugares é sempre um array de arrays. Cada elemento do array mais externo representa um possível local por onde a visita ocorreu. A estrutura de cada elemento pode variar, mas sempre a primeira posição indica o id da geoarea (um tipo de estrutura que consegue dividir o planeta em áreas de tamanho variado) onde se encontra o local, a segunda posição indica a categoria do local visitado, por exemplo: restaurante, cabelereiro, farmácia, entre outros, e também é um array pois um local pode ter várias categorias como é mostrado na segunda linha da tabela 4.1, a terceira posição indica a confiabilidade de que a visita ocorreu no local apontado, a última posição indica o nome do local, e por fim alguns dados conseguem dizer se um local é a casa ou o trabalho do dispositivo, essa informação quando disponível fica na quinta posição do array. As outras posições até onde foi possível analisar continham sempre valores nulos.

A confiabilidade é medida através de LOW, MEDIUM e HIGH. Onde LOW indica que é pouco confiável a informação de que a visita ocorreu ali, MEDIUM indica que há uma certa confiança mas não é possível garantir com certeza, enquanto que HIGH indica que tem-se certeza que a visita ocorreu no local indicado.

Ainda, é possível que exista mais de um elemento dentro do array. Como pode ser ob- servado na primeira linha da tabela 4.1. Normalmente isso ocorre quando não é possível dar confiabilidade HIGH para o local da visita, sendo informado portanto os possíveis locais por onde o dispositivo passou naquele momento.

4.2 Pré-processamento

Foi necessário realizar um pré-processamento nos dados para organizá-los de uma maneira

em que representem a trajetória de cada dispositivo no dia, e para que ele fique na estrutura que

(24)

4.2 PRÉ-PROCESSAMENTO

14

id (anonimizado) places timestamp

1 [[’58b1958b58dae60c1aa185cc’,

[’pharmacy’], ’LOW’, None, None, None, ’Farma logos’], [’58af576858dae60c1a9f0a93’, [’office’], ’LOW’, None, None,

None, ’M3 do Brasil’]]

1570240870405

2 [[’58a9aaff58dae62ca3db254f’,

[’hair_care’, ’well_being’],

’LOW’, None, None, None,

’Mary fashion hair’]]

1570258712494

3 [[None, None, ’HIGH’, None,

[’HOME’], None, None]]

1570212242632

4 [[’58daadc458dae621975a37e2’,

[’restaurant’], ’MEDIUM’, None, None, None, ’Rede

Imperador’]]

1570215021687

Tabela 4.1: Dados de visita

id category timestamp

1 [WORK] 1570279582319

1 [HOME] 1570297253251

2 [restaurant] 1570299731344

2 [[cultural_venue, theater, park]] 1570304366920 2 [[store, grocery_or_supermarket]] 1570305056651

. . . . . . . . .

Tabela 4.2: Visitas ordenadas por id e timestamp

o algoritmo de PrefixSpan e a biblioteca utilizada propõem.

Inicialmente foi feita a ordenação dos dados por id e em seguida por timestamp. Afim de deixar juntos dados com o mesmo id, e ainda por cima já ser possível verificar a trajetória de cada id devido a ordenação pelo tempo em que a visita ocorreu. Além disso foram coletados dos elementos da coluna de places somente informações que iriamos utilizar na mineração, que eram as informações de que o local era a casa ou o trabalho do dispositivo ou então a categoria que o local se encontrava. Para as linhas em que a coluna de places possuia mais de um elemento no array foram coletadas as categorias de cada um deles. Na tabela 4.2 é possível verificar como ficou estruturado o dado.

Após isso foi possível montar a trajetória de cada id. Foi criado um array onde cada ele-

mento representava a categoria do place visitado, ou um array de categorias caso fosse infor-

mado mais de um place, além disso o array também estava ordenado pelo timestamp, então a

visita da posição 0 ocorreu antes da visita da posição 1, que ocorreu antes da visita da posição

(25)

4.2 PRÉ-PROCESSAMENTO

15 id trajectory

1 [[WORK], [HOME]]

2 [[office]]

3 [[restaurant, WORK], [HOME], [HOME]]

4 [[HOME], [store], [HOME], [[store, clothing_store], ...

. . . . . .

Tabela 4.3: Trajetória de cada id Sequência

1 -1 1 2 3 -1 1 3 -1 4 -1 3 6 -1 -2 1 4 -1 3 -1 2 3 -1 1 5 -1 -2 5 6 -1 1 2 -1 4 6 -1 3 -1 2 -1 -2

Tabela 4.4: Exemplo de padrão de entrada utilizado no algoritmo de PrefixSpan do SPMF

2, e assim sucessivamente. A tabela 4.3 mostra como ficou o dado.

Já com as trajetórias montadas, era preciso estruturar o dado para seguir o padrão proposto pelo SPMF[5]. O formato de entrada é definido como mostrado na tabela 4.4. Onde -1 indica o fim de um conjunto de itens e -2 indica o fim da sequência. Por exemplo, a primeira linha indica que a sequência inicia com o conjunto de itens {1}, é seguido pelo conjunto de itens {1, 2, 3}, que é seguido pelo conjunto {1, 3}, seguido pelo conjunto {4}, que é por fim seguido pelo conjunto {3, 6}.

A figura 4.1 mostra como o dado ficou após essa estruturação. Cada categoria ganhou um identificador único, além de que como é possível que em cada visita detectada seja informado mais de um local, cada conjunto de itens continha uma ou mais categorias, cada uma represen- tando a categoria de um dos locais informados.

Figura 4.1: Dados após pré-processamento

Por fim, também foi preciso tratar a estrutura do formato de saída do algoritmo. Na tabela 4.5 são mostrados exemplos desse formato. Onde -1 indica o fim de um conjunto de dados e

#SUP indica o valor de suporte que aquela sequência teve na base de dados.

Foi mapeado de volta cada id para sua categoria correspondente e também criado uma lista

indicando onde foi encontrada cada sequência, como pode-se ver na tabela 4.6.

(26)

4.2 PRÉ-PROCESSAMENTO

16

Resultado

2 3 -1 1 -1 #SUP: 2 6 -1 2 -1 #SUP: 2 6 -1 2 -1 3 -1 #SUP: 2

Tabela 4.5: Exemplo de padrão de saída utilizado no algoritmo de PrefixSpan do SPMF

Sequential Pattern Support Found in

HOME 639 1, 11, 16, 18, 19, 24, 25, 33, 37, 39, 42, ...

[’university’, ’store’] -> car_dealer 88 88, 112, 122, 138, 192, 193, 195, 196, 208, 21...

school -> WORK 51 82, 85, 88, 99, 105, 163, 168, 217, 250, 381, ...

Tabela 4.6: Exemplo de padrões encontrados

(27)

C APÍTULO 5

Experimentos

5.1 Dados

Para este trabalho foram coletados setenta mil dados de visita da base da In Loco, entre os dias 06/10/2019 e 12/10/2019, sendo dez mil dados para cada dia. Vale observar também que apesar da coleta dos dados ser através do SDK[14] da In Loco nos smartphones, não necessa- riamente é possível coletar informações de visitas do dia inteiro de uma pessoa. Há limitações, tanto para impedir que seja utilizada muita bateria dos aparelhos, quanto as impostas pelo sis- tema operacional, que impede que muitos dados sejam coletados em pouco tempo, visando a privacidade do dono do dispositivo.

A partir dos dados coletados, foi possível extrair as trajetórias que cada smartphone fez durante os dias analisados. A quantidade de trajetórias coletadas por dia pode ser vista na tabela 5.1. Foram considerados padrões sequenciais os padrões que possuíam pelo menos 2%

de suporte da base de dados.

5.2 Análises

O algoritmo de PrefixSPan utilizado neste trabalho não encontra necessariamente padrões de trajetórias sucessivas, pode ser que seja encontrado um padrão X -> Y de trajetórias X -> Z -> Y por exemplo. Porém ainda é considerado o intervalo de tempo entre as visitas, não sendo considerados padrões se as visitas estiverem muito distantes um da outra.

Utilizando as trajetórias, foi possível encontrar os padrões sequenciais utilizando o algo- ritmo de PrefixSpan. Inicialmente foram analisados os padrões de maior suporte para cada dia, mostradas nas tabelas 5.2 à 5.8. É possível ver que os padrões de maior suporte são aqueles de

Dia Número de trajetórias extraídas 06/10/2019 2590

07/10/2019 2267 08/10/2019 2259 09/10/2019 2238 10/10/2019 2180 11/10/2019 2104 12/10/2019 2436

Tabela 5.1: Trajetórias extraídas

(28)

5.2 ANÁLISES

18 Trajetória Suporte % da base

HOME 1826 70

HOME -> HOME 997 38

restaurant 650 25

WORK 639 25

store 621 24

Tabela 5.2: Trajetórias de maior suporte do dia 06/10/2019 Trajetória Suporte % da base

HOME 1365 60

WORK 1033 46

HOME -> HOME 685 30

store 634 28

restaurant 593 26

Tabela 5.3: Trajetórias de maior suporte do dia 07/10/2019

tamanho um, e que dentro dos cinco maiores suportes, não há variação de categorias entre os dias observados, sendo casa e trabalho em média os dois maiores, onde casa é sempre o padrão de maior suporte em todos os dias, e trabalho deixa de ficar em segundo lugar somente no final de semana (dias 06/10/2019 e 12/10/2019).

Observa-se que no final de semana os dois padrões de maior suporte são HOME e HOME -> HOME, indicando que normalmente as pessoas ficam mais em casa nesses dias. Além disso no domingo é o dia em que o padrão de trabalho tem menor suporte.

Outra coisa a se analisar é que pode-se tentar prever qual vai ser o próximo local visitado pelo usuário do smartphone. Utilizando o padrão de tamanho um grocery_or_supermarket, é possível calcular a porcentagem de pessoas que foram para suas casas após realizar essa visita, ou seja, a porcentagem de pessoas que fizeram grocery_or_supermarket -> HOME.

Percebe-se que Domingo é o dia em que a maior parte das pessoas que vão para gro- cery_or_supermarket vão para suas casas em seguida com 69% de adesão. Os outros dias da semana também mantêm uma grande porcentagem de pessoas realizando essa trajetória.

Portanto, é seguro dizer que é muito provavél que uma pessoa vá para sua casa pouco tempo depois de visitar um supermercado ou mercearia.

Trajetória Suporte % da base

HOME 1382 61

WORK 1055 47

store 684 30

HOME -> HOME 642 28

restaurant 578 26

Tabela 5.4: Trajetórias de maior suporte do dia 08/10/2019

(29)

5.2 ANÁLISES

19

Trajetória Suporte % da base

HOME 1466 66

WORK 1125 50

HOME -> HOME 777 35

store 639 29

WORK -> WORK 613 27

Tabela 5.5: Trajetórias de maior suporte do dia 09/10/2019

Trajetória Suporte % da base

HOME 1420 65

WORK 1072 49

HOME -> HOME 733 34 WORK -> WORK 610 28

store 606 28

Tabela 5.6: Trajetórias de maior suporte do dia 10/10/2019

Trajetória Suporte % da base

HOME 1357 65

WORK 1036 49

HOME -> HOME 729 35

store 649 31

restaurant 589 28

Tabela 5.7: Trajetórias de maior suporte do dia 11/10/2019

Trajetória Suporte % da base

HOME 1632 67

HOME -> HOME 891 37

WORK 731 30

restaurant 674 28

store 652 27

Tabela 5.8: Trajetórias de maior suporte do dia 12/10/2019

(30)

5.2 ANÁLISES

20

Dia Suporte % da base

06/10 234 09

07/10 189 08

08/10 172 08

09/10 212 09

10/10 173 08

11/10 187 09

12/10 261 10

Tabela 5.9: Suporte de grocery_or_supermarket na base

Dia %

06/10 69 07/10 53 08/10 51 09/10 53 10/10 54 11/10 52 12/10 56

Tabela 5.10: Porcentagem de pessoas que fazem grocery_or_supermarket -> HOME após gro- cery_or_supermarket

média(%) desvio padrão Dias da semana 52.6 1.0

Final de semana 62.5 6.5

Tabela 5.11: Média e desvio padrão de pessoas que realizaram grocery_or_supermarket ->

HOME após grocery_or_supermarket

(31)

5.2 ANÁLISES

21 Após as análises realizadas foi possível percebe que podemos utilizar a mineração de pa- drões sequenciais para ajudar a entender o comportamento das pessoas. Vimos que durante todo o intervalo de tempo observado, casa, trabalho, restaurante e lojas no geral estavam sem- pre entre os padrões de maior suporte. Sendo casa e trabalho os que em média dominavam em relação a maior suporte.

Também foi possível perceber que se forem coletadas trajetórias de pessoas aleatórias, os padrões de maior suporte serão aqueles relacionados a casa ou trabalho, ou os de tamanho um.

O que quer dizer que não existe um padrão longo que é seguido por uma grande porcentagem da base.

Além disso, após pegar um padrão de tamanho um como base, vimos que pode-se prever

para onde uma pessoa irá em seguida.

(32)

C APÍTULO 6

Conclusão

Este trabalho teve como intuito coletar dados de visita da base da In Loco e realizar análises em cima dessa base. Foram geradas trajetórias a partir desses dados e em seguida feita uma mineração para encontrar padrões sequenciais. Foi utilizada uma biblioteca em java chamada SPMF para a geração dos padrões sequenciais. Com as análises percebe-se que tem como gerar inteligência considerando somente a localização das pessoas, e isso pode ser bem útil na área de mídia programática, pois auxilia no direcionamento dos anúncios, podendo contribuir para um maior engajamento do anúncio em questão. Neste trabalho só foi feita a predição de pessoas que iriam de grocery_or_supermarket para suas casas, mas essa análise pode ser estendida para qualquer outro padrão que se deseja analisar.

Como trabalho futuro, pretende-se entender o contexto das pessoas. A partir da coleta de um padrão como por exemplo HOME -> school pode-se fazer a interseção de pessoas que realizam constantemente esse padrão, chegando a conclusão que aquele grupo de pessoas provavelmente são estudantes.

Além disso, os dados coletados não possuiam uma grande quantidade de informação de visitas para cada smartphone em um único dia, por isso futuramente pode-se tentar coletar mais dessas informações e assim conseguir gerar análises mais precisas. Outra coisa a ser feita no futuro seriam análises em locais mais restritos, por exemplo coletar os dados de visitas das pessoas dentro das lojas de um determinado shopping, e assim conseguir encontrar padrões que sejam maiores e gerar um entendimento maior da base de dados.

22

(33)

Referências Bibliográficas

[1] In loco. https://inloco.com.br/pt/. A company that uses geolocation.

[2] Mídia programática. https://pt.wikipedia.org/wiki/Mídia_programática.

[3] What is programmatic advertising. https://www.acuityads.com/blog/2017/12/15/what-is- programmatic-advertising/, Dec. 2017.

[4] C

AO

, H., M

AMOULIS

, N.,

AND

C

HEUNG

, D. W. Discovery of periodic patterns in spatiotemporal sequences. IEEE Transactions on Knowledge and Data Engineering 19, 4 (April 2007), 453–467.

[5] F

OURNIER

-V

IGER

, P. Spmf. http://www.philippe-fournier-viger.com/spmf/. An Open- Source Data Mining Library.

[6] G

AFFNEY

, S.,

AND

S

MYTH

, P. Trajectory clustering with mixtures of regression models.

[7] G

RAHAM

, K. What is real time bidding? https://www.monetizemore.com/blog/real- time-bidding-rtb-explained/, Sept. 2017.

[8] L

EE

, A. J., C

HEN

, Y.-A.,

AND

I

P

, W.-C. Mining frequent trajectory patterns in spa- tial–temporal databases. Information Sciences 179, 13 (2009), 2218 – 2231. Special Section on High Order Fuzzy Sets.

[9] L

EE

, J.-G., H

AN

, J.,

AND

W

HANG

, K.-Y. Trajectory clustering: A partition-and-group framework. Proceedings of the ACM SIGMOD International Conference on Management of Data (01 2007).

[10] L

I

, Z., D

ING

, B., H

AN

, J.,

AND

K

AYS

, R. Swarm: Mining relaxed temporal moving object clusters. PVLDB 3 (09 2010), 723–734.

[11] M

ARVIN

, G. What is an ad exchange. https://martechtoday.com/martech-landscape- what-is-an-ad-exchange-161947.

[12] S

HARMA

, P.,

AND

G

UDLA

, B. Prexspan: Mining sequential patterns by prex-projected pattern. International Journal of Computer Science Engineering Survey 2 (11 2011), 111–122.

[13] S

RIKANT

, R.,

AND

A

GRAWAL

, R. Mining sequential patterns: Generalizations and per-

formance improvements. pp. 3–17.

(34)

REFERÊNCIAS BIBLIOGRÁFICAS

24 [14] V

ALDELLON

, L. What is an sdk? everything you need to know.

https://clevertap.com/blog/what-is-an-sdk/, Jan. 2019.

[15] V

ROUNTAS

, T. What is demand-side platform how does it work?

https://instapage.com/blog/demand-side-platform, Sept. 2019.

[16] Y

E

, Y., Z

HENG

, Y., C

HEN

, Y., F

ENG

, J.,

AND

X

IE

, X. Mining individual life pattern based on location history. pp. 1–10.

[17] Z

AWADZI ´NSKI

, M.,

AND

W

LOSIK

, M. What is a supply-side platform (ssp) and how does it work? https://clearcode.cc/blog/what-is-supply-side-platform/.

[18] Z

HENG

, K., Z

HENG

, Y., Y

UAN

, N. J.,

AND

S

HANG

, S. On discovery of gathering pat- terns from trajectories. In 2013 IEEE 29th International Conference on Data Engineering (ICDE) (April 2013), pp. 242–253.

[19] Z

HENG

, Y. Trajectory data mining: An overview. ACM Transaction on Intelligent Sys-

tems and Technology (September 2015).

(35)

Este volume foi tipografado em L

A

TEX na classe

UFPEThesis

(www.cin.ufpe.br/~paguso/ufpethesis).

Referências

Documentos relacionados

As abraçadeiras tipo TUCHO SIMPLES INOX , foram desenvolvidas para aplicações que necessitam alto torque de aperto e condições severas de temperatura, permitin- do assim,

5.2 Importante, então, salientar que a Egrégia Comissão Disciplinar, por maioria, considerou pela aplicação de penalidade disciplinar em desfavor do supramencionado Chefe

II - que estejam prestando serviço à Casa Cor Brasília e ao CasaPark e/ou que tenham com eles vínculos familiares consanguíneos ou afins, na linha reta ou na colateral, até o

•   O  material  a  seguir  consiste  de  adaptações  e  extensões  dos  originais  gentilmente  cedidos  pelo 

Este medicamento é contraindicado para uso por pacientes que tenham alergia à nimesulida ou a qualquer outro componente do medicamento; histórico de reações de

Câmara dos Santos.. A pesquisa deste casal é divulgada no mundo a partir da publicação do primeiro artigo que tratava da teoria pelo Van Hiele na França, pois até então a teoria

• Capacitação e Transferência da metodologia do Sistema ISOR ® para atividades de Coaching e/ou Mentoring utilizando o método das 8 sessões;.. • Capacitação e Transferência

Este desafio nos exige uma nova postura frente às questões ambientais, significa tomar o meio ambiente como problema pedagógico, como práxis unificadora que favoreça