• Non ci sono risultati.

CASE STUDY

gura 4.8 Tabella dati per il grafico Waterfall

4.4 ANALISI DELL’ANDAMENTO DELLE VENDITE

4.4.1 Introduzione ad Orange Canvas

Orange (in fig.4.16 il logo) è un software per il data mining gratuito utile per l’apprendimento automatico (machine learning) e per il data mining. Questo programma è formato da un’architettura a più strati e per questo è utilizzabile da differenti tipologie di utenti: da quelli

418652 10.185 12.228 3.980 19.179 373080 0 50000 100000 150000 200000 250000 300000 350000 400000 450000 Fatturato BDG

(+) Central (+) East (+) South (+) West Fatturato Consuntivo

Il software è il risultato d bioinformatica della facoltà concepito inizialmente con l’apprendimento automatic altri tipi di trattamento dei componenti erano impacc grafica. Si capì presto che integrato con Python, un lin proprio per la sua sintassi funzioni bene come proto nella possibilità di usare es moduli Python per GUI58 è s

la licenza GPL che con licenz

Quindi uno dei requisiti pe aver istallato una versione d Funziona sia sui sistemi o addizionali (Add-ons) che p di quest’esercizio).

Orange è scaricabile gratuit degli utenti lo usa attrav programma e che prende linguaggio Python è consi programmazione, Orange

58 GUI è un acronimo che sta desktop come barre degli stru utenti una gamma completa d

Figura 4.16: Logo del softwar

Orange

che si affacciano per la prima volta programmatori esperti che possono acced attraverso un’interfaccia di scrittura. Infa di una libreria (modulo) di Python che inc alcuni metodi più usati per il machine tecniche di campionamento e altri metodi.

to di un progetto universitario iniziato nel 1996 oltà delle scienze informatiche dell’università di Lju con un unico modulo in linguaggio C++ che conte

atico e le relative procedure di pre-elaborazione, dei dati. Poiché Orange era usato per l’analisi dei pacchettate in altri programmi che potessero fo e questo rappresentava un grosso limite perciò l’ n linguaggio di scrittura molto moderno che è stato assi pulita e semplice. Il fatto che sia veloce fa sì rototipo per nuovi modelli e metodi. Infine l’ultim re estensioni di moduli scritti in C e in C++. Dal 20

è stata scelta PyQt come libreria inter-piattaforma icenze commerciali.

i per far funzionare Orange sul proprio dispositivo ne di Python (v. 2.6 o 2.7) che contenga le librerie N mi operativi OS X, su Windows che su Linux. Pr he possono essere aggiunti (cosa che faremo anche

tuitamente dal sito ufficiale: http://orange.biolab.s traverso l’interfaccia grafica rappresentata dalla nde il nome di Orange Canvas. Infatti mentre l’

nsigliata solo per gli utenti esperti che hanno su nge Canvas fornisce a tutti un’interfaccia grafica

sta per Graphic User Interface ed è un interfaccia che u strumenti, menu, finestre e pagine di dialogo per fornire

ta di strumenti (in questo caso di data mining).

tware

- 89 - lta al data mining ai ccedere allo strumento Infatti Orange dispone include la selezione di chine learning, alcune odi.

996 dal laboratorio di i Ljubljana, Slovenia. Fu onteneva algoritmi per one, campionamento e dei dati, spesso le sue fornire un’interfaccia ciò l’anno successivo fu stato scelto dagli autori fa sì che il programma ltimo vantaggio risiede l 2003 fra il gruppo di rma disponibile sia con

tivo è proprio quello di rie NumPy, SciPy, PyQt. Presenta dei moduli che per lo svolgimento

ab.si e la maggior parte

alla parte centrale del re l’uso degli script in sufficienti capacità di afica che permette di

e usa oggetti comuni del nire a tutte le tipologie di

- 90 -

visualizzare e manipolare i dati attraverso gli elementi base del programma, ovvero i widgets (letteralmente congegno grafico). Ognuno di questi incorpora una certa funzione (carica i dati, filtra, si adatta ad un certo modello, visualizza alcuni dati…) e riceve e/o invia i dati da altri widgets: in altre parole si trasmettono dei segnali fra di loro. L’utente può impostare il flusso dei dati sistemandoli secondo un qualsiasi schema e collegandoli fra di loro. Ogni widget è rappresentato con un’icona che ha due “orecchie” una sulla sinistra (input) e una sulla destra (output). L’utente li inserisce sulla tela semplicemente trascinandoli dal menu e poi può collegarli considerando la gerarchia input e output. Infatti due widgets possono connettersi solo se il tipo di segnale che condividono combacia: un widget che dà come output una tabella dati non può per esempio essere connessa ad uno che si aspetta qualcosa di differente. Quando si clicca su ognuno di essi si apre una finestra di dialogo con le varie impostazioni e con i risultati.59

Il punto di forza di questo programma è l’interattività dal momento che per ogni cambiamento nel singolo widget (caricare un altro data set, cambiare i filtri, modificare i parametri di una certa funzione) tutti gli altri a cui è collegato vengono aggiornati istantaneamente, a meno che la propagazione non sia espressamente disabilitata.60 Questo è molto comodo nel caso in cui

per esempio si vogliano fare più prove con dataset diversi. Gli altri vantaggi che si riscontrano nello scegliere questo programma per le operazioni di data mining sono il fatto che sia open source, gratuito e con un ricco assortimento di visualizzazioni (come gli istogrammi, gli scatter plots, i display a mosaico…). Infine uno dei punti di forza è che è estremamente versatile visto che funziona sia con degli script che con la visualizzazione dell’interfaccia grafica e perciò, come già accennato, può essere usato da ogni tipo di utente a ogni livello di esperienza.

Alcuni dei suoi limiti sono che lo spazio che richiede per l’istallazione è piuttosto grande visto che bisogna istallare anche le librerie di Python, che ha una lista di algoritmi limitata e le capacità di reporting sono limitate ad un’esportazione grafica dei modelli. Infine un suo punto di debolezza sta nella statistica classica: anche se può calcolare la statistica basilare su alcune proprietà dei dati, non fornisce nessun widget per i test statistici.

Questo programma è usato in differenti ambiti che spaziano dalla scienza in cui è usato come piattaforma per i test per nuovi algoritmi, all’industria (un dei partner più rinomati di Orange è

59

Janez Demšar and Blaž Zupan, ORANGE: DATA MINING FRUITFUL AND FUN, University of Ljubljana, Faculty of Computer and Information Science Tržaška 25, 1000 Ljubljana, Slovenia

60

M. Stajdohar, J. Demsar, Interactive Network Exploration with Orange, Journal of Statistical Software, 2013, pp. 3-6

- 91 - il gigante farmaceutico Astra-Zeneca che lo usa per lo sviluppo di nuove medicine) e infine è usato anche in ambito scolastico nei corsi dove si insegna il data mining e il machine learning. Geograficamente Orange è diffuso in tutto il mondo inclusi paesi come Stati Uniti, Italia, Francia, Giappone, Turchia, Cuba e Perù.61

All’apertura del programma ci troviamo davanti ad una schermata come da figura 4.17, che è appunto una tela (canvas) bianca sulla quale possiamo disegnare il nostro schema. Sulla sinistra si ha l’elenco dei widgets disponibili suddivisi in sei categorie (nella figura sono sette perché durante l’esercizio è stato aggiunta un’estensione) e non serve far altro che trascinarli dal menu alla tela.

Figura 4.17: Schermata di apertura di Orange Canvas

Il primo passo è obbligatorio: partiamo con l’inserire il widget File che conterrà il nostro dataset. Il programma mette a disposizione numerose tabelle di esempio oppure permette di caricare i propri documenti. Il dataset di input è una tabella con gli attributi in colonna e le istanze di dati in riga. Gli attributi possono essere di quattro tipi (continui, discreti, dati temporali e stringhe) e c’è la possibilità di assegnarli dei ruoli: funzioni di input, meta attributi, classi ed è disponibile una quarta opzione che permette di far ignorare al programma quella

61

Janez Demšar and Blaž Zupan, ORANGE: DATA MINING FRUITFUL AND FUN, University of Ljubljana, Faculty of Computer and Information Science Tržaška 25, 1000 Ljubljana, Slovenia

- 92 -

colonna (skip). Noi inseriremo la nostra tabella appositamente costruita con i seguenti attributi: mese e salario.

I widget che saranno usati per questo studio sono:

Questo è la base di tutto il programma. Legge i valori e gli attributi dei dati da un file di input e invia il data set attraverso il suo canale di output. Può leggere i file da Excel (.xlsx), da un semplice file di testo (.txt), da un file con dati separati da una virgola (.csv) o infine da un URL se abbiamo i dati salvati da un foglio Google. Rilascia delle informazioni sul dataset, come la dimensione e il numero e il tipo degli attributi. Questi possono essere modificati cliccandoci sopra: l’utente può cambiarne il nome, il tipo di variabile e di ruolo.

Grazie a questo widget si possono visualizzare le tabelle in un foglio. Ha come input i valori di un dataset e da come output i valori selezionati. Se si collega al widget File otteniamo la tabella di origine. Se invece lo colleghiamo ad una funzione otteniamo certi valori, certi coefficienti, misure a seconda di cosa è il suo input. Data Table supporta anche l’inserimento manuale dei dati.

Questo è un widget che crea una funzione lineare dai suoi dati di input che non possono essere diversi da un dataset: Linear Regression può identificare la relazione fra un predittore x e la variabile target y. Come output può fornire o un algoritmo di apprendimento con i parametri forniti, oppure un predittore. Sono specificabili anche i parametri Ridge e Lasso, che sono entrambi due penalità che agiscono sui coefficienti meno affidabili fornendo una regolarizzazione al modello: il primo deprime quei coefficienti che si avvicinano allo 0 mentre il secondo li toglie definitivamente per cui effettua una vera e propria selezione delle variabili. Specificare tali parametri li significa compiere un atto conservativo per cui si falsa leggermente la regressione ma si riduce notevolmente l’overfitting.

- 93 - Questo widget è un prototipo e verrà usato nello specifico per ottenere una versione grafica della nostra retta di regressione. Verrà collegato alla funzione di regressione lineare di modo che ne assuma la stessa regolarizzazione. Con questo widget si può anche espandere il dataset aggiungendo delle colonne con valori con potenza. Per ottenerlo bisogna andare nelle Opzioni del programma, selezionare la voce Add-Ons e istallare Orange3-Prototypes. Anche se non abbiamo bisogno di questo tipo di regressione questo widget permette la rappresentazione grafica dei dati della serie e della retta della regressione lineare.

Con Test&Score si possono testare i dati, uno o più algoritmi di apprendimento e valutare i risultati dei test fatti sugli algoritmi. Ha due funzioni: fornisce alcune misure importanti come R2 e può anche

essere usato come input da altri widgets per analizzare le performance dei classificatori, applicando ad esempio la ROC Analysis o la Confusion Matrix. Per quanto riguarda la regressione si possono misurare il MSE, ovvero l’errore quadratico medio che misura la differenza tra lo stimatore e quello che viene stimato, RMSE ovvero la radice quadrata dell’MSE, che fornisce una misura dell’imperfezione dello stimatore ad adattarsi ai dati, il MAE che misura quanto vicino le previsioni saranno al risultato e infine R2 che è il determinante lineare che misura la bontà del modello, indicando in percentuale quanto della variazione del training set è spiegata dalla regressione.

Con questo widget è possibile visualizzare i dati su un grafico bidimensionale. Come input può avere data set, sotto tabelle o liste di attributi e come output può avere un subset di attributi che l’utente può selezionare dal grafico stesso. Cliccando sull’icona si ottiene un grafico a due dimensioni per la visualizzazione sia degli attributi continui che discreti. I dati sono mostrati come una collezione di punti che hanno una certa coordinata a seconda dei valori sull’asse delle x e delle y. Questo widget fornisce diverse proprietà come colore, dimensione e forma dei punti, la possibilità di selezionare alcuni

- 94 -

punti, di eseguire uno zoom oppure ancora di mostrare la densità delle classi. Affinché vengano mostrate più classi all’interno del grafico bisogna che la tabella abbia almeno 3 colonne: quella delle x, quella delle y e una che specifichi la classe (nel nostro caso sarà la colonna che specifica se i dati sono a consuntivo o quelli ottenuti dalla media mobile). Il widget che troviamo di default è così completo ma permette la visualizzazione dei soli puntini. Se per un motivo estetico volessimo avere anche la connessione fra essi dobbiamo istallare l’Add-Ons Timeseries.

Da giugno del 2016 Orange supporta anche i dati temporali in un formato ISO 8601 del tipo: YYYY-MM-DD hh:mm:ss. I nostri dati originali non avevano questo formato quindi si è deciso di operare sul file Excel per rendere leggibile la data al programma. Cliccando sulla cella che contiene la data col tasto destro si può accedere al Formato Celle e dalla tab Personalizzato si può inserire manualmente il formato desiderato come mostrato in figura 4.18:

Figura 4.18: Formattazione dei dati temporali

Purtroppo nemmeno con questa soluzione Orange leggeva correttamente la data in quanto riportava tutto al 01-01-1970 alle ore 11.09, proseguendo per le 24 date in ordine crescente di minuto. È disponibile un’altra soluzione per modificare il modo in cui il programma legge la data grazie ad un modulo di Python attraverso il quale, dato un qualsiasi formato, si può specificare come il programma deve interpretarlo. Questo richiede però la capacità di scrivere in linguaggio di programmazione e a nostro avviso andrebbe contro la semplicità dell’utilizzo

- 95 - del software per chi fa controllo di gestione e non conosce tali linguaggi. In ogni caso si rimanda in nota alla procedura e al codice.62

Poiché il modello che vogliamo applicare per primo è quello della regressione lineare, ci siamo limitati a considerare la variabile mese con la progressione di numeri a partire dall’1. Quindi il primo mese di analisi Gennaio 2010 è 1, e poi in progressione fino ad arrivare al 24 che rappresenta Dicembre 2011.