• Non ci sono risultati.

IL PROCESSO DI DATA MINING E LE BEST PRACTICES

Abbiamo visto finora come il data mining sia il modo di imparare dal passato per prendere nel presente decisioni migliori per il futuro. Usare il data mining dal punto di vista pratico significa avere la capacità di tradurre i problemi di business in problemi di data mining: il circolo virtuoso che si instaura riguarda l’individuare il problema, trasformare i dati in informazioni, prendere le dovute azioni e misurare i risultati. È un processo iterativo in cui i vari step possono essere ripetuti più volte e nessuno deve essere saltato. Il fatto di trattare il data mining come un processo tecnico, avere una metodologia e delle best practices serve per evitare due insidie che possono verificarsi nel processo apprendimento:

- imparare cose non vere; - imparare cose vere ma non utili;

Per quanto riguarda il primo pericolo, i dati di per sé possono essere incorretti o non pertinenti, i pattern scoperti possono riguardare decisioni passate che non hanno nulla a che fare con il futuro, oppure la trasformazione dei dati potrebbe aver distrutto o nascosto importanti informazioni. La sfida dei data miners è quella di capire quali patterns sono predittivi e quali no. Come abbiamo visto nel paragrafo precedente, il termine tecnico per i pattern che finiscono con il generalizzare troppo poco è overfitting, che porta a modelli

12 F. PROVOST, T. FAWCETT, Data Science for Business, O’Reilly, 2013, pp. 111-113 13

M. J. A. BERRY, G. S. LINOFF, Data Mining Techniques, for Marketing, Sales, and Customer Relationship Management, Wiley Publishing, Inc., 2004: pp: 43-86

- 22 -

instabili che funzionano un giorno ma non in seguente. Si imparano cose non vere anche da modelli parziali (biased) e questo tipo di insidia è più difficile da evitare perché i clienti che rispondono alle mail sono diversi da quelli che le cestinano, chi risponde alle interviste ha un comportamento diverso da quelli che lo fanno, i records con tutti i valori riflettono una popolazione differente da quelli con informazioni mancanti. Ma non c’è modo di avere entrambi le parti, le analisi vengono fatte solo sui dati a disposizione e questo porta a modelli incompleti e quindi a imparare cose che non sono vere. Anche una segmentazione sbagliata può portare a una confusione dei risultati, perché per esempio il modo in cui i weekend e i giorni festivi capitano in un mese lo rende diverso a livello di vendite per un supermercato rispetto ad altri mesi che hanno una distribuzione più ordinaria.

Ovviamente anche il secondo tipo di problema va evitato: nell’imparare cose che sono vere ma non utili ricadono l’imparare cose che già si conoscono, oppure scoprire dati/informazioni che non possono essere usare.

Quando si segue il giusto percorso e si creano modelli basandosi sui dati allora si imparano cose nuove. Nel senso più generale un modello è una spiegazione o una descrizione di come qualcosa funziona che riflette la realtà abbastanza bene da poter essere usata per fare delle inferenze sul mondo reale. Anche senza rendersene conto l’essere umano crea automaticamente dei modelli mentali che lo aiutino ad analizzare la realtà.

Il data mining funziona come mostrato in figura 1.6: i modelli prendono una serie di input e producono un output. I dati usati per creare il modello si chiamano data set (come quello che useremo per un esempio pratico nel capitolo 4 della trattazione). Quando i modelli sono applicati a nuovi dati allora prendono il nome di score set.

- 23 - Le tecniche di data mining possono essere usate per costruire tre tipi di modelli che rispondono a tre tipi diversi di task: profiling descrittivo, profiling (diretto) e predizioni. Il primo tipo di modello descrive semplicemente quello che c’è nei dati e quindi l’output è uno o più grafici che spiegano l’andamento della situazione. Il profiling diretto e la predizione hanno invece al contrario uno scopo in mente mentre si crea il modello: nel modelli di profiling il target è contemporaneo all’input, mentre nei modelli predittivi il target deriva da uno stage successivo. Con le analisi predittive si vuole trovare un pattern nei dati che sia capace di spiegare dei possibili risultati in un periodo successivo. Questo ovviamente influenza la creazione del model set.

Il processo di data mining consta di 11 fasi:

1. tradurre il problema aziendale/di business in un problema di data mining; 2. selezionare i dati giusti;

3. analizzare i dati; 4. creare un model set;

5. risolvere tutti i problemi con i dati;

6. trasformare i dati per far emergere le informazioni; 7. costruire un modello;

8. valutare il modello; 9. implementarlo; 10. valutare i risultati; 11. iniziare da capo.

Questo non è necessariamente un processo lineare, in quanto anche se i vari step hanno un ordine naturale non è necessario finire completamente uno step prima di muoversi verso quello successivo. Inoltre le cose imparate negli step successivi possono causare una rivisitazione di quelli precedenti e questo lo rende sicuramente un processo non lineare.

Si parte dal primo step e si cerca di tradurre il problema aziendale nel linguaggio del data mining: non bisogna essere vaghi o parlare in termini generali. Bisogna impostare un progetto che sia misurabile.

Il data mining esiste se esistono dei dati, quindi al secondo step dobbiamo far in modo di selezionare dati appropriati. In un mondo ideale ogni azienda ha a disposizione nel suo data warehouse tutti i dati necessari, aggiornati e accurati dal punto di vista temporale. Questo non si verifica nella realtà quindi è auspicabile che dopo aver formulato il problema, si faccia una

- 24 -

lista dei dati desiderati, facendo attenzione alla quantità. Avere troppi dati può essere controproducente, perché porta a costi in termini di tempo e di elaborazione. Quanti dati sono sufficienti dipende dall’algoritmo usato, dalla complessità dei dati e dalla frequenza relativa dei possibili outcome. Se sono troppo pochi c’è il rischio che il data mining sia meno efficiente e perciò meno utile. Il livello desiderabile di dati si raggiunge quando il volume dei dati oscura il pattern che potrebbe essere rintracciabile in database più piccoli. Per quanto riguarda l’intervallo temporale, visto che il data mining usa i dati del passato per fare predizioni sul futuro, bisogna considerare che se c’è una stagionalità va scoperto ogni quanto si verifica e di conseguenza bisogna accertarsi che ci siano dati storici a sufficienza per catturare ciclicità questo tipo. Anche per quanto riguarda il tempo c’è una controindicazione, perché dati troppo vecchi potrebbero rispecchiare delle condizioni di mercato che oggi sono del tutto assenti e perciò inutili per la nostra ricerca. È auspicabile che i dati contengano almeno un esempi di tutti i possibili outcome che ci interessano.

Dal momento in cui si entra in possesso dei dati è buona norma farne un profilo: conoscere quello che stiamo maneggiando è quello che suggerisce il terzo step del processo e riguarda l’esaminare le distribuzioni presenti: il valore più alto e quello più basso sono ragionevoli? Quanto differisce la media dalla mediana? Quanti valori mancanti ci sono? Nel caso i dati sembrano non avere senso bisogna indagare sul motivo: provando a spiegare le discrepanze è probabile che si impari molto sul processo e sulle regole di business che sono dietro ai numeri riportati nei dati.

Il passo successivo (quarto step) riguarda il creare un model set in cui sono contenuti tutti i dati usati nella creazione del modello. Alcuni dati serviranno a trovare dei patterns significativi, altri a verificare che il modello sia stabile, altri ancora a verificare la performance del modello. Lo scopo principale di tutta la metodologia è creare dei modelli stabili, il che significa creare dei modelli che funzionino in ogni periodo dell’anno e anche nel futuro. Questo ovviamente è più probabile che succeda se i dati nel model set non provengono da un solo periodo dell’anno. L’idea è quella di generalizzare dal passato piuttosto che memorizzare quello che è successo in un particolare periodo, rischiando così di imparare delle cose che non sono generalmente vere. Un’altra questione riguardo l’intervallo temporale è che se il modello sarà usato per fare delle predizioni, anche se contiene più intervalli temporali, può sempre essere diviso in tre periodi dal punto di vista del tempo: passato, presente e futuro. Tutti e tre questi periodi dovrebbero essere presenti nel model set. Siccome tutti i dati provengono dal passato bisogna distinguere fra passato lontano, passato e passato recente, come mostrato in figura 1.7. I modelli predittivi sono costruiti in modo da trovare dei pattern nel passato lontano che spieghino quello

- 25 - recente. Al momento che il modello viene implementato si possono usare i dati dal passato recente per fare delle previsioni sul futuro.

Figura 1.7 Connotazione temporale dei dati – FONTE: Data Mining Techniques for Marketing

Può non risultare chiaro perché alcuni dei dati del passato recente non siano usati, ma la risposta è che quando il modello è applicato, nessun dato del presente è disponibile come input. Per esempio se un modello è stato costruito usando i dati di Giugno per predire Luglio, allora non può essere usato per predire Settembre finche tutti i dati di Agosto non sono disponibili. Una volta pre-classificati i dati la metodologia richiederebbe di dividere il model set in tre parti:

- il training set, per costruire il modello iniziale;

- il validation set, per sincronizzare il modello iniziale al fine di renderlo più generale possibile e meno legato all’idiosincrasie del training set;

- il test set, usato per validare l’effettiva probabilità del modello una volta applicato ai dati inosservati.

Sono necessari tre sets perché quando i dati sono usati per il primo step del processo, non possono più essere usati per lo step successivo in quanto l’informazione contenuta in essi è già diventata parte del modello.

Il passaggio successivo della metodologia riguarda il fatto che tutti i dati sono sporchi ed hanno dei problemi: col quinto step si prova perciò a risolvere questo tipo di criticità. Alcuni dei problemi più comuni riguardano le variabili categoriche con troppi valori, come CAP, occupazione del cliente, nazionalità, etc.. Queste sono tutte variabili interessanti ma che la maggior parte degli algoritmi non può gestire. Il punto è che anche se sono predittori utili, possono avere talmente tanti valori che finiscono per essere inutilizzabili. Il consiglio in questo caso è quello di sostituire per esempio il codice postale con la mediana del prezzo delle case in quell’area, oppure l’occupazione con la mediana del salario. Altri problemi sono dovuti a variabili numeriche con distribuzioni distorte e valori anomali, oppure dai valori mancanti; alcuni algoritmi sono capaci di trattare i valori mancanti come valori e incorporali nelle proprie

- 26 -

regole, altri no e in questo caso la strategia migliore è quella di creare un modello per il quale il valore mancante è la variabile target. Un altro problema di questo step sono i valori che hanno significati diversi con lo scorrere del tempo e in questo caso bisognerebbe creare un database ben strutturato che tenga memoria di questi cambiamenti in modo da ottenere una nuova variabile con significato costante nel corso del tempo.

Il sesto step riguarda il trasformare i dati di modo che le informazioni vengano fatte emergere in superficie. Una volta che i dati sono stati uniti e che i problemi principali sono stati risolti, si preparano i dati per l’analisi e per far emergere l’informazione: si rimuovono le anomalie, si aggiungono variabili numeriche, si creano delle classi per le variabili categoriche applicando trasformazioni logaritmiche. Una delle attività principali di questo step è quella di catturare gli eventuali trend. Infatti come abbiamo accennato nel paragrafo precedente molti dei dati delle aziende contengono serie temporali: istantanee di informazioni di fatturazione, di contatti, di uso dei prodotti e così via. La maggior parte degli algoritmi di data miming non comprendono le serie temporali. Segnali come tre mesi di ricavi in calo non possono essere individuati trattando ogni mese di osservazione indipendentemente. Sta al data miner scoprire il trend che sta dietro all’informazione aggiungendo variabili derivate. Ci sono anche altri metodi per portare l’informazione in superficie combinando variabili multiple, alcuni esempi sono:

- Indice di obesità= 5I%JKK5MJNO L

- (P/E) ovvero l’indice Price/Earnings = QR5S5Q OMPJKKO

- Densità di popolazione = MOMOI5K O J5PJ5

- (RPM) ovvero il Revenue passenger miles = TU-+VW 4T +XX4YYU4TW ∙ Z[

Aggiungere campi che rappresentano delle relazioni è considerato molto importante dagli esperti perche è un modo per permettere al processo di mining di beneficiare di quelle competenze.

Il settimo step riguarda il costruire il modello vero e proprio e i dettagli di questa fase variano a seconda delle diverse tecniche viste nel paragrafo precedente. Oggigiorno questo step è stato automatizzato dai moderni software di data mining e per questo motivo di solito richiede solo una piccola parte di tempo del processo.

Lo step successivo riguarda la valutazione dei modelli: nell’ottava fase infatti si determina se i modelli funzionano o no. Bisogna rispondere a domande sull’accuratezza, su quanto bene il modello descrive i dati osservati, su quanta affidabilità può essere attribuita alle predizioni di

- 27 - tale modello e sul livello di comprensibilità. Un modo per misurare il potere espressivo di un modello descrittivo è per esempio la lunghezza minima di descrizione che è il numero di bit necessari a codificare sia la regola che la lista delle eccezioni alla regola (concetto che avevamo in parte accennato nel paragrafo 1.3.3): meno bit sono necessari per la codifica e migliore è la regola. Per i modelli diretti invece si valuta la loro accuratezza sui dati precedentemente sconosciuti. Ciascun modello dipende poi dal contesto e lo stesso modello può sembrare buono secondo una misura e non buono rispetto ad un’altra. Per quanto riguarda la valutazione dei classificatori e dei predittori, la loro accuratezza è misurata sulla percentuale di record classificati in maniera errata. Bisogna però anche stare attenti alla gravità di ciascun errore, perché certi errori sono peggiori di altri e a questo proposito di solito viene riportato il caso in campo medico dove un falso negativo su un test per una malattia grave causa conseguenze peggiori rispetto a un falso positivo. In questi casi possono essere utili le confusion matrix e un approccio bayesiano all’analisi del problema.

Un modello potrebbe essere accurato in certi intervalli di input ma inaccurato in altri intervalli. La figura 1.8 mostra un modello lineare che stima il ricavo totale basandosi sul prezzo unitario di prodotto. Questo modello funziona ragionevolmente bene in un intervallo piccolo ma peggiora nettamente quando il prezzo raggiunge livelli in cui l’elasticità14 della domanda per il prodotto è maggiore di 1. Un’elasticità maggiore di 1 significa che ogni ulteriore incremento di prezzo si traduce in un decremento di ricavo: in questi casi la domanda è molto sensibile alle variazioni di prezzo.