• Non ci sono risultati.

Esplorazione e mining di dati nel settore fashion retail

N/A
N/A
Protected

Academic year: 2021

Condividi "Esplorazione e mining di dati nel settore fashion retail"

Copied!
61
0
0

Testo completo

(1)

UNIVERSITÀ DI PISA

DIPARTIMENTO DI INFORMATICA

C

ORSO DI

L

AUREA

M

AGISTRALE IN

D

ATA

S

CIENCE AND

B

USINESS

I

NFORMATICS

Esplorazione e mining di dati nel settore fashion

retail

Relatore

Candidato

Mirco NANNI

Daniela MELONI

(2)

Sommario

Abstract ... 1

Capitolo1. Introduzione ... 2

1.1Contesto ... 2

1.2 Contributo della tesi ... 2

1.3 Organizzazione della tesi ... 3

Capitolo 2. Fashion retail ... 4

2.1 Introduzione ... 4

2.2 Caratteristiche del settore fashion retail ... 5

2.3 Ciclo di vita della moda ... 6

Capitolo 3. Background ... 7

3.1 Market Basket Analysis ... 7

3.2 Sequential Pattern Mining ... 8

3.2.1 Formulazione del problema di Sequential Pattern Mining ... 11

3.2.3 Algoritmi di Sequential Pattern Mining ... 11

3.2.4 SPAM ... 13

3.2.5 Tool SPMF ... 17

Capitolo 4. Metodologia ... 19

4.1 Definizione del problema ... 19

4.2 Approccio seguito ... 20

4.3 Esplorazione e preprocessing dei dati ... 22

4.3.1 Esplorazione fonte dei dati ... 22 4.3.2 Esplorazione e preparazione dei dati per l’analisi di sequential pattern mining 27

(3)

2

4.4 Preprocessing ... 32

4.5 Sperimentazioni ... 39

4.5.1 Sequential Pattern Discovery... 39

4.5.2 Sequential pattern su Categoria Merceologica ... 40

4.5.3 Sequential pattern su Categoria Merceologica (analisi per dimensione temporale) ... 44

4.5.4 Sequential pattern su categoria merceologica e colore ... 47

4.5.5 Sequential pattern su categoria merceologica e colore (analisi per dimensione temporale) ... 48

4.5.6 Sequential pattern su categoria merceologica e materiale ... 49

4.5.7 Sequential pattern su categoria merceologica e materiale (analisi per dimensione temporale) ... 51

4.5.8 Sequential pattern su materiale e colore ... 52

4.5.9 Sequential pattern su materiale e colore (analisi per dimensione temporale) .... 53

5.Conclusioni e sviluppi futuri ... 55

(4)

1

Abstract

Grazie ai cambiamenti tecnologici dirompenti, oggi le aziende che operano nel settore della vendita al dettaglio raccolgono e immagazzinano grandi quantità di dati relativi alle transazioni di vendita. Spesso risulta difficile estrapolare dai dati informazioni comprensibili e utili all’intera azienda e, servendosi di queste informazioni, elaborare scelte strategiche per riuscire a fornire prodotti e servizi in linea con le aspettative dei clienti. Nello scenario competitivo del settore retail, l’analisi dei dati generati dai processi aziendali può essere uno dei fattori di maggiore differenziazione per le aziende. Da qui, emerge la crescente necessità per le aziende di avere un effettivo sistema di supporto alle decisioni, che può e deve essere sfruttato per poter creare valore. Nell’ambito del progetto di tesi si vuole introdurre un nuovo strumento di supporto alle decisioni aziendali, che può essere usato per migliorare la qualità ed efficacia delle informazioni disponibili, da integrare con gli strumenti già adottati dall’azienda.

I dati aggregati sulle vendite forniscono una vista di cosa un cliente sta acquistando ma non fornisce una vista su come sta acquistando, in altre parole, in quali combinazioni e in quale ordine. Un metodo usato per determinare ciò è la Market Basket Analysis: una metodologia che, studiando le associazioni tra i prodotti acquistati, e l’ordine temporale in cui vengono fatti, consente di far emergere i legami che intercorrono tra i differenti prodotti, oggetto delle transazioni di vendita. Analizzando i dati di vendita a vari livelli di dettaglio, si è cercato di studiare il comportamento d’acquisto dei clienti con lo scopo di trovare pattern di acquisti che si ripetono nel tempo con una certa regolarità.

L’intero lavoro è stato svolto durante uno stage della durata di sei mesi presso l’azienda Bridge Consulting, che ha messo a disposizione le tecnologie adatte al raggiungimento degli obiettivi di tesi e ha fornito i dati di un’azienda italiana che opera nel settore della moda di lusso, per effettuare la sperimentazione su dati appartenenti al mondo reale.

(5)

2

Capitolo1. Introduzione

1.1 Contesto

I rapidi progressi nella tecnologia di raccolta e archiviazione delle informazioni hanno consentito alle aziende di accumulare una grande quantità di dati e spesso gli strumenti per l'analisi dei dati tradizionali non sono sufficientemente efficienti per produrre risultati significativi. In questa direzione, negli ultimi anni si sono sviluppati numerosi metodi di analisi dei dati che vanno sotto il nome di Data Mining. Il Data Mining è una metodologia di analisi utilizzata per identificare pattern nascosti in un insieme di dati di grandi dimensioni.Questa tecnologia unisce i tradizionali metodi di analisi con sofisticati algoritmi per l'elaborazione di grandi volumi di dati; è utilizzata con successo in diverse aree tra cui, solo in tempi recenti, nel settore della fashion industry. Il data mining nel fashion retail è un'area di ricerca emergente e interessante che identifica regolarità utili, precedentemente sconosciute, estratte dai database di vendite per una migliore comprensione del comportamento e delle preferenze di acquisto dei clienti. La letteratura esistente sull’uso del data mining nel fashion retail riguarda principalmente tecniche come il clustering [1], la classificazione [2], le regole di associazione [3] e la previsione delle vendite [4]. Nell’ambito dei pattern frequenti non sembrano essere stati applicati metodi che tengono conto dell’ordine temporale degli acquisti, nonostante costituisca un fattore fondamentale per analizzare il comportamento d’acquisto di un cliente.

1.2 Contributo della tesi

In questo progetto proponiamo l’uso della tecnica del Sequential Pattern Mining (SPM) per studiare la composizione della shopping bag di un cliente che acquista prodotti di moda con l’obiettivo di scoprire delle regolarità o dei trend negli acquisti. Questa tecnica è stata introdotta da R. Agrawal e R. Srikant nel 1995[5] ed è diventata un importante metodo nel Data Mining. Il Sequential Pattern Mining mira a trovare relazioni tra occorrenze di eventi in sequenza, cioè trovare se esiste uno specifico ordine temporale delle occorrenze.

(6)

3

Il problema più sfidante è quello di identificare la giusta granularità per i sequential pattern a causa della cosiddetta “curse of cardinality” [6]. In particolare, la ricerca dei sequential pattern è resa più difficile per quei dati rappresentati da un numero elevato di valori distinti, come nel caso in analisi, dove i prodotti acquistati sono identificati da un codice univoco (SKU).

Abbiamo, quindi, effettuato le analisi non sul codice rappresentativo di ogni singolo prodotto, ma ad un livello più alto. Abbiamo creato delle aggregazioni ad hoc di prodotti in base alle caratteristiche dello stesso, che ci hanno consentito di effettuare diverse analisi, per poi effettuare la ricerca di sequential pattern usando opportuni algoritmi esistenti in letteratura.

Il dataset studiato ci ha permesso di illustrare una metodologia generale che può essere applicata ad ogni azienda del settore del fashion retail con una fase preliminare di preprocessing sui dati originali.

1.3 Organizzazione della tesi

Nel Capitolo 2 sono descritte le principali caratteristiche del fashion retail, il settore per il quale il progetto è stato sviluppato.

Nel Capitolo 3 viene presentata una panoramica sullo stato dell’arte della Market Basket Analysis. In particolare, viene trattata la tecnica del sequential pattern mining. Si sceglie un particolare algoritmo: SPAM; si evidenziano le motivazioni della scelta, la struttura dell’algoritmo e le decisioni implementative.

Nel Capitolo 4 sono descritti i concetti fondamentali e i principali steps della nostra metodologia. Dopo aver introdotto il problema e l’approccio analitico seguito, viene illustrato come i dati degli acquisti possono essere processati per la sequential pattern analysis. Vengono poi mostrati i più interessanti sequential pattern trovati dall’algoritmo SPAM per ogni tipologia di analisi effettuata e infine viene data una interpretazione dei risultati.

(7)

4

Capitolo 2. Fashion retail

Al fine di comprendere al meglio gli obiettivi proposti dall’elaborato, è importante considerare il settore in cui si colloca l’analisi svolta: il fashion retail. Vengono di seguito illustrate brevemente le caratteristiche ritenute rilevanti per il progetto di tesi, quelle che contribuiscono a spiegare le scelte implementative fatte e i risultati ottenuti.

2.1 Introduzione

L’industria della moda una delle industrie più importanti al mondo e riveste un ruolo chiave nell’economia mondiale. L’obiettivo finale di un’azienda appartenente al settore del fashion è quello di creare e introdurre sul mercato prodotti sempre nuovi che soddisfino le esigenze dei consumatori, proponendo soluzioni che risultino essere un buon compromesso tra l’innovazione e quanto proposto in passato.

In passato il termine fashion si riferiva quasi unicamente al settore dell’abbigliamento o in qualche caso pelletteria. Oggi la definizione di fashion Industry include altri settori come quello dei gioielli, orologi, occhiali, cosmesi e profumi, anch’essi fortemente influenzati dal fattore moda.

All’interno di questo settore si inseriscono sia i prodotti di lusso caratterizzati da prezzo elevato, qualità eccellente, stile ricercato ed esclusività, estetica e simbolismo, sia il segmento del fast fashion. I prodotti di lusso sono caratterizzati oltre che dalle componenti funzionali citate sopra, che ne identificano le caratteristiche, anche da una componente emozionale che influisce sulla percezione che le persone hanno nei confronti del brand. Sono dettate principalmente dalla forte identità e dall’immagine della marca, a differenza delle componenti funzionali che sono presenti in ogni prodotto di lusso. Le aziende del fast fashion sono rivolte alla reattività: gli stili sono definiti in base agli interessi del cliente piuttosto che dello stilista, e sono caratterizzate da un’esplosione del numero di collezioni durante l’anno per rispondere rapidamente alle esigenze del mercato. Nonostante le collezioni di dividano principalmente in Primavera-Estate e Autunno-Inverno, gli articoli di ogni collezione possono subire cambiamenti anche durante la stagione in corso.

(8)

5

2.2 Caratteristiche del settore fashion retail

Christopher et al. (2004, 1997) [7] identificano quattro elementi principali in cui si trovano ad operare le aziende appartenenti al settore fashion:

• Ciclo di vita breve: i prodotti sono disegnati per rispondere ad un bisogno emerso in un determinato momento e, di conseguenza, sono vendibili in un arco temporale ristretto, solitamente qualche mese o, nei casi più estremi, poche settimane;

• Bassa prevedibilità: a causa proprio della volatilità diventa difficile prevedere la domanda con elevata accuratezza;

• Acquisto istintivo: la maggior parte delle decisioni di acquisto vengono prese nel punto vendita senza premeditazione. Esiste, quindi, il fattore critico della disponibilità nel punto vendita.

• Elevata volatilità: la domanda per questa tipologia di prodotto è raramente stabile e lineare e può essere influenzata da fattori poco prevedibili.

Altre caratteristiche distintive di questo settore sono:

• Elevata varietà di gamma di prodotto offerta dalle aziende: questa caratteristica risulta essere una diretta conseguenza dei cicli di vita dei prodotti stessi sempre più brevi; il bisogno continuo di rinnovare la propria offerta porta all’aumento del numero di collezioni proposte in un anno e anche del numero di prodotti presenti in ogni collezione.

• Stagionalità. Nell’industria del fashion, qualche prodotto è logicamente molto sensibile allo scorrere delle stagioni, come ad esempio i maglioni o i costumi da bagno, altri non ne sono condizionati, come le borse o accessori.

• Variabili esogene. Il mercato del fashion retail è fortemente influenzato da numerosi fattori che rendono le vendite molto fluttuanti. Questi fattori, o variabili esplicative, a volte sono incontrollabili, possono impattare le vendite in modo più globale, come

(9)

6

l’ambiente macroeconomico o la competizione del settore; altre possono essere controllate dall’azienda come le strategie di marketing e di vendita.

2.3 Ciclo di vita della moda

Ogni moda possiede un proprio ciclo di vita, costituito da cinque stadi: introduzione, picco di massima popolarità, diffusione, declino e rigetto. È l’applicazione al settore moda della teoria del marketing del ciclo di vita del prodotto. La lunghezza del ciclo non è unica: possono esserci cicli classici, di lunghissima durata, per capi basic; i fads cioè cicli di brevissima durata che nascono e muoiono all’interno di un ciclo; il ciclo all’interno del ciclo, solitamente di lunga durata, nel quale è inserito un altro o più cicli. Ad esempio, i jeans negli ultimi vent’anni sono stati venduti decorati, ricamati, strappati, stretti a sigarette, a zampa di elefante, larghi.[8]

Si possono classificare i prodotti presenti in ogni collezione basandosi sulla durata del ciclo di vita del prodotto stesso. È possibile distinguere:

• Prodotti basic o carry-over: rappresentano circa il 20% del mercato e sono venduti in più stagioni durante l’anno. Una volta terminata la fase di lancio, tali prodotti hanno una lunga fase di maturità (tipicamente anni) in cui le vendite si assestano su un certo livello, e questo rende relativamente semplice la previsione sul mercato finale;

• Prodotti stagionali: rappresentano circa il 45% del mercato ed hanno un ciclo di vita di circa cinque mesi. Vengono riproposti a stagioni alternate e, nonostante il ciclo di vita breve all’interno della singola stagione, è possibile utilizzare i dati storici per il processo di previsione della domanda;

• Prodotti fashion: rappresentano circa il 35% del mercato ed hanno un ciclo di vita di circa 3 mesi. Le vendite ai consumatori finali si concentrano nella prima metà del ciclo di vita, che è talmente breve da non garantire una vera e propria fase di maturità.

(10)

7

Capitolo 3. Background

In questo capitolo introduciamo la teoria relativa alla Market Basket Analysis per parlare dopo di una sua applicazione, il Sequential Pattern Mining, e la descrizione dei principali algoritmi usati per estrarli dai dati.

3.1 Market Basket Analysis

I dati [aggregati] sulle vendite forniscono una vista di cosa un cliente sta acquistando ma non fornisce una vista su come sta acquistando, in altre parole, in quali combinazioni, in quali quantità, e in quale ordine. Un metodo usato per determinare ciò è la Market Basket Analysis.[9]

La Market Basket Analysis (MBA) è una metodologia del Data Mining utile per scoprire interessanti relazioni nascoste in data set di grandi dimensioni. È una tecnica utile in un grande numero di applicazioni, che includono pattern di accesso al web, processi di analisi di esperimenti scientifici, analisi del DNA, predizione di disastri naturali, (bioinformatica, web mining, analisi dei dati scientifici), nasce principalmente come metodo di analisi del comportamento dei consumatori, e originariamente fu applicato ai dati delle transazioni dei supermarket. Il suo nome infatti fa riferimento al cestino della spesa, basket, dove il cliente inserisce tutti i prodotti che acquista. Quindi, relativamente a questo campo di applicazione, oggi questo non è più solo limitato all’analisi delle transazioni di un supermercato, ma al settore delle vendite in generale (comprendendo sia canali di vendita fisici che online). L’obiettivo della MBA è quello di identificare le relazioni tra i prodotti nel carrello di un cliente e l’ordine in cui questi acquisti sono fatti, in modo da fornire informazioni utili che i manager potranno sfruttare per progettare delle efficaci strategie di marketing a supporto di una varietà di applicazioni legate al mondo del business come: promozioni di marketing, gestione del magazzino e gestione delle relazioni con i consumatori (CRM).

(11)

8

I principali metodi usati per condurre la MBA sono esplicativi ed esplorativi.

L’obiettivo dei metodi esplicativi è quello di identificare e quantificare gli effetti che le diverse variabili di marketing (ad esempio promozione, prezzo) hanno sulla scelta di diversi prodotti da parte dei clienti. Dall’altro lato, i metodi esplorativi si pongono come principale obiettivo quello di scoprire associazioni nascoste tra i prodotti all’interno del basket, che potenzialmente potrebbero essere interessanti per il management. Questo è possibile grazie alla rilevazione delle relazioni di dipendenza presenti tra diversi prodotti.

In questo progetto di tesi verrà fatto riferimento all’approccio esplorativo, in particolare alla tecnica del Sequential Pattern Mining o Sequential Pattern Discovery.

3.2 Sequential Pattern Mining

Risulta importante definire alcuni concetti alla base di questa tecnica e gli algoritmi sviluppati per scoprire i Sequential pattern. La tabella 3.1.b fa da riferimento per i vari esempi riportati insieme alle definizioni.

UID Timestamp Eventi

C1 10 2,3,5 C1 20 6,1 C1 23 1 C2 11 4,5,6 C2 17 2 C2 21 7,8,1,2 C2 28 1,6 C3 14 1,8,7

Figura 3.1.a Esempio di database di transazioni d’acquisto

Ogni istanza del database di sequenze illustrato è una tupla (SID, si), dove SID è l’identificativo univoco della sequenza s. Nel nostro caso ciascuna sequenza rappresenta la lista delle transazioni di vendita associate ad un cliente (C1 rappresenta il cliente 1, C2 rappresenta il cliente 2 e così via).

(12)

9

SID Sequenza

C1 <(2,3,5), (1,6), (1)>

C2 < (4,5,6), (2), (1,2,7,8), (1,6) > C3 < (1,7,8) >

Tabella 3.1.b Esempio di un database di sequenze

Definizione 3.1 (Insieme di items). I è l’insieme di n distinti elementi chiamati items. Formalmente:

I = {i1, i2, . . . , in}, n ∈ ℕ.

Nel nostro esempio I = {1, 2, 3, . . . , 8}. Ciascun numero è un item, può rappresentare un prodotto venduto da un negozio (una camicia, una t-shirt, una borsa e via dicendo).

Definizione 3.2 (Itemset). Un itemset A è un sottoinsieme non vuoto di I.

Formalmente:

A ⊆ I, A ≠ ∅

Nel nostro esempio la sequenza s identificata da SID = C1 è composta da 3 itemset. Il primo è (2, 3, 5), il secondo è (1, 6) e il terzo è (1).

Definizione 3.3 (Sequenza). Una sequenza s è una lista ordinata di itemset.

Formalmente:

s= <A1, A2, … , An> , Aj ⊆ I, Aj ≠ ∅, 1 ≤ j ≤ n , n ∈ ℕ

Aj è detto elemento della sequenza. Nel nostro esempio la seconda colonna individua le sequenze s identificate dai rispetti SID. Per SID = C1, s = <(2,3,5),(1,6),(1)>. Data una sequenza s indichiamo con Ls la sua lunghezza intesa come il numero di singoli item che ne fanno parte. Ad esempio, per SID = C1, Ls = 6.

Definizione 3.4 (Sottosequenza). Date due sequenze s1 e s2, diciamo che s1 è sottosequenza di s2 ( e s2 è una super-sequenza di s1) se la prima è contenuta nella seconda.

Formalmente:

s1 = <A1, A2, … , Ak> , s2 = <B1, B2, . . . , Bm> s1 ⊆ s2 sse ∃ 1 ≤ j1 < j2 · · · < jk ≤ m

(13)

10

tale che A1 ⊆ Bj1 , A2 ⊆ Bj2 , . . . , Ak ⊆ Bjk k ∈ ℕ, m ∈ ℕ

Per fare un esempio, la sequenza < (7, 8) > è una sottosequenza della sequenza < (4, 5,6),(2),(1,2,7,8),(1,6) > e anche di < (1,7,8)>.

Definizione 3.5 (Database di sequenze). Un database di sequenze DS è un insieme di istanze di tipo tupla <SID, si>, dove SID è l’identificativo univoco dell’istanza ed s è una sequenza come descritto precedentemente. Formalmente:

DS = {<C1, s1>, <C2, s2> , . . . , <CN,sn> }, n ∈ ℕ. La tabella 3.1.b è un database di sequenze.

Definizione 3.6 (Sequential Pattern). Dato un database di sequenze DS, una sequenza s è chiamata Sequential Pattern se è sottosequenza di almeno una tupla <SID, Si> in DS. Formalmente:

∃ <SID, Si > tale che (<SID, s> ∈ DS) ∧ (s ⊆ S)

Definizione 3.7 (Supporto di Sequential Pattern). Il supporto di un Sequential Pattern s

in un database di sequenze è il numero di tuple del database che contengono s. In riferimento alla tabella 3.1.b, il supporto della sequenza < (7, 8) > è 2 perché sono due le istanze del database di sequenze che la contengono. Il supporto relativo è calcolato con il rapporto tra il supporto definito sopra (detto supporto assoluto) e il numero di sequenze del database. In riferimento all’esempio precedente, il supporto relativo è 0.66 (66%) perché le istanze che contengono la sequenza sono 2 su un totale di 3.

Definizione 3.8 (Frequent Sequential Pattern). Dato un numero intero positivo minsup,

detto supporto minimo, una sequenza s è detta Frequent Sequential Pattern in un database di sequenze DS se è contenuta almeno in un numero minsup di tuple del database. Formalmente:

(14)

11

3.2.1 Formulazione del problema di Sequential Pattern Mining

Dato un dataset di sequenze Ds e una soglia di supporto minino minsup, definita dall’utente, un problema di Sequential Pattern Mining consiste nel trovare tutte le sequenze con supporto ≥ minsup.

Facendo riferito al dataset della tabella 3.1.b, il supporto della sequenza <{1,6}> è uguale al 66% perché è presente in due delle tre sequenze (ogni oggetto eccetto C). Assumendo che la soglia di minimo supporto sia 50%, ogni sequenza che appare in almeno due sequenze è considerata essere un sequential pattern. Esempi di sequential pattern estratti dallo stesso dataset includono <{6}{1}>,<{1,7,8}>,<{1}{1}> , etc.

3.2.3 Algoritmi di Sequential Pattern Mining

In letteratura, sono stati sviluppati diversi algoritmi per risolvere questo problema.

Tutti gli algoritmi di sequential pattern mining prendono come input un database di sequenze e una soglia di supporto minimo e producono un insieme di sequential patterns. È importante notare che c’è sempre una sola risposta corretta per lo stesso database e lo stesso minsup passato in input. La differenza tra i vari algoritmi non è l’output, ma è il modo in cui ogni algoritmo trova i sequential pattern. Gli algoritmi infatti usano diverse strategie o diverse strutture dati per ricercare efficientemente i sequential pattern. Il risultato è che qualche algoritmo risulta più efficiente di altri, in termini di tempo e memoria occupata. [10]

Alcuni richiedono la generazione di itemset candidati nello stile di Apriori, come GSP e SPAM; altri invece evitano la generazione dei candidati, come PrefixSpan.

Gli algoritmi di sequential pattern si possono anche classificare in base al tipo di ricerca. Distinguiamo:

• Algoritmi BFS (Breadth First Search) -based. Riprendono tecniche di Apriori poiché generano le sotto-sequenze “in ampiezza”: al primo passo generano tutte le sottosequenze di lunghezza uno, al secondo tutte quelle di lunghezza due e così via. Appartiene a questa categoria, ad esempio, GSP.

(15)

12

• Algoritmi DFS (Depth First Search) -based. Generano le sottosequenze “in profondità”: per ogni sottosequenza frequente, di lunghezza uno, trovata, vengono subito generate tutte quelle di lunghezza superiore fino a quella massima; vengono poi rimosse quelle che non rispettano la soglia del supporto minimo. Appartengono a questa categoria, ad esempio, PrefixSpan e SPAM.

Nelle sezioni successive presentiamo l’idea base degli algoritmi della categoria Apriori-like, con maggiore attenzione all’algoritmo SPAM perché è quello che è stato utilizzato per l’estrazione dei pattern sequenziali nel Capitolo 4.

Algoritmi Apriori-like.

Il principio Apriori, usato per la ricerca di regole associative, si può applicare anche ai sequential pattern. Il principio fondamentale per l’estrazione di pattern frequenti dice che: “Se un itemset è frequente, tutti gli itemset in esso contenuti sono frequenti. Inoltre, se un itemset è infrequente, tutti gli itemset che lo contengono devono essere anch’essi infrequenti.” Nel caso di pattern sequenziali abbiamo che se una k-sequenza è frequente, allora tutte le sue (k−1) -sottosequenze devono essere frequenti. La validità di questo principio permette di usare un algoritmo Apriori-like che iterativamente genera nuove k-sequenze candidate, fa il pruning di candidati le cui (k − 1)- k-sequenze sono infrequenti e calcola il supporto dei candidati rimanenti per individuare i pattern sequenziali.

Timing constraints.

Alcuni algoritmi, tra cui SPAM, danno la possibilità di gestire vincoli temporali sugli eventi e sugli elementi del pattern, per rendere più efficace la ricerca dei sequential pattern.

• MaxSpan: specifica il massimo intervallo temporale tra il primo e l’ultimo evento nella sequenza. Aumentando MaxSpan aumenta la probabilità di trovare una sottosequenza in una sequenza, ma aumenta anche il rischio di correlare due eventi troppo distanti temporalmente.

(16)

13

• MinGap: specifica il minimo intervallo temporale che deve trascorrere tra il verificarsi di eventi contenuti in due elementi diversi.

• MaxGap: specifica il massimo intervallo temporale entro il quale gli eventi contenuti in un elemento devono svolgersi rispetto a quelli contenuti nell’evento precedente • Finestra Temporale: specifica l’intervallo temporale entro il quale due eventi

avvenuti in tempi diversi devono essere considerati contemporanei.

3.2.4 SPAM

L’algoritmo SPAM (Sequential PAttern Mining), è stato introdotto nel 2002 da Ayres [11] ed è basato sulla proprietà Apriori. L’originalità di SPAM sta nel fatto che la fase di generazione dei candidati e quella di pruning sono eseguite contemporaneamente, con una sola scansione del database. Questo lo rende uno degli algoritmi più efficienti. Per la fase di generazione dei candidati l’algoritmo usa una struttura ad albero (tree-base technique). Il livello k dell’albero, dove ogni nodo rappresenta una sequenza, contiene l’insieme completo delle sequenze di lunghezza k, che occorrono nel database. I nodi di ogni livello sono generati dai nodi del livello precedente usando due tipi di estensioni:

• S-step (Sequence extension), una sequenza è estesa aggiungendo un nuovo itemset alla fine della sequenza, ad esempio <(1,2)(3)>

• I-step (Itemset extension) l’ultimo itemset nella sequenza è esteso aggiungendo un item, ad esempio <(1 2 3)>.

(17)

14

Figura 3.1 Albero lessicografico delle sequenze utilizzato da SPAM

L’albero delle sequenze viene attraversato usando la tecnica depth-first search. Se viene trovata una sequenza non frequente, il sottoalbero del nodo che rappresenta la sequenza viene tagliato. Se la sequenza è frequente, i nodi dell’albero che rappresenta quella sequenza vengono mantenuti. Per la fase di conteggio del supporto SPAM usa una rappresentazione verticale del database di sequenze. Come mostrato nella tabella 3.3, usando una rappresentazione verticale del database sono riportati gli itemset in cui ogni item i è presente all’interno del database di sequenze. Questo tipo di informazione è chiamata idList. Ad esempio, la idList dell’item 1 indica che questo elemento compare nel secondo e terzo itemset della prima sequenza, nel terzo e nel quarto itemset della seconda sequenza, nel primo itemset della terza.

1 SID itemset C1 2,3 C2 3,4 C3 1 2 SID itemset C1 1 C2 2,3 C3 3 SID itemset C1 1 C2 C3

(18)

15 4 SID itemset C1 C2 1 C3 5 SID itemset C1 1 C2 1 C3 6 SID Itemset C1 2 C2 1,4 C3 7 SID itemset C1 C2 3 C3 1 8 SID itemset C1 C2 3 C3 1

Tabella 3.3 Esempio di rappresentazione verticale Dataset di sequenze

Gli algoritmi che usano questa rappresentazione risultano essere molto efficienti perché sono in grado di esplorare l’intero spazio di ricerca dei pattern scandendo una sola volta il database di sequenze, per creare le idList dei singoli item. Le idList di ciascun pattern, che di volta in volta viene incontrato durante l’esplorazione, vengono calcolate attraverso l’operazione di giunzione delle relative idList, e permettono di calcolare in maniera immediata il supporto del pattern.

Il supporto del pattern, infatti, è il numero di sequenze distinte nella propria idList. Tutti i pattern frequenti sono perciò enumerati effettuando una sola scansione del database e senza tenere in memoria un grande numero di pattern.

Un’ulteriore ottimizzazione consiste nella rappresentazione delle idList, tramite una ricodifica delle stesse, in vettori di bit, chiamati BitMap.[12] Questo tipo di rappresentazione è quella che viene usata da SPAM. Le idList possono essere molto lunghe quando i pattern compaiono in molte sequenze, ad esempio in database molto densi, costituiti da sequenze molto lunghe. Di conseguenza, l’operazione di giunzione delle idList risulta molto costosa perché è necessario confrontare tutti gli elementi delle idList interessate. Utilizzando la rappresentazione BitMap, per ogni elemento o pattern, si avrà un vettore di bit di lunghezza uguale al numero totale di itemset nel dataset di sequenze. Ogni bit è impostato al valore 1

(19)

16

se l’elemento o il pattern sono presenti nell’itemset rappresentato dal bit, oppure 0 nel caso contrario. L’operazione di giunzione delle idList può essere effettuata con l’operazione di AND logico tra i vettori BitMap delle idList. [13] Nella tabella 3.4 è mostrata la rappresentazione BitMap delle idList.

item BitMap 1 01100111 2 10001100 3 10000000 4 00010000 5 10010000 6 01010010 7 00000101 8 00000101

Tabella 3.4 Rappresentazione BitMap delle IdList

Supponiamo ad esempio di voler generare i candidati (2),(1). Per estendere una sequenza, la S-step trasforma il bitmap corrispondente all’item 2, sostituendo la prima occorrenza di 1 con 0, e mette 1 nelle rimanenti posizioni del vettore (per ogni transazione del cliente). Dopo viene eseguita l’operazione di AND tra il vettore trasformato e il vettore dell’item 1. La fase I-extension è successivamente eseguita con un AND tra due vettori, perché 1 e 2 devono occorrere contemporaneamente. Queste due fasi sono descritte nella tabella 3.5.

Figura 3.5 Rappresentazione BitMap degli item 1 e 2. S-step process sulla sequenza bitmap {2}

2 1 0 0 0 1 1 0 0 1 0 1 1 0 0 1 1 1 {2}s 0 1 1 0 0 1 1 0 {2}{1} 0 1 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1

(20)

17

3.2.5 Tool SPMF

SPMF (Sequential Pattern Mining Framework) [13] è una libreria di data mining open source, scritta in Java, specializzata nel pattern mining. Offre implementazioni di 178 algoritmi di data mining per diversi tipi di applicazioni: sequential pattern, sequential rule mining, association rule mining, itemset mining, sequence prediction, periodic pattern mining, episode mining, high-utility pattern mining, time-series mining, clustering e classificazione.

Il codice sorgente di ciascun algoritmo può essere facilmente integrato in altri software Java. Inoltre, SPMF può essere utilizzato come programma autonomo con una semplice interfaccia utente o dalla riga di comando. La versione attuale è la v2.40 ed è stata rilasciata il 23 ottobre 2019.

Figura 3.4 Interfaccia grafica di SPMF

Il tool SPMF richiede in input un file di testo, con un dataset di sequenze, dove ogni riga rappresenta una sequenza. Ogni item di una sequenza è un intero positivo e gli items che appartengono allo stesso itemset di una sequenza sono separati da uno spazio. Gli item dentro l’itemset devono essere ordinati, ed ogni item non può apparire più di una volta

(21)

18

nello stesso itemset. Il valore -1 indica la fine di un itemset. Il valore -2 indica la fine di una sequenza (ed è presente alla fine di ogni riga).

Riportiamo un esempio di file di input con un dataset di quattro righe (quattro sequenze):

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 5 -1 7 -1 1 6 -1 3 -1 2 -1 3 -1 -2

La prima riga rappresenta una sequenza dove l’itemset {1} è seguito dall’itemset {1, 2, 3} seguito dall’itemset {1, 3} seguito dall’itemset {4} seguito dall’itemset {3, 6}. Le righe successive seguono lo stesso formato.

Una volta eseguito l’algoritmo, il tool produrrà in output un file di testo, dove ogni riga è un sequential pattern frequente. Ciascun item di un sequential pattern è un intero positivo e gli item all’interno di uno stesso itemset all’interno di una sequenza sono separati da uno spazio. Il valore -1 indica la fine di un itemset. In ogni riga di output è riportato prima il pattern frequente e poi la keyword “#SUP:” seguita da un intero che indica il supporto del pattern, cioè il numero di sequenze che lo contengono.

Prendendo come riferimento il dataset di sequenze dell’esempio sopra, il file di output mostrerà, tra le altre, le seguenti righe:

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

La prima riga, ad esempio, indica che il sequential pattern frequente formato dall’itemset {2, 3} seguito dall’itemset {1} ha supporto di 2 sequenze.

(22)

19

Capitolo 4. Metodologia

Nelle seguenti sezioni descriviamo i concetti fondamentali e i principali steps della metodologia proposta. Nelle sezioni 1 e 2 introduciamo il problema e l’approccio analitico seguito. In seguito, nella sezione 3 esploriamo i dati con l’ausilio di grafici e statistiche e nella sezione 4 illustriamo come i dati degli acquisti possono essere processati per la sequential pattern analysis. Nella sezione 5 mostriamo i più interessanti sequential pattern trovati dall’algoritmo SPAM per ogni tipologia di analisi effettuata e diamo una interpretazione dei risultati.

4.1 Definizione del problema

Il presente progetto di tesi è un problema di Sequential Pattern Mining. Il focus principale dell’analisi è sui prodotti acquistati per ogni transazione di vendita e sul periodo in cui vengono fatti gli acquisti. Vogliamo ricercare dei pattern che spieghino il comportamento d’acquisto dei clienti nell’ambito fashion retail.

Un pattern è il risultato dell’estrazione dei dati. Indica una struttura, un modello, o, in generale, una rappresentazione sintetica dei dati. Un pattern deve essere:

• comprensibile, da un punto di vista semantico e sintattico, affinché l’utente lo possa interpretare;

• potenzialmente utile, affinché l’utente lo possa comprendere; • valido sui dati con un certo grado di confidenza;

• precedentemente sconosciuto.

Ad esempio, un pattern potrebbe indicare che i clienti che hanno acquistato il prodotto “Portafoglio in pelle” acquistano il prodotto “Borsa in pelle” dopo tre mesi. Questo suggerisce una possibilità di cross-selling, e l’assistente di vendita potrebbe contattare i clienti e provare a vendere il prodotto “Borsa in pelle” entro i tre mesi.

(23)

20

4.2 Approccio seguito

L’applicazione della MBA in generale, e del SPM in particolare applicato al settore del fashion retail, richiede un approccio diverso rispetto a quello del classico caso del supermarket, per una serie di motivi:

• il settore della moda è stagionale, le collezioni infatti cambiano ogni anno. I prodotti del settore fashion di una certa collezione non sono mantenuti l’anno successivo e questo rende difficile capire quale tipo di prodotti sono comprati insieme o in sequenza.

• Inoltre, il prodotto fashion non solo cambia ogni anno, ma sono presenti più collezioni durante l’anno; se consideriamo la collezione estiva, gli acquisti fatti a gennaio sono diversi da quelli fatti a luglio. Questo rende difficile trovare pattern comuni.

• Ci sono numerosi fattori che influenzano gli acquisti come, ad esempio, la vetrina del negozio e la disposizione interna che cambia ogni mese, o anche più volte. Queste rotazioni sono alla base delle strategie visuali e hanno effetti sulle vendite, mirano ad incrementare la visibilità di un singolo prodotto in un certo periodo. • Un altro aspetto da considerare è che gli acquisti non vengono fatti per necessità o

per soddisfare un bisogno primario, come possono essere quelli fatti al supermercato, ma presentano anche una componente sociologica e/o psicologica.

Per il dinamismo del particolare settore analizzato, sulla base delle considerazioni precedenti abbiamo seguito il seguente approccio:

• Non sono state analizzate sequenze di specifici prodotti (singole SKU), ma abbiamo usato livelli di aggregazione più alti, per esempio classificando i prodotti per gruppi. Le aggregazioni portano ad una perdita di informazione sui dettagli della transazione e pongono il problema sulla scelta del giusto livello di aggregazione. Sulla base della classificazione dei prodotti adottata dall’azienda abbiamo creato delle descrizioni (poi codificate con un ID numerico) del prodotto, a diversi livelli di dettaglio, che andranno a sostituire la singola SKU presente in ogni riga della transazione associata al singolo cliente. Ad esempio, in una delle analisi fatte sono stati raggruppati tutti i

(24)

21

prodotti che appartengono alla stessa categoria merceologica (Borse, Scarpe, Accessori).

• Abbiamo aggiunto un ulteriore livello di dettaglio alle analisi precedenti, unendo esplicitamente la dimensione temporale associata alla transazione al prodotto stesso, per avere un’analisi dettagliata delle dipendenze temporali tra gli acquisti. Ad esempio, un prodotto può essere rappresentato da un ID numerico formato da un prefisso che rappresenta il mese in cui è avvenuto l’acquisto, mentre il suffisso rappresenta l’ID della descrizione del prodotto.

Le operazioni descritte sopra hanno prodotto come risultato un insieme di dataset di transazioni. Ogni riga del dataset memorizza l’occorrenza di eventi associati ad un particolare oggetto in un dato tempo. In particolare, vengono considerati come eventi gli acquisti fatti da un cliente. Ordinando tutti gli eventi associati allo stesso oggetto, in modo crescente rispetto al loro timestamp, si ottiene una sequenza. Il basket, che verrà chiamato shopping bag, per adattarlo meglio al contesto applicativo, di un cliente può essere visto come una sequenza i1i2 . . . iN di N acquisti, dove ik precede ij nella sequenza se k è stato fatto allo stesso tempo o prima di ij. L’informazione temporale consente di collocare gli acquisti in una sequenza ⟨e1e2 . . . en⟩ dove ogni elemento è una collezione di uno o più prodotti acquistati nello stesso periodo. L’informazione temporale (timestamp) scelta per le analisi è l’anno-mese, ricavata dalla data di vendita, registrata nel database, nel quale gli acquisti sono stati fatti.

L’input di un problema di SPM è infatti un dataset di sequenze di transazioni, che sono state poi analizzate tramite algoritmi di sequential pattern minig.

In particolare, abbiamo scelto l’algoritmo SPAM (Sequential PAttern Mining) nella implementazione fornita all’interno della suite SPMF. La scelta di questo algoritmo è data dal fatto che ci permette di utilizzare dei vincoli temporali ed è molto efficiente in presenza di sequenze lunghe.

Scegliendo un valore di minimo supporto e il vincolo temporale, che ci permette di considerare sequenze di acquisti non troppo lontani nel tempo, l’output sono pattern di

(25)

22

acquisti ricorrenti, analizzati ad un certo livello di dettaglio, che verosimilmente possono essere d’interesse per l’azienda oggetto del caso di studio.

Di seguito vengono descritte tutte le fasi del progetto. Abbiamo adottato la metodologia standard per la realizzazione dei progetti di Data Mining, che si basa sul modello CRISP-DM [15], partendo dall’esplorazione dei dati dalla fonte, per poi passare alla fase di esplorazione del data set e data understanding, e successiva fase di data preparation per l’applicazione del modello di data mining. Infine, quella di validazione e valutazione del modello stesso, attraverso l’analisi dei risultati.

4.3 Esplorazione e preprocessing dei dati

L’analisi esplorativa dei dati (Exploratory Data Analysis) si riferisce al processo critico di effettuare una investigazione iniziale sui dati per individuare pattern, scoprire anomalie, testare ipotesi o verificare assunzioni, con l’aiuto di statistiche e rappresentazioni grafiche.

4.3.1 Esplorazione fonte dei dati

L’intera base di dati relativa al venduto contiene informazioni sui negozi, sui prodotti e sui clienti, coprendo un arco temporale che va dal 2006 ad oggi. Lo schema logico del datawarehouse è mostrato in figura 4.1.

(26)

23

Figura 4.1 DW delle vendite di un’azienda che opera nel fashion retail

Esso rappresenta solo una piccola parte dell’intero Datawarehouse, quella rilevante ai fini della ricerca dei sequential pattern in base al metodo proposto.

Vendite.

La tabella dei fatti è quella delle Vendite dove ogni record rappresenta un prodotto venduto. Le sole informazioni rilevanti da estrarre dalla tabella delle vendite in base al lavoro svolto sono la data delle vendite, da cui è abbiamo ricavato l’anno-mese, il mese, le foreign keys del cliente, del prodotto e della causale di vendita, per permettere il collegamento alle altre tabelle utilizzate.

Prodotto.

Ogni prodotto nel database ha più di trenta attributi, ognuno rappresenta varie caratteristiche e dettagli del prodotto. Ai fini del progetto di tesi abbiamo ritenuto prendere in considerazione quelle descritte di seguito:

• SKU: abbreviazione per Stock Keeping Unit (codice identificativo di un articolo gestito a magazzino), è un codice unico che viene assegnato ad un prodotto per

(27)

24

identificarlo. È il massimo dettaglio del prodotto. Ogni record nella tabella del Prodotto ha differenti valori per questo attributo.

• COLLEZIONE è il raggruppamento massimo per ogni prodotto. Ogni prodotto appartiene alla collezione Donna, Uomo, Bambino o Unisex.

• GAMMA COLORI è un attributo categorico, rappresenta il colore predominante del prodotto. Sono presenti 27 valori distinti.

• COLORE è un attributo categorico, rappresenta il dettaglio dell’attributo GAMMA_COLORI. Ad ogni valore di COLORE corrisponde un valore univoco di GAMMA_COLORI. Sono presenti 9213 valori distinti.

• CATEGORIA MERCEOLOGICA è un attributo categorico, raggruppa i prodotti per tipologia e presenta 92 valori distinti.

• SOTTOCATEGORIA MERCEOLOGICA è un attributo categorico, presenta oltre 430 valori distinti e rappresenta il modello, che è il dettaglio della categoria prodotto. Ad esempio, considerando la categoria Borse, sono presenti vari modelli di borse, tra cui “Shopping”, “Pochette”, “Bauletto”, etc.

• MATERIALE è un attributo categorico, descrive il materiale di cui è fatto il prodotto, presenta 30 valori distinti.

Le altre tabelle usate per la creazione del dataset del venduto, in modo da filtrare i dati, sono la tabella della causale di vendita, che ci ha permesso di escludere dal venduto le transazioni che erano dei “resi”, e la tabella del cliente, per escludere i clienti con un codice particolare, chiamati “generici” e i dipendenti, e considerare nell’analisi quelli che hanno dato il consenso al trattamento dei dati personali.

Il dataset così creato dal venduto prende tutte le transazioni, escludendo i resi, effettuate in un arco temporale di otto anni che va dal 1gennaio 2011 al 31 agosto 2018, fatte nei canali di vendita dei negozi fisici ed e-commerce.

Dall’analisi del dataset è emerso che gli acquisti fatti dai clienti non sono frequenti e ripetitivi, questo è ragionevole considerando il tipo di prodotto, che è un bene di moda e di lusso. La maggior parte dei clienti ha acquistato un solo prodotto, e sono in una percentuale molto bassa rispetto al totale, quelli che fanno più acquisti nello stesso mese. Quindi la granularità finale della transazione per cliente è il mese. Questo comporta che se un cliente

(28)

25

ha fatto degli acquisti di due prodotti con lo stesso codice nello stesso mese, la riga di transazione del cliente viene presa una sola volta. Il dataset finale contiene 3672553 transazioni, fatte da 91274 clienti e un totale di 130393 prodotti distinti.

(29)

26

Figura 4.3 Numero prodotti acquistati per cliente

(30)

27

Il secondo dataset creato contiene le informazioni relative ai prodotti. Abbiamo scelto di considerare solo il marchio principale dell’azienda, visto che marchi diversi corrispondono a gusti stilistici molto diversi tra loro e si rivolgono a target di clienti diversi e univoci. Mentre il marchio principale presenta collezioni per Donna, Uomo, Bambino e Unisex.

4.3.2 Esplorazione e preparazione dei dati per l’analisi di sequential pattern mining

Una volta terminata l’analisi sul DB siamo passati alla fase di esplorazione dei dati dei due dataset prodotti, attraverso statistiche e grafici a cui è seguita la fase di preparazione dei dati per la successiva analisi di Data Mining. Tra i tanti strumenti a disposizione la scelta è ricaduta sul tool Knime.

Knime è uno strumento open source di Data Mining particolarmente efficace nella preelaborazione dei dati, quindi nell’estrazione, nella trasformazione e nel caricamento dei dati. Ci ha permesso di produrre come output finale dei dataset di sequenze su cui andare ad effettuare le analisi di Sequential Pattern Mining.

Distribuzione delle variabili e statistiche

In questa fase abbiamo esplorato gli attributi che caratterizzano il prodotto, partendo da quello che descrive il prodotto nel suo dettaglio più generale: la Collezione. Ogni attributo è stato analizzato sia in termini di numerosità di prodotti che in termini di numerosità di acquisti. Nel pie chart in figura 4.5 è possibile vedere la sua composizione in termini di numero prodotti distinti contenuti al suo interno.

(31)

28

Figura 4.5 Numerosità articoli per Collezione

Le collezioni Unisex e Bambino rappresentano, sul totale, lo 0,0033% e 0,00066% rispettivamente.

Nel Bubble Chart mostrato in figura 4.6, viene mostrata la composizione di ogni Categoria prodotto rispetto alla Collezione (che si può distinguere in base ai colori), al numero di prodotti univoci in ogni categoria (in ordinata), e al numero totale delle vendite. Questa informazione è data dalla dimensione della “bolla”. Bolle più grandi rappresentano categorie di prodotto con un numero più alto di vendite. Nel grafico, la bolla più grande in alto a sinistra indica che il prodotto “borse da donna” è la categoria di prodotto più venduta ed è quella con un portafoglio prodotti più ampia (contiene un numero di SKU superiore a 18000 unità). Dal grafico si può inoltre notare che ci sono categorie prodotti che hanno un numero di prodotti simile, come i prodotti della Categoria “Decolleté Donna” e “Camicie Uomo”, ma un andamento delle vendite differente perché la bolla “Camicie Uomo” ha una dimensione maggiore, quindi ha venduto di più. Ci sono, inoltre, categorie che hanno un portafoglio prodotti più limitato ma che vendono in quantità elevata. In basso sulla destra a sinistra, in corrispondenza del range 5k-10k, ad esempio, si può notare la bolla celeste che corrisponde alla categoria “Viaggio”: dalla grandezza della bolla si evince che il numero di vendite è simile a quello della categoria “Camicie Uomo”, che ha un portafoglio prodotti più ampio.

(32)

29

Figura 4.6 Numerosità vendite e del portafoglio prodotti per le categorie merceologiche divise per collezione

Il grafico in figura 4.7 mostra la distribuzione degli acquisti per le categorie di prodotti in termini di numero di prodotti acquistati. Appare evidente che ci sono due categorie di Prodotti (Borse e Minuteria) che vengono acquistati in quantità maggiore rispetto agli altri. Questo risultato non sorprende perché l’azienda è specializzata soprattutto in prodotti in pelle e accessori e borse e portafogli, in particolare, sono prodotti di punta dell’azienda.

(33)

30

Figura 4.7 Distribuzione acquisti per categoria merceologica 2011-2018

I grafici nelle figure 4.8, 4.9 e 4.10 mostrano un confronto dell’andamento vendite di due prodotti appartenenti a categorie diverse. Il prodotto Cinture viene acquistato in percentuale minore rispetto al prodotto Borsa, ma i grafici mostrano che, mentre il prodotto “Borse” subisce delle variazioni lungo il periodo temporale analizzato, con dei picchi di vendita

(34)

31

verosimilmente nel periodo natalizio e dei saldi, se si analizza il grafico per anno-mese, ma presenta anche delle variazioni per anno, come ad esempio una diminuzione delle vendite dal 2015 al 2016; dall’altra parte il prodotto “Cinture” si mantiene stabile negli anni, con una tendenza alla crescita a partire dal 2016.

Figura 4.8 Quantità venduta per anno mese

(35)

32

Figura 4.10

Percentuale relativa andamento vendite di due categorie prodotti per anno-mese

4.4 Preprocessing

In questa fase rientra sia la selezione del sottoinsieme di dati interessanti (ai fini dell’analisi) contenuti del data warehouse, che la preparazione dei dati, inclusiva di pulizia e calcolo di variabili derivate.

Nella fase di Preprocessing sono state prodotte elaborazioni separate per 3 livelli di analisi.

• Livello 1: Creazione della codifica del prodotto.

Il primo passo da compiere è quello di analizzare il dataset dei prodotti nei singoli attributi scelti e capire se sono necessarie delle modifiche, delle aggregazioni, verificare la presenza di outliers o missing values.

Fatto questo tipo di analisi, successivo trattamento e pulizia dei dati, per ognuno dei singoli attributi del prodotto, abbiamo creato differenti descrizioni del prodotto attraverso una combinazione degli attributi. In questo modo si può studiare la composizione della shopping bag a diversi livelli di dettaglio.

(36)

33 Il primo attributo analizzato è CATEGORIA.

Analizzando i valori distinti appare chiaro (figura sotto) che occorrono delle trasformazioni dei dati. Si possono creare delle macrocategorie che, ad esempio, riuniscano le righe CAPI IN PELLE e CAPI IN PELLE VARI, oppure DECOLLETE’ e DECOLLETE APERTO D., poiché rappresentano la stessa informazione. Eseguendo questa operazione, tramite il nodo String Replacer (Dictionary) di Knime, siamo passati ad avere da 97 a 61 valori distinti per questo attributo.

Figura 4.11 Creazione di macrocategorie

La prima descrizione considera solo la categoria prodotto, permettendo di codificare i 128322 prodotti distinti acquistati e trattarli come se fossero 61 prodotti.

Nella figura 4.12 sono presenti i passaggi fatti su Knime per arrivare a creare la codifica del prodotto per Categoria.

(37)

34

Figura 4.12 Esempio di creazione delle codifiche del prodotto

Lo stesso procedimento è stato replicato anche per le altre aggregazioni di prodotto:

• Categoria+Materiale • Categoria+Colore • Colore+Materiale

Nella creazione della codifica del prodotto basata sull’aggregazione degli attributi “Categoria+Colore” si è scelto di usare l’attributo GAMMA_COLORI (contenente solo l’informazione del colore predominante) per ottenere una descrizione del prodotto più generale possibile. Nel dataset relativo al prodotto era presente anche l’attributo COLORE, che rappresenta invece il dettaglio della gamma colori. Questo attributo presenta 9213 valori distinti tra cui il valore “.” che è stato considerato come missing values, presente in 45 record.

Missing values. L’attributo GAMMA_COLORI dalla fonte dati si presentava con un

numero di 26 valori distinti, e la presenza di 1929 missing values, che sono stati recuperati con un procedimento semiautomatico a partire dalla descrizione dettagliata del colore presente nell’attributo COLORE in base a diverse logiche. Vengono riportati alcuni esempi:

(38)

35

(a) (b)

(c)

Figura 4.13 (a) (b) (c) Esempi di missing values per l’attributo GAMMA COLORI

Nei casi in cui l’attributo colore si presentava con i prefissi MID, DARK, LIGHT seguito da un colore identificabile, in GAMMA_COLORI è stato inserito il colore corrispondente, ad esempio da MID GREY si è ricavato GRIGI; nei casi in cui COLORE presentava il nome in inglese, e sue varianti, è stata ricavata la corrispondente gamma colori (ad esempio, per “BLACK ONE”, “BLACK 1”, BLACK+NERO”, la gamma colori corrispondente è stata riempita con il valore “NERO”); in altri casi ancora non è stato possibile risalire alla gamma colori corrispondente, poiché l’attributo relativo al colore presentava dei valori anomali (ad esempio “Brick”). Inoltre, per alcune categorie di prodotti, come gli OCCHIALI, PROFUMI E COSMESI l’attributo GAMMA_COLORI presenta il valore “LENTI” e “NEUTRI”, non riesce a discriminare la categoria in base al colore. Si è comunque mantenuta la dizione non

(39)

36

potendo migliorarla. In totale sono stati recuperati 1666 missing values. Le righe con i missing values che non è stato possibile recuperare sono state rimosse dal database delle transazioni.

• Livello 2: Creazione di un dataset di transazioni con il prodotto codificato.

Una volta ottenute queste descrizioni e associate al codice prodotto, le singole SKU all’interno del dataset del venduto vengono sostituite con gli ID numerici che rappresentano la descrizione del prodotto.

Ora il dataset di transazioni si presenta con una riga per ogni cliente (UID), l’anno-mese (timestamp) in cui è avvenuta la transazione e l’id della descrizione prodotto (PID), come mostrato in figura.

Figura 4.14 Esempio di Dataset di transazioni

• Livello 3: Creazione del dataset di sequenze.

Per poter effettuare l’analisi dei pattern sequenziali è necessario passare da un dataset transazionale al dataset delle sequenze.

Abbiamo scelto di utilizzare per l’analisi dei sequential pattern il software SPMF, e questo richiede che il file di input con le sequenze segua una determinata struttura, in cui la fine di ogni transazione è identificata da -1 e la fine della sequenza da -2. Questi sono i passaggi su

(40)

37

Knime che ci hanno consentito di ottenere il formato richiesto e un esempio di dataset di sequenze prodotto.

4.15 Esempio di creazione del dataset di sequenze con Knime

4.16 Esempio di dataset di sequenze nel formato richiesto dal tool SPMF

La seconda analisi è legata alla dimensione temporale. La nostra analisi non si limita a considerare l’ordine temporale d’acquisto (secondo la definizione di sequential pattern) ma

(41)

38

vogliamo mantenere anche l’informazione su quando avvengono gli acquisti. Per fare questo abbiamo concatenato a ciascuna descrizione del prodotto un timestamp, per ogni transazione. Il timestamp rappresenta il mese in cui è stato fatto l’acquisto, indipendentemente dall’anno. Questa analisi ci permetterà di analizzare dei fattori come la stagionalità degli acquisti, o una ciclicità degli stessi.

Quindi, è stata fatta una nuova codifica del prodotto, per ognuna delle granularità analizzate in precedenza.

Questi sono i passaggi su Knime che hanno consentito di ottenere il formato richiesto e un esempio di dataset di sequenze prodotto.

4.17 Esempio di dataset di sequenze per l’analisi temporale nel formato richiesto dal tool SPMF

La prima sequenza mostra che il cliente ha acquistato i prodotti 48,17,41 nel mese di maggio, poi ha acquistato a novembre i prodotti 9, 41, 33 e 48, e ancora a maggio di un anno successivo il prodotto 9 e così via. In questo modo è possibile capire se ci sono delle tendenze di acquisti di prodotti per particolari periodi dell’anno e se un cliente tende a fare acquisti seguendo una certa ciclicità (ad esempio acquista sempre per i saldi, acquista per le feste natalizie).

Nel grafico riportato in figura 4.18 si vuole dare una vista riassuntiva dei dataset di sequenze che sono stati prodotti nella fase di preparazione dei dati, e successivamente usati per la ricerca dei sequential pattern. In particolare, è mostrata la differenza dei diversi dataset in termini di numerosità degli items.

(42)

39

4.18 Dataset di sequenze per la ricerca dei sequential pattern

4.5 Sperimentazioni

L’analisi e validazione dei risultati del mining è uno degli steps più importanti dell’intero processo. Il suo obiettivo è quello di rispondere alla domanda: “abbiamo trovato qualcosa di interessante, valido ed utilizzabile?”

4.5.1 Sequential Pattern Discovery

L’applicazione degli algoritmi di sequential pattern richiede di specificare diversi parametri. In particolare, per l’algoritmo SPAM sono stati selezionati quelli più rilevanti:

• Minsup • MaxGap

• Min Pattern Lenght

Il vincolo Minsup ci permette di generare un numero sufficiente di pattern di sequenze da analizzare.

Il vincolo MaxGap permette di ricercare sequenze di acquisti consecutivi (MaxGap=1) o scegliere acquisti diluiti nel tempo; mentre il vincolo Min Pattern Lenght consente di selezionare la lunghezza minima di un pattern. Nelle analisi effettuate questa è sempre

(43)

40

impostata a Min Pattern Lenght=2. Questo ci permette di trovare sessioni di acquisti separate, almeno due consecutive, ma anche un acquisto unico dove nel basket sono presenti due prodotti distinti, ad esempio 11 33 -1. Abbiamo analizzato solo i pattern formati da almeno due acquisti in sequenza, come 11 -1 33 -1.

Il risultati ottenuti sono stati successivamente processati, in modo da ottenere un formato più leggibile e facilmente interpretabile, nei quali i prodotti vengono ricodificati con la loro nomenclatura per descrizione, ad esempio il pattern “11 -1 33 -1” sarà convertito in Borse | Maglieria.

4.5.2 Sequential pattern su Categoria Merceologica

Caratteristiche del dataset

Il dataset di sequenze di partenza si presenta con le seguenti caratteristiche:

CATEGORIA MERCEOLOGICA

NUMERO DI PRODOTTI DISTINTI 55

NUMERO MEDIO DI ITEMSET PER SEQUENZA 13.81

NUMERO MEDIO DI ITEMS DISTINTI PER SEQUENZA 10.57

NUMERO MEDIO DI OCCORRENZE IN UNA SEQUENZA PER OGNI ITEM CHE APPARE NELLA SEQUENZA

2.564

(44)

41

Estrazione dei pattern

(45)

42

Si è eseguito l’algoritmo SPAM sul dataset usando diversi valori di supporto:

• Min sup= 0.5

I pattern trovati sono 4. Con valori di supporto alto si ottengono pattern di acquisti già noti. Sono presenti solo le categorie Borse e Minuteria. Appartengono alla categoria Minuteria prodotti come portachiavi, portafogli, portamonete, porta carte di credito. Insieme alle borse, sono i prodotti più venduti, come evidenziato anche dall’analisi esplorativa sulle vendite.

BORSE | BORSE BORSE | MINUTERIA MINUTERIA | MINUTERIA

MINUTERIA | BORSE

• Min sup=0.2

Sono stati trovati 80 pattern. Le categorie presenti sono: Accessori da viaggio, Borse, Camicie, Giacche e cappotti, Jersey, Maglieria, Pantaloni, Minuteria.

Accessori da viaggio, Borse e Minuteria sono prodotti appartenenti al settore Pelletteria, le restanti appartengono al settore Abbigliamento.

Dall’analisi dei pattern trovati si nota che:

1. La categoria Borsa è l’unica che presenta pattern di lunghezza 3 (Borse | Borse | Borse). I pattern di lunghezza 2 e 3, che rappresentano acquisti in sequenza, sono formati da 1 unico item, cioè un’unica categoria di prodotto che si ripete per ogni acquisto.

2. I prodotti delle categorie Borse e Jersey sono quelli più frequentemente assocciati ad un’altra categoria.

3. Per ogni categoria, il pattern frequente con supporto più alto è quello che rappresenta acquisti consecutivi di prodotti della stessa categoria (ad esempio Borse | Borse o

(46)

43

Pantaloni | Pantaloni), ad eccezione della categoria Accessori da viaggio, per la quale il pattern con frequenza più alta è Accessori da viaggio | Borse.

4. Chi acquista Accessori da viaggio o Minuteria non acquista in seguito un prodotto della categoria Camicie.

5. Chi acquista Borse, Minuteria e Jersey non acquista in seguito gli Accessori da viaggio. Chi compra Accessori da viaggio successivamente acquista un prodotto della categoria Borse, Giacche e capotti, Jersey, Minuteria e solo con una frequenza molto minore, un prodotto della stessa categoria.

• Min Sup=0.1

Numero pattern trovati: 580. Le Categorie di prodotto che si aggiungono alle precedenti sono: Abiti, Allacciate, Cinture, Décolleté, Gonne, Necessarie Beauty, Sandali, Occhiali. All’interno di questi pattern si aggiungono, quindi, prodotti del settore Occhiali e Calzature.

Raggruppando i pattern per settore, analizzando quelli che rappresentano acquisti in sequenza, si nota che, chi acquista prodotti appartenenti al settore Calzature non acquista in seguito prodotti delle categorie Cinture, Gonne e Accessori da viaggio. Inoltre, chi acquista un prodotto appartenente ad una categoria di scarpe, tende ad acquistare lo stesso tipo di prodotto scarpe (ad esempio Sandali | Sandali).

• Min sup=0.02

Numero di pattern trovati: 43.370. Le categorie presenti sono: Accessori da viaggio, Borse, Camicie, Giacche e cappotti, Jersey, Maglieria, Pantaloni, Minuteria.

Accessori da viaggio, Borse e Minuteria sono prodotti appartenenti al settore Pelletteria, le restanti appartengono al settore Abbigliamento.

Tra i pattern trovati sono presenti acquisti rappresentati da sequenze fino a lunghezza 8, dove sono presenti solo categorie Borsa e Minuteria.

(47)

44 Ad esempio:

MINUTERIA | MINUTERIA | BORSE | BORSE | BORSE | MINUTERIA | MINUTERIA | MINUTERIA

Tra le sequenze di lunghezza compresa tra 5 e 3, la categoria Borsa è l’elemento fisso, mentre sono variabili le categorie Minuteria, Jersey, Camicie, Maglieria e Pantaloni.

BORSE | MAGLIERIA | GIACCHE E CAPPOTTI | MAGLIERIA | CAMICIE MINUTERIA | BORSE | GIACCHE E CAPPOTTI | BORSE | MAGLIERIA

BORSE | GIACCHE E CAPPOTTI | JERSEY BORSE | JERSEY | GIACCHE E CAPPOTTI

BORSE | MAGLIERIA | MAGLIERIA BORSE | PANTALONI | PANTALONI

E’ possible anche circoscrivere l’analisi ad una determinata categoria di prodotto, ad esempio se si vuole pensare ad una strategia di marketing mirata. Tra le categorie che vendono meno, supponiamo di voler analizzare gli acquisti che includono prodotti della categoria Occhiali. Sono presenti 542 pattern. In particolare, ordinando per supporto decrescente, vediamo che gli occhiali sono un acquisto successivo dei prodotti Borse, Minuteria, per il settore Pelletteria e, Giacche e Cappotti per il settore Abbigliamento. Il pattern Giacche e Cappotti | Occhiali con un supporto del 9% potrebbe suggerire un’attività di cross-selling o di riorganizzazione dei prodotti nel punto vendita per queste due categorie di prodotti.

4.5.3 Sequential pattern su Categoria Merceologica (analisi per dimensione temporale)

La seconda analisi effettuata sulla categoria considera anche la dimensione temporale in cui vengono fatti gli acquisti. I prodotti di ogni categoria sono rappresentati con un suffisso che indica il mese in cui sono stati fatti gli acquisti. Ad esempio, l’item “3Maglieria” indica che il prodotto appartenente alla categoria Maglieria è stato acquistato nel mese di Marzo. Vogliamo, ad esempio, capire se ci sono pattern che hanno acquisito o perso importanza durante l’anno, oppure capire se ci sono pattern che si ripetono con ciclicità.

(48)

45

Il dataset di sequenze di partenza si presenta con le seguenti caratteristiche:

CATEGORIA MESE

NUMERO DI PRODOTTI DISTINTI 614

NUMERO MEDIO DI ITEMSET PER SEQUENZA 12.58

NUMERO MEDIO DI ITEMS DISTINTI PER SEQUENZA 20.65

NUMERO MEDIO DI OCCORRENZE IN UNA SEQUENZA PER OGNI ITEM CHE APPARE NELLA SEQUENZA

1.7

NUMERO MEDIO DI ITEMS PER ITEMSET 2.77

Estrazione dei pattern

Inizialmente, abbiamo eseguito l’algoritmo con valori di supporto da 0.1 a 0.04 in ordine decrescente, variando il vincolo MaxGap da 2 a 6, per cercare di includere tra i pattern anche acquisti non consecutivi. Poichè non sono stati trovati pattern di almeno due acquisti in sequenza, abbiamo successivamente abbassato il supporto minimo.

• Min sup=0.03 maxGap=2 120 pattern trovati, di cui 17 rappresentano almeno due acquisti in sequenza.

Le categorie di prodotto presenti sono Borse, Minuteria, Giacche e cappotti, Maglieria e Jersey.

Analizzando i pattern per categoria emerge che esistono dei prodotti stagionali:

• Gli acquisti dei prodotti della categoria Jersey danno origine a pattern sequenziali nei mesi da Aprile a Luglio; inoltre chi acquista il tipo prodotto Jersey acquista successivamente un prodotto della stessa categoria.

4JERSEY | 5JERSEY 4JERSEY | 6JERSEY 5JERSEY | 6JERSEY 6JERSEY | 7JERSEY

(49)

46

• Gli acquisti dei prodotti della categoria Giacche e cappotti danno origine a pattern sequenziali da Ottobre a Dicembre.

Si acquistano dopo aver acquistato un prodotto della categoria Maglieria, o un altro prodotto della categoria Giacche e capotti.

11GIACCHE E CAPPOTTI | 12GIACCHE E CAPPOTTI 11GIACCHE E CAPPOTTI | 12MAGLIERIA 11MAGLIERIA | 12GIACCHE E CAPPOTTI 10GIACCHE E CAPPOTTI | 11GIACCHE E CAPPOTTI 10GIACCHE E CAPPOTTI | 12GIACCHE E CAPPOTTI

• Gli acquisti dei prodotti della categoria Maglieria danno origine a pattern sequenziali da Settembre a Dicembre.

Chi acquista Maglieria acquista in seguito un prodotto dello stesso tipo, oppure della categoria Giacche e cappotti.

12MAGLIERIA | 1MAGLIERIA 9MAGLIERIA | 10MAGLIERIA 10MAGLIERIA | 11MAGLIERIA 10MAGLIERIA | 12MAGLIERIA 11MAGLIERIA | 12GIACCHE E CAPPOTTI

11MAGLIERIA | 12MAGLIERIA

• I prodotti della categoria Minuteria sono acquistati prevalentemente a dicembre e gennaio. Questo potrebbe suggerire che sono acquistati come regalo natalizio e nel periodo dei saldi invernali.

12PORTAFOGLI_PORTAMONETE_PORTACHAVI | 1PORTAFOGLI_PORTAMONETE_PORTACHAVI

• I prodotti della categoria Borse vengono acquistati con maggiore frequenza nei periodi che vanno da maggio a luglio e da novembre a gennaio.

5BORSE | 6BORSE 6BORSE | 7BORSE 11BORSE | 12BORSE 11BORSE | 12MINUTERIA

(50)

47

4.5.4 Sequential pattern su categoria merceologica e colore

CATEGORIA E COLORE

NUMERO DI PRODOTTI DISTINTI 793

NUMERO MEDIO DI ITEMSET PER SEQUENZA 13.80

NUMERO MEDIO DI ITEMS DISTINTI PER SEQUENZA 22.79

NUMERO MEDIO DI OCCORRENZE IN UNA SEQUENZA PER OGNI ITEM CHE APPARE NELLA SEQUENZA

1.76

NUMERO MEDIO DI ITEMS PER ITEMSET 2.90

Estrazione dei pattern

Abbiamo eseguito l’algoritmo SPAM sul dataset usando diversi valori di supporto:

• Min sup=0.04

Sono stati trovati 254 pattern.

Sono presenti le categorie prodotto: Accessori da viaggio, Allacciate, Borse, Giacche e cappotti, Jersey, Maglieria, Minuteria, Necessarie Beauty, Occhiali, Pantaloni.

Dall’analisi dei pattern emerge che:

• Chi acquista prima Accessori da viaggio nero, Allacciate, Giacche e cappotti, Necessarie e Beauty di colore nero, in prevalenza, dopo acquista un prodotto della stessa categoria e dello stesso colore.

• Per le categorie Borse, Pantaloni, Minuteria, Jersey e Maglieria ci sono combinazioni di prodotto-colore più interessanti. Chi acquista capi blu, è più probabile in un successive acquisto scelga un prodotto della stessa categoria o di categorie differenti, anche in un colore diverso da blu e nero. Ad esempio, chi prima acquista Pantaloni blu in seguito acquista Maglieria grigia, Camicia bianca, Jersey bianca.

Riferimenti

Documenti correlati

Trattamento noto e diffuso a livello di tops e filato, sviluppato dall’Azienda su tessuto Ampia flessibilità a livello di tipologie (flanelle, cardati, misti lana, elasticizzati,

Tuttavia, l’effetto della superficie specifica è molto più evidente se si paragona la capacità di adsorbimento delle nanofibre a base di cheratina con quella delle fibre di lana:

c) sospensione dal servizio con privazione della retribuzione, secondo le previsioni dell’art. Per l’individuazione dell’autorità disciplinare competente per i

BLU - ROSA CHIARO - GRIGIO SCURO ROSA BIG BUBBLE - ROSA PALLIDO - CELESTE. CINIGLIA 95% COTONE 5% ELASTEM FELPA 95% COTONE

Una RSL per i prodotti finiti realizzati con materiale riciclato ha lo scopo di definire un obiettivo di qualità unificato di alto livello, che tenga conto della

Qualunque Israelita scanna un bue o un agnello o una capra entro il campo o fuori del campo e non lo conduce all'ingresso della tenda del convegno per presentarlo come offerta

Un esempio viene dalla Sardegna, dove un’azienda di materiali edili e forniture agricole sfrutta una risorsa naturale del mare e la più tradizionale delle attività agricole sarde

diendo sive contraiaciendo in predictis condempnetur et condempnari possit per rectores dicte artis in solidos decem janue pro quolibet contrafaciente et qualibet