• Non ci sono risultati.

Classificazione delle spedizioni del 2017

L’intera attività di classificazione ha avuto come oggetto le bolle relative all’anno 2017, scelta dettata da motivazioni di natura computazionale. Le dimensioni del dataset imponevano infatti la necessità di effettuare un sampling dei dati, ragion per cui si è optato per effettuare un sampling basato sull’anno di spedizione e selezionare poi l’ultimo anno a disposizione, ossia il 2017, poiché quello più recente. In appendice si riporta la query SQL utilizzata per la creazione del dataset.

Il dataset così prodotto presenta uno dei problemi più comuni legati alla classificazione, lo sbilanciamento rispetto ai valori dell’attributo classe. In esso infatti circa il 98% dei record ha l’attributo anomalia uguale a 0 e il restante 2% ha l’attributo anomalia uguale a 1. L’immagine seguente evidenzia meglio questo aspetto.

Figura 7.1: Sbilanciamento del dataset rispetto ai valori dell’attributo classe

Al fine di fronteggiare questa problematica sono stati realizzati e comparati tra di loro 4 processi. Ognuno di questi processi rappresenta la sequenza di fasi con le quali si giunge alla realizzazione di un modello predittivo basato sui decision tree.

Figura 7.2: Rappresentazione delle metodologie operative adottate

Tutti i processi operativi sopra descritti hanno come comune denominatore l’approccio metodologico utilizzato all’interno di essi. Per quanto riguarda quest’ultimo infatti si fa espresso riferimento alla Cross-industry standard process for data mining (CRISP-DM)

[Lin 08] poiché considerato uno standard di fatto in tema di approccio metodologico alla data mining. La metodologia CRISP-DM fornisce infatti un approccio strutturato alla pianificazione di un progetto di data mining e rappresenta una metodologia robusta e ben collaudata.

Più in dettaglio essa prevede la suddivisione del processo di data mining in sei fasi principali organizzate seguendo una struttura ciclica. L’immagine seguente fornisce una descrizione, universalmente riconosciuta, della metodologia CRISP-DM.

Estrazione

del dataset

Data preparation

Split in training

e test set Classificazione

Estrazione

del dataset

Oversampling a proporzione 50-50 Data preparation Split in training

e test set Classificazione

Estrazione

del dataset

Data preparation Split in training e test set Oversampling a proporzione 87-13 del train Classificazione cost sensitive

Estrazione

del dataset

Data preparation Split in training e test set Oversampling a proporzione 76-24 del train Classificazione cost sensitive

Figura 7.3: Struttura ciclica del Cross-industry standard process for data mining

Di seguito sono ripresentati, ai fini della chiarezza, singolarmente ognuno dei 4 processi operativi posti in essere, provvedendo a fornire, per ognuno di essi, maggiori dettagli tecnico-implementativi.

Processo operativo numero 1

Il presente processo operativo è stato interamente condotto su Dataiku per quel che riguarda la Data preparation, lo splitting in training e test set e la classificazione.

Come si evince dalla soprastante rappresentazione grafica, la prima metodologia operativa adottata non prevede la presenza di misure correttive al problema di sbilanciamento del dataset rispetto ai valori dell’attributo anomalia.

La motivazione per cui questo processo operativo appare in cima alla lista dei processi operativi adottati è da ricercare nella volontà di ottenere, tramite l’applicazione dello stesso, una overview per quel che riguarda la perseguibilità degli obiettivi preposti e l’incidenza dei singoli attributi sulla classificazione. In altre parole da esso non ci si aspetta certamente di ottenere dei risultati degni di nota in relazione ai due obiettivi preposti, ma di tratte delle indicazioni utili e riapplicabili ai successivi processi operativi.

Per queste ragioni i risultati ottenuti non verranno presentati.

Estrazione

del dataset

Data preparation

Split in training

Processo operativo numero 2

Anche questo processo operativo è stato interamente implementato mediante Dataiku, ad eccezione dell’operazione di oversampling dei dati che è invece stata condotta su Knime poiché Dataiku non prevede questa funzionalità.

La peculiarità di questa seconda metologia operativa è rappresentata dal fatto che l’oversampling dei dati viene eseguito prima della fase di data preparation, e quindi di splitting, coinvolgendo così l’intero dataset estratto.

L’immagine seguente mostra il workflow generato su Knime per l’esecuzione dell’algoritmo di SMOTE ai fini dell’oversampling così da ottenere un perfetto bilanciamento del dataset rispetto ai valori dell’attributo classe.

Estrazione

del dataset

Oversampling a proporzione 50-50 Data preparation Split in training

Figura 7.4: Workflow per l’esecuzione dell’algoritmo SMOTE

Per quanto riguarda la fase di data preparation sono state adottate le stesse politiche adottate nel precedente processo operativo attuato. Politiche che prevedono:

 L’eliminazione delle righe aventi un attributo con valore “NA”.

 L’eliminazione degli attributi non ritenuti significativi ai fini della previsione.  L’estrazione del giorno della settimana di carico e scarico e della settimana

dell’anno, sempre di carico e scarico.

 Infine, il binning degli attributi relativi al peso lordo e al numero di colli.

Figura 7.5: Passi di data preparation

Particolare attenzione va prestata sulla rimozione degli attributi “ontime”, “perfectorder”, “stato” e “desc_stato”. La motivazione, in questo caso, è legata al fatto che i suddetti 4 attributi vengono valorizzati soltanto al termine della relativa spedizione e non possono quindi essere disponibili in fase di previsione, quando cioè la spedizione non è ancora partita.

Per quanto riguarda invece il binning degli attributi relativi al peso lordo e al numero di colli si è adottata la formula di [Scott 79] poiché universalmente riconosciuta come la soluzione ottima al problema di scelta della dimensione del bin per effettuare la discretizzazione.

=3,49 × # √% &

Dove:

 W rappresenta l’ampiezza del bin.

 σ è la deviazione standard dell’attributo da discretizzare.  N è il numero dei valori distinti dell’attributo da discretizzare.

L’eliminazione delle righe aventi un attributo con valore “NA” produce un nuovo leggero sbilanciamento nel dataset che in parte attenua la massiccia entità dell’oversampling adottato in precedenza per ottenere il perfetto bilanciamento dello stesso.

L’immagine seguente mostra la definitiva composizione del dataset rispetto all’attributo classe, ossia l’attributo “anomalia”.

Figura 7.6: Distribuzione del dataset rispetto all’attributo classe

I risultati migliori sono ottenuti dal presente processo operativo applicando l’algoritmo random forest e sono presentati nell’immagine seguente.

Figura 7.7: Risultati di classificazione ottenuti

Come si evince dalla confusion matrix in alto, nel 42,53% dei casi (18344 / 43131) il modello creato prevede un falso positivo mentre nel 15,34% dei casi (6100 / 33646) il modello prevede un falso negativo.

In definita quindi l’alta percentuale di falsi positivi, vicina praticamente al 50%, renderebbe inutile, e probabilmente inutilizzato, l’eventuale strumento di previsione costruito sulla base di questo modello. Ciò a causa del frequente allarmismo infondato che genererebbe nell’utente addetto alla pianificazione delle spedizioni.

Tuttavia, i risultati ottenuti da questo processo operativo e di conseguenza anche le osservazioni fatte sulla base di essi, sono da ritenersi forvianti.

La caratteristica principale di questa seconda metodologia adottata, come già accennato, è rappresentata dal fatto che il test set su cui il modello viene applicato e quindi valutato viene creato dopo aver applicato l’algoritmo di SMOTE per l’oversampling. In questo modo quindi il modello di classificazione in questione viene valutato su un dataset (il test set) la cui distribuzione dei valori dell’attributo classe non è quella reale. Per questa ragione i risultati vanno riportati al caso reale.

Tale operazione è stata effettuata prendendo in considerazione la precision e muove dalla seguente osservazione.

Il test set prodotto per la classificazione se confrontato con il test set originale presenta un Oversample Rate (OSR), per quanto riguarda il caso con anomalia =1, così definibile:

' ( = % *ℎ % *ℎ = 1 - .- . - / . 0 -= 1 - .- . - * = 37,41,1 = 34

Tenendo presente come è definita precision, ossia:

. =2 0 . - / + 4 . 0 . - /2 0 . - /

È possibile pensare agli elementi che la compongono come a delle probabilità, ovvero:

• Tp = probabilità che venga predetto il valore 1 su una riga realmente di classe 1.

Per la considerazione fatta quindi sul OSR la probabilità Tp risulterà essere esattamente 34 volte più piccola nella realtà rispetto a questo caso.

Il calcolo della Precision può quindi essere rivisto e trasformato nel seguente modo:

. =

2 0 . - / ' ( 2 0 . - /

' ( + 4 . . - /

Che numericamente diventa:

. = 24787 34 24787 34 + 18344 = 3,822%

È quindi quest’ultimo valore della Precision da tenere in considerazione per il raffronto con i risultati ottenuti dagli altri processi operativi.

Processo operativo numero 3

Il presente processo operativo nasce sulla base delle osservazioni critiche sollevabili sulla precedente metodologia operativa adottata e sulla base di una intuizione legata allo strumento utilizzato in precedenza, cioè Dataiku.

Le osservazioni critiche, in particolare, derivano dai seguenti fattori:

 Il fatto che, nel processo operativo precedentemente illustrato, l’oversampling precede le attività di data preparation e soprattutto di splitting.

 Il massiccio ricorso all’algoritmo di Smote per ottenere un perfetto bilanciamento del dataset.

 Le linee guida seguite nella fase di data preparation che prevedono l’eliminazione di una riga se ha un attributo con valore “NA”.

Sulla base di queste tre osservazioni si è quindi optato per un completo ridisegno della fase di data preparation, e per un oversampling del dataset molto più contenuto e, come si evince dalla rappresentazione grafica del processo operativo, applicato solo al tranining set.

L’intuizione su Dataiku, invece, deriva dall’aver costatato come l’applicazione di una matrice dei costi non modifica i parametri di Precision e Recall ma esclusivamente i parametri di Average Gain per record. Segno questo che la matrice viene utilizzata esclusivamente in termini di stima costi/benefici della classificazione così fatta e non incide, in alcun modo, sulla costruzione del modello.

Estrazione

del dataset

Data preparation Split in training e test set Oversampling a proporzione 87-13 del train Classificazione cost sensitive

Proprio a seguito di questa intuizione si è optato per la selezione di uno strumento che mettesse a disposizione degli algoritmi di classificazione cost-sensitive, nella fattispecie Weka. pur tuttavia continuando ad utilizzare Dataiku per la fase di data preparation.

Il ridisegno della fase di data preparation, in particolare, ha riguardato esclusivamente l’eliminazione delle righe, mantenendo invece inalterato tutto il resto.

Per la gestione dei missing values, si precisa che i valori “NA” sono comunque dei missing values, si è fatto affidamento al seguente schema.

Figura 7.8: Logica delle spedizioni

Sono quindi state eliminate solamente le righe per le quali non si ha informazione alcuna sulla partenza oppure sull’arrivo. Ovvero quelle righe che presentavano missing values, contemporaneamente, nei tre attributi relativi all’ente di carico, alla regione di carico e alla provincia di carico e quelle righe che presentavano missing values nei tre attributi relativi al cliente receiver, alla regione di scarico e alla provincia di scarico.

La gestione dei missing values relativi all’entità di trasporto, e più in particolare al fornitore, invece è stata condotta, vista l’esigua quantità (7 su 182922), attribuendo a

Partenza Trasporto Arrivo

Quando Quando

Ente di carico Regione di carico

Provincia di carico

Località cliente receiver

Regione di scarico Provincia di scarico Fornitore

queste righe il fornitore che ha il maggior numero di spedizioni, ossia “Morelli Group” che esegue oltre il 79% delle spedizioni.

Per quel che riguarda invece l’entità di arrivo circa 220 spedizioni presentano missing values negli attributi relativi alla regione e alla provincia di scarico, sono tutte spedizioni dirette a paesi esteri. Tra queste spedizioni oltre 150 sono relative allo stato di San Marino e alla Città del Vaticano. Per motivi legati alla localizzazione geografica, queste spedizioni sono state attribuite alle regioni Lazio ed Emilia Romagna e alle provincie di Roma e Rimini.

L’immagine seguente mostra il flusso prodotto su Dataiku per la fase di data preparation.

Figura 7.9: Flusso per la data preparation

Osservandolo da sinistra a destra, il flusso opera come segue. Per prima cosa vengono eliminate le colonne non ritenute significative ai fini della previsione, e le righe che presentano missing values in tutti gli attributi relativi all’entità di partenza e di arrivo, poi viene sostituito il valore “NA” con il valore “MORELLI GROUP” nell’attributo fornitore e infine viene sostituito il valore “NA” con il carattere vuoto negli attributi

provincia_carico, regione_carico, ed ente_carico.

Ultimata questa prima parte della fase di data preparation il dataset è stato suddiviso in tre parti: una parte, quella più in alto, relativa alle spedizioni con destinazione la Città del Vaticano, una parte, quella al centro, relativa alle spedizioni con destinazione lo stato di San Marino e l’ultima parte, quella più in basso, relativa a tutte le altre spedizioni. Per le

e “RIMINI” per le provincie di scarico e “Lazio” ed “Emilia-Romagna” per le regioni di scarico.

Fatto ciò il dataset è stato nuovamente assemblato e sono stati sostituiti i valori numerici relativi al giorno della settimana con i rispettivi nomi, ad esempio 1=Domenica.

Il dataset così preparato è stato importato su Weka per lo splitting in training e test set, con la consueta proporzione 2/3 training e 1/3 test, ed è poi stato effettuato l’oversampling del training attenuando lo sbilanciamento da 98,1 – 1,9 a 86,4 – 13,6.

I risultati massimali sono stati ottenuti utilizzando l’algoritmo J48, di seguito si riportano le confusion matrix dei modelli che hanno presentato le migliori performance qualitative e ottenuti con tre matrici di costo differenti e tre valori differenti di confidence.

Figura 7.10: Top 3 confusion matrix ottenute

La confusion matrix a sinistra è quella che presenta i risultati migliori e come si evince dall’immagine è stata ottenuta mediante l’utilizzo della cost matrix riportata e limitando il post-pruning alzando il valore della confidence da 0,25 a 0,6.

Il modello da cui essa deriva prevede nel 25% dei casi un falso negativo e nel 6% dei casi un falso positivo.

I valori di Precision e di Recal sono quindi rispettivamente del 19,163% e del 74, 6% per il caso con anomalia = 1 e del 99,479% e del 93,9% nel caso con anomalia = 0.

Di particolare importanza in questo contesto sono i falsi negativi, poiché si riferiscono a spedizioni per le quali non è prevista un’anomalia che invece poi si verifica.

Processo operativo numero 4

Il presente processo operativo si differenzia dal precedente esclusivamente nell’entità dell’oversampling che porta lo sbilanciamento del dataset da 86,4 – 13,6 a 76,2 – 23,8 tutte le altre fasi rimangono invece invariate.

Esso, in particolare, nasce dall’aver supposto che un miglior bilanciamento del dataset rispetto all’attributo classe potesse, in qualche misura, migliorarne le performance qualitative.

I risultati ottenuti tuttavia risultano divergenti rispetto a questa supposizione.

L’immagine seguente mostra la confusion matrix del miglior modello ottenuto con questa nuova configurazione.

Estrazione

del dataset

Data preparation Split in training e test set Oversampling a proporzione 76-24 del train Classificazione cost sensitive

Figura 7.11: Top confusion matrix

Dal paragone con i risultati ottenuti in precedenza si evince come vi sia un lieve miglioramento nella percentuale degli errori di previsione relativi ai falsi negativi, circa lo 0,7% in meno, a fronte tuttavia di un peggioramento di circa 2 punti percentuali negli errori di previsione relativi ai falsi positivi.

Documenti correlati