• Non ci sono risultati.

Capitolo 4. Metodologia

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.

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.

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:

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

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

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

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.

39

4.18 Dataset di sequenze per la ricerca dei sequential pattern

Documenti correlati