Sei sulla pagina 1di 18

BIG DATA

1 IL PATRIMONIO DEI DATI: LE FONTI, I SUPPORTI TECNOLOGICI E IL TIPO DI


STRUTTURA

Fonti operazionali

Per un’azienda industriale, alcuni esempi di fonti operazionali possono essere i seguenti:
• Applicativi di gestione della produzione. Essi registrano le quantità di materie prime
utilizzate, i servizi e i beni accessori consumati
• Applicativi di gestione degli acquisti: ordini di acquisto e movimenti di magazzino.
• Applicativi di gestione degli ordini e delle consegne.
• Applicativi di contabilità: movimenti contabili che scaturiscono dall’emissione di fatture di
vendita o dal ricevimento di fatture d’acquisto, oltre a ogni altra movimentazione di cassa o
banca.
• Applicativi di gestione del personale: gestione degli stipendi, gestione di obiettivi, premi,
malattie, infortuni, ecc.
• Applicativi di gestione del cliente. I cosiddetti applicativi di CRM (Customer Relationship
Management).
• Per un’azienda bancaria, le fonti operazionali sono in parte simili a quelle dell’esempio
precedente (contabilità, gestione del personale, CRM), ma a esse si aggiungono applicativi
tipici dell’attività bancaria: la gestione dello sportello, il back office, le applicazioni di gestione
e valutazione degli strumenti finanziari, gli applicativi per la valutazione del rischio e
l’erogazione di finanziamenti, ecc.
• Le aziende commerciali, come quelle della grande distribuzione, presentano oltre ai sistemi
di contabilità, gestione acquisti, magazzino e gestione del personale anche i sistemi di
rilevazione delle vendite alle casse ed emissione degli scontrini fiscali oppure gli applicativi
per la gestione delle promozioni e delle tessere clienti.

2 DATA WAREHOUSE E DATA MART

L’analisi effettuata direttamente sui sistemi operazionali è sconsigliabile per diverse


motivazioni:
• Differenti software, ognuno dei quali è basato su tecnologie differenti (database relazionali,
basi dati non relazionali) e su prodotti di case produttrici diversi
• In presenza di numerose applicazioni, l’uniformità e la coerenza dei dati non sono garantite,
i dati sono replicati e manipolati in ciascuno dei software
• Le basi dati sottostanti agli applicativi operazionali sono di tipo OLTP (On Line Transaction
Processing) e il loro modello dati è fortemente normalizzato per favorire non tanto le letture
e l’analisi di grandi quantità di record, quanto le attività transazionali (inserimenti,
cancellazioni, modifiche dei dati)

La soluzione consiste nella creazione di un data warehouse o di una serie di data mart, cioè di
database che contengono dati integrati, coerenti e certificati afferenti a tutti i processi di
business dell’azienda e che costituisce il punto di partenza per le attività analitiche del sistema
di Business Intelligence (BI).
3 LA BUSINESS INTELLIGENCE

Definizione: La Business Intelligence è un sistema di modelli, metodi, processi, persone e


strumenti che rendono possibile la raccolta regolare ed organizzata del patrimonio di dati
generato da un’azienda.

• La Business Intelligence, attraverso elaborazioni, analisi o aggregazioni, permette la


trasformazione dei dati in informazioni e la loro conservazione, reperibilità e presentazione in
una forma semplice e flessibile.
• La Business Intelligence, di norma, integra Dati Operazionali, Dati Dipartimentali e Dati
provenienti da fonti esterne

Il reperimento e l’utilizzo di dati esterni pongono alcuni problemi, il principale, consiste nella loro
qualità, che comporta difetti di accuratezza, completezza e coerenza.

4 TIPI DI SUPPORTO PER I DATI

I dati interni ed esterni sono gestiti su supporti diversi.

Le fonti operazionali sono ospitate, salvo poche eccezioni, in database relazionali accessibili
tramite interrogazioni con il linguaggio SQL.
In ambito Bancario si trovano ancora tecnologie legacy (mainframe).

I data warehouse si trovano esclusivamente su RDBMS, sia con tecnologia SMP (Symmetric
MultiProcessing), sia con tecnologia MPP (Massive Parallel Processing).

• SMP: sono costituiti da più processori che condividono lo stesso sistema operativo, la stessa
memoria RAM e lo stesso bus di Input/Output; per questo sono detti shared everything. I
sistemi SMP sono molto efficienti nelle applicazioni OLTP (On Line Transaction Processing), ma
presentano limiti quando li si utilizza per elaborare grandi volumi di dati.

• MPP: ogni processore utilizza risorse ad esso dedicate (shared nothing), sia per quanto
riguarda la RAM sia per quanto riguarda il bus di I/O. I processori comunicano tra di loro
attraverso un’interfaccia di messaging. Le limitazioni dovute alla condivisione del bus
vengono meno rendendo così le architetture MPP adatte alla gestione di grandi quantità di
dati.

5 TIPI DI STRUTTURA DATI

Dati strutturati: Si tratta dei dati che sono rappresentabili in formato tabellare all’interno di un
database relazionale, oppure tramite un formato quali l’XML o il JSON, che assieme ai dati
contengono i metadati che definiscono i nomi dei campi e la loro struttura. “Rappresentabili in
formato tabellare”
Dati non strutturati: i dati che non ha senso rappresentare in formato tabellare, anche se essi
potrebbero essere inseriti in un database relazionale: non avendo una struttura, infatti, l’intero
blocco di dati sarebbe contenuto in un unico campo all’interno di una tabella, rendendo tale
struttura completamente inutile. Alcuni esempi di dati non strutturati sono: Il contenuto testuale
di un documento (email, pdf, tweet, post di un blog). I byte di un’immagine, di un video, di un file
sonoro.

Dati semi-strutturati : I dati semi-strutturati presentano una parte dotata di struttura e una parte
non strutturata. Per esempio un documento Word, o PDF, possiede una serie di metadati che
sono molto ben strutturati (titolo, autore e molto altro), mentre il corpo del documento è
costituito da testo. Lo stesso vale per le immagini che all’interno del file presentano una serie di
metadati che descrivono lo scatto, le impostazioni della fotocamera, la data e ora e addirittura le
coordinate GPS
Per lavorare con i dati non strutturati occorre effettuare su di essi trasformazioni in grado di
fornire un risultato che possegga una struttura.

6 ATTORI AZIENDALI E DATI

Gli attori aziendali presentano esigenze e requisiti diversi circa le informazioni


• I manager: Il management richiede informazioni analitiche di sintesi, con l’ausilio di un
supporto grafico tale da offrire, attraverso un semplice sguardo, la percezione
dell’andamento dell’azienda o di singoli settori. Inoltre oltre alla lettura del passato e
all’andamento presente, è sempre maggiore il desiderio di anticipare gli eventi ponendo in
essere un’attività predittiva volta a raggiungere un vantaggio competitivo nel mercato.
• Il personale esecutivo: si occupa dell’operatività corrente (gestione ordini, magazzino,
fatturazione,...) che permette all’azienda di funzionare e difficilmente richiede dati sintetici
per svolgere i propri compiti: la natura delle proprie attività esige invece dati di dettaglio,
forniti con tempestività.
• I data scientist: Il profilo ideale di un data scientist comprende numerose competenze, che
è molto difficile trovare in un’unica persona:
o Competenze informatiche riguardanti in particolare: Database relazionali e
linguaggio SQL Hadoop e il suo “ecosistema” di software Spark Database NoSQL, in
particolare quelli presenti nella piattaforma Hadoop,Linguaggi di programmazione
fortemente orientati all’analisi dei dati, quali R o Python Tool di analisi e
visualizzazione avanzati.
o Competenze statistiche.
o Conoscenza delle tecniche di predictive analytics e machine learning.
o Conoscenza dei processi di gestione della qualità del dato.
o Conoscenza dei processi di business e dell’organizzazione aziendale.
o Conoscenza delle problematiche e delle sfide del dominio settoriale di interesse.
o Capacità di comunicare Capacità di colloquiare con i manager e di supportarli nelle
decisioni critiche.
7 DEFINIZIONE DI BIG DATA

Definizione di big data: I big data sono generalmente definiti come quei dati che presentano una o
più delle seguenti tre caratteristiche, chiamate le tre V.

• Volume, cioè le quantità elevate di dati. I dati generati automaticamente da macchine


(sensori, DCS -Distributed Control System, strumenti scientifici) e quelli relativi a transazioni
bancarie e movimenti sui mercati finanziari possono assumere volumi imponenti, soprattutto
se considerati al loro massimo livello di granularità.
• Velocità, che indica la rapidità con cui i dati sono prodotti. Pensiamo al mondo dell’Internet
Of Things e dei sensori, che sono in grado di generare dati con una velocità elevatissima.
• Varietà, che riguarda la diversità dei formati, delle fonti e delle strutture. definiamo i big data
come: dati che non è possibile analizzare con tecnologie tradizionali oppure dati per i quali
l’adozione di tecnologie tradizionali risulti molto onerosa dal punto di vista economico.

8 CICLO DI VITA DEI BIG DATA

Una suddivisione dei vari elementi basata sul ciclo di vita dei big data, si compone delle
fasi seguenti:
• Acquisizione (o Data Ingestion).
• Immagazzinamento e organizzazione.
• Trasformazione e analisi.

8.1 Acquisizione

L’acquisizione dei dati può essere eseguita con modalità differenti a seconda della fonte e del
formato, tramite differenti strumenti:

• Sqoop, che fa parte della piattaforma Hadoop.


• ETL1 tradizionali che si sono dotati di connettori per le tecnologie big data (Hadoop HDFS,
HBase e altrindatabase NoSQL).

Per i dati prodotti in continuo e con velocità elevata, esistono gli strumenti di data streaming in
grado di far fronte a tali scenari: componenti di Hadoop quali Flume, Storm e Kafka.
La connessione con le fonti dei dati avviene attraverso driver ODBC, oppure tramite API di altro
tipo messe a disposizione dal provider dei dati.

Le API, Application Programming Interface, sono protocolli utilizzati come interfaccia di


comunicazione tra componenti software.
8.2 Immagazzinamento e Organizzazione

La conservazione dei dati pone due problemi di difficile risoluzione con le tecnologie tradizionali,
quando si parla di big data:
• la gestione di una grandissima mole di dati
• la presenza di dati non strutturati o semi-strutturati.

La soluzione a tali problematiche è fornita da due tipi di tecnologie:


• la piattaforma Hadoop: è un software open source, affidabile e scalabile, per il calcolo
distribuito, cioè il calcolo che avviene su un sistema di computer autonomi, ma collegati tra
di loro in rete. Le operazioni di calcolo avvengono utilizzando la componete MapReduce, che
lavora secondo il principio divide et impera: un problema complesso, che utilizza una gran
mole di dati, è suddiviso, assieme ai dati stessi, in piccole parti processate in modo
autonomo.
• i database NoSQL: consentono di lavorare su dati con strutture variabili, non adatti ad una
rappresentazione tabellare (Cassandra, Berkeley DB, MongoDB, Neo4J, Cosmos). Si tratta di
motori database che non aderiscono al modello relazionale.

8.3 Trasformazione e Analisi

Anche se concettualmente le fasi di trasformazione dei dati e di analisi si svolgono in tempi diversi
e hanno scopi differenti, dal punto di vista degli strumenti utilizzati vi sono delle sovrapposizioni.

MapReduce è lo strumento nativo di Hadoop per la realizzazione di trasformazioni dei dati, calcoli
e analisi. Tuttavia MapReduce è complesso e non è alla portata di tutti gli utilizzatori della
piattaforma: occorre infatti essere conoscitori esperti del linguaggio Java per realizzare programmi
MapReduce.

Fortunatamente esistono strumenti di più alto livello per interagire con i dati in Hadoop. Uno di
essi è Pig, caratterizzato da un approccio procedurale e da un linguaggio, Pig Latin, che in alcuni
aspetti somiglia all’SQL. Pig può essere utilizzato sia per realizzare operazioni di data ingestion, sia
per elaborare e analizzare i dati.

Un altro importante strumento per la preparazione dei dati è Hive, che è definito come il sistema
di data warehousing di Hadoop. Hive consente di aggregare dati, eseguire query e analizzare
grandi dataset utilizzando il linguaggio HiveQL, che ormai è sovrapponibile all’SQL, salvo piccoli
particolari. HiveQL maschera la complessità della scrittura di funzioni MapReduce, consentendo,
anche a chi non fosse esperto, di sfruttarne i meccanismi.

9 ANALISI PREDITTIVE

Per compiere l’esplorazione dei dati con tecniche di predictive analytics, occorre utilizzare
strumenti diversi da Hive o Pig. Sempre da Apache proviene Mahout, una piattaforma di machine
learning dedicata in particolare alla costruzione di recommendation engine, al clustering e alla
classificazione.
Oltre agli strumenti completamente integrati in Hadoop, citiamo Spark, un tool di calcolo
distribuito che racchiude in sé numerose funzionalità:
• Data ingestion (per esempio via streaming).
• Elaborazione e trasformazione dei dati.
• Analisi attraverso un’interfaccia SQL.
• Analisi avanzata tramite la libreria di machine learning.

L’utilizzo di Spark, in combinazione con Hadoop si sta diffondendo e si sta dimostrando


un’accoppiata molto efficace per la gestione dei big data.
Infine facciamo un cenno a strumenti esterni che possono lavorare con Hadoop: il software R, uno
dei tool statistici e di machine learning (ma non solo...) più utilizzati dai data scientist.

10 NON SOLO HADOOP!

Hadoop non è l’unico strumento che consente di implementare un’architettura in grado di


contenere ed elaborare dati con le caratteristiche di volume, velocità e varietà. le tecnologie
alternative a Hadoop:
• Spark è free e open source e quindi i costi che comporta sono legati all’acquisizione degli
skill, alle consulenze e all’hardware necessario per la creazione del cluster.
• Le cosiddette database appliance (o data warehouse appliance). Le appliance sono dispositivi
costituiti da hardware (server, memoria, storage e canali di Input/Output) e software pre-
configurati (Sistema operativo, DBMS, ...), in grado di gestire carichi di lavoro molto grandi.
• Soluzioni alternative, che sfruttano tecnologie hardware o software per raggiungere elevati
livelli di capacità di storage e velocità di elaborazione.
Esempio: Le GPU (Graphic Processing Unit), sono processori nati per la gestione della grafica,
ma che si sono rivelati molto utili anche in altri campi, dove la potenza di calcolo è un
requisito importante.

11 L’ ARCHITETTURA “DATA LAKE”

Un data lake è costituito da un insieme di componenti in grado di realizzare tutte le fasi del ciclo di
vita dei dati: nel data lake confluiscono i dati attraverso strumenti di data ingestion e all’interno
dell’architettura avvengono le trasformazioni in grado di preparare i dati per le analisi. Sempre
nel data lake gli strumenti di analytics producono risultati di analisi predittiva, arricchendo la base
dati.

Il data lake è un repository in grado di contenere grandi volumi di dati nel loro formato nativo.
Possiamo riassumerne le caratteristiche principali nei punti seguenti.
• Il data lake centralizza i dati provenienti da fonti diverse.
• I dati sono salvati nel loro formato originale e senza subire alcuna trasformazione tra
l’acquisizione e il salvataggio. Il data lake quindi supporta qualsiasi formato e anche l’assenza
di formato.
• I dati subiscono un processo di trasformazione dal quale si ricavano dati pronti per le analisi.
• Il data lake conserva tutti i dati e ciò lo differenzia dal data warehouse, nel quale, invece,
sono attuate scelte che portano a ridurre, anche molto, i dati effettivamente inclusi nelle
strutture.
• Il data lake può soddisfare le richieste di più categorie di utenti. I data scientist lavorano sul
data lake anche tramite algoritmi predittivi che possono essere alimentati con grandi
quantità di dati.

WARNING: senza un processo di data governance c’è il rischio che il data lake diventi un luogo in
cui i dati sono “parcheggiati” in modo disordinato a un punto tale da renderlo inutilizzabile.
Occorre quindi identificare precisamente i dati, i processi di ingestion e di trasformazione
attraverso metadati che possano essere facilmente consultabili e ricercabili. La presenza di un
motore di ricerca è quasi indispensabile per trovare i dati grezzi o elaborati.
Infine il data lake deve implementare meccanismi di sicurezza, di controllo degli accessi e di
autorizzazione alla lettura dei contenuti.

12 LAMBDA ARCHITECTURE

La lambda architecture è un framework per il disegno e l’implementazione di architetture big


data, che tiene conto sia della velocità di ingresso dei dati sia della latenza con cui sono
consumati.
• Il batch layer, che si occupa di conservare tutti i dati e provvede ad attività di elaborazione
batch volte a preparare i dati (per esempio, trasformarli in modo che abbiano una struttura
adatta all’analisi).
• Lo speed layer, che prende in carico i dati e li processa in tempo reale, fornendone visioni
sempre aggiornate. Lo speed layer tratta soltanto i dati più recenti.
• Il serving layer, che si occupa di ottimizzare le viste sui dati (sia batch, sia real-time) con
meccanismi di indicizzazione o comunque con modalità tali da garantirne l’interrogazione in
tempi molto rapidi. Il compito principale del serving layer consiste nell’esporre i dati
all’esterno.

13 DATA QUALITY E DATA MANAGEMENT PLATFORM

Data quality
Nel data lake, così come dovrebbe accadere in tutti i sistemi analitici, si pone la problematica
della qualità dei dati.

Data Management Platform (DMP)


• Con DMP si vuol indicare un sistema specifico, finalizzato alla comprensione del
comportamento dei clienti e all’utilizzo di tali informazioni per compiere azioni nei loro
confronti.
• Una DMP centralizza i dati di prima parte, cioè quelli prodotti internamente all’azienda
(CRM, dati di vendita, ecc.) e i dati di terze parti, che sono invece acquisiti da un fornitore
esterno.
• L’output di un sistema di DMP, costituito da analisi descrittive o predittive (churn, campaign
targeting, clustering, ...) supporta decisioni tattiche o strategiche.
14 INTEGRAZIONE CON IL SISTEMA INFORMATIVO AZIENDALE

Su moli di dati gestibili con le tecnologie tradizionali, gli strumenti su cui si fonda il data lake non
riescono ancora a garantire le stesse performance di un RDBMS o di un OLAP.

Il data lake può essere il collettore dei dati provenienti sia dalle fonti operazionali sia dalle fonti
esterne e può fungere da area di staging permanente, dalla quale si alimenta il data warehouse
tradizionale.
Sempre nel data lake potrebbero essere portate a termine tutte le operazioni di trasformazione
tipiche delle fasi di ETL, che sono batch oriented e che quindi non hanno bisogno di ritornare dati
con bassissima latenza.
Inoltre accanto ai dati originali, possiamo conservare i risultati intermedi di ciascuno step di
trasformazione e la profondità storica degli archivi può anche essere molto ampia. Un processo di
data distillation che genera dati importabili nel data warehouse, senza alcun problema tecnico.
Sempre come motore di calcolo, il data lake ha la sua funzione per quelle analisi che non possono
essere portate a termine sui sistemi tradizionali, per esempio quelle che riguardano i dati non
strutturati.
Un ulteriore scenario di integrazione consiste nel considerare il data lake come un’estensione del
data warehouse. Il data lake potrebbe ospitare i cosiddetti “cold data”, quelli, cioè, che sono
interrogati molto di rado e tipicamente corrispondono a periodi temporali lontani e che sono
ciclicamente eliminati dal data warehouse.

15 LE TECNICHE DI ANALISI: COME ESTRARRE VALORE DAI DATI

La creazione del valore, definita come data monetization, può avvenire in modi diversi. L’analisi
consente di scoprire inefficienze e porvi rimedio, oppure di identificare opportunità di business e
di metterle in pratica prima che lo facciano i competitor.

Un’altra opportunità consiste nella vendita di dati, sia a livello di dettaglio sia in forma aggregata.
È ciò che avviene da parte dei social network che attuano la data monetization, sia proponendo
spazi pubblicitari sia vendendo i dati dei propri utenti.
Descriviamo di seguito le tre tipologie di analisi che consentono di valorizzare la base dati: l’analisi
descrittiva, quella predittiva e quella prescrittiva

15.1 Analisi Descrittiva

Se pensiamo alla Business Intelligence, le componenti e l’output stesso del sistema rientrano nella
categoria dell’analisi descrittiva. Attraverso il data warehouse con i motori OLAP si possono
effettuare facilmente operazioni di slicing, dicing, drill down, roll-up, drill-trought, pivoting
descritte in sintesi nei punti seguenti.

• Drill-down. Le operazioni di drill-down consentono di passare da un livello di maggior


aggregazione ad un livello di minor aggregazione. Esempio Regione-Provincia-Comune
• Roll-up. Il roll-up è l’operazione contraria al drill-down: con essa il grado di aggregazione
aumenta.
• Slicing e dicing. Con slicing si intende l’operazione di riduzione della dimensionalità (oppure
del numero di elementi di una stessa dimensione) nel risultato di un’interrogazione
multidimensionale: Invece, con il termine dicing si intende il filtraggio dei dati tramite la
definizione di un criterio
• Pivoting. Con il pivoting si scambiano gli attributi presenti sulle righe con quelle sulle
colonne, oppure si cambia l’ordine di visualizzazione, ottenendo una differente forma del
risultato. L’operazione di pivoting aiuta l’analista a presentare il risultato in modi diversi,
dando maggiore o minore enfasi agli attributi descrittivi, oppure a sistemare i dati secondo
una visualizzazione più consona allo scopo dell’analisi.
• Drill-through. Il drill-through consente di ottenere il massimo dettaglio dei dati che hanno
generato un certo aggregato.

Ciascuna delle operazioni descritte sopra, così come le analisi di statistica descrittiva, è sempre
riferita al passato o, tutt’al più, al presente.

15.2 Analisi Predittiva

Le tecniche predittive utilizzano i dati del passato per estrarre una visione del futuro, costituita da
un modello matematico/statistico.
Alcuni concetti necessari:
• machine learning: esso identifica gli algoritmi che consentono ai computer di imparare dai
dati senza essere esplicitamente programmati per un specifico compito.
• Per analisi predittiva intendiamo un insieme di tecniche di analisi statistiche, di machine
learning oltre che di modellazione, preparazione e querying dei dati proprie dei sistemi
database.
• Un sinonimo di analisi predittiva è data mining, un termine utilizzato da molti anni per
indicare la scoperta, nei dati a disposizione, di pattern nascosti e applicabili al futuro.

Il modello predittivo non è altro che un insieme di parametri, ricavati dai dati del passato, e tali da
fornire una rappresentazione della relazione tra le caratteristiche del fenomeno analizzato (le
variabili di input, per esempio: dati anagrafici dei clienti, comportamento di acquisto, ecc.) e il
valore del fenomeno stesso (variabile di output, o target; per esempio probabilità di churn).

15.3 Analisi Prescrittiva

L’ultima categoria di tecniche di analisi è la prescriptive analytics. Si tratta di un concetto


innovativo (anche se il termine ha fatto la sua comparsa già nel 2003), che ha le sue fondamenta
nell’analisi predittiva, ma va oltre, fornendo vere e proprie regole direttamente applicabili al
business.
Il modello prescrittivo abilita i decision maker ad intraprendere azioni immediate, basate su
previsioni probabilistiche e soprattutto su regole chiare e comprensibili che provengono dal
modello stesso. Un altro aspetto importante dei modelli di prescriptive analytics consiste nella
loro capacità di analizzare anche il feedback che proviene dall’utilizzo delle regole, al fine di
tener conto delle azioni intraprese e dei loro effetti sui risultati.

I modelli di prescriptive analytics sono, ovviamente, anche predittivi, ma vi uniscono la capacità


di spiegare gli eventi: i modelli predittivi ci dicono cosa è probabile che avvenga, mentre i modelli
prescrittivi ne esplicitano le motivazioni attraverso un insieme di regole.
Come è noto le prediction non sono valide per sempre, per questo le indicazioni che il modello
produce devono lasciare tempo sufficiente per agire, altrimenti si dimostrerebbero poco utili a fini
decisionali ed esecutivi.
Se le regole prodotte dal modello sono semplici e facilmente interpretabili, ecco allora che il
tempo necessario all’azione sarà breve, consentendo ai decision maker di rientrare nell’orizzonte
temporale di validità della prediction.
Gli algoritmi che, oltre a generare una prediction, creano regole immediatamente utilizzabili
appartengono a tre classi: alberi decisionali, Fuzzy Rule-Based System, Logic Learning Machine.
Altri sistemi come per esempio le Reti Neurali, le Support Vector Machines, o gli algoritmi di Deep
Learning, pur essendo molto efficaci, sono delle black-box machines, cioè non forniscono alcuna
visione di come si giunga ad una determinata prediction.

15.4 Applicazioni Della Predictive E Prescriptive Analytics

L’analisi descrittiva sta alla base delle altre tecniche ed è in grado di generare valore dato che,
tramite processi di data discovery, si riescono a identificare numerosi aspetti chiave presenti nei
dati.
Per data discovery intendiamo l’uso di tecniche interattive (visuali quali grafici, mappe o non
visuali come le tabelle pivot) che permettono all’analista di esplorare i dati con vari livelli di
dettaglio e variando a piacere le dimensioni di analisi.

L’analisi descrittiva quindi permette di identificare problemi e inefficienze, aree di maggior


profitto, particolari caratteristiche della clientela e altro ancora.
Tuttavia quando la complessità della base dati cresce sia in termini di volumi, sia in termini di
possibili attributi da analizzare, occorre affidarsi a tecniche automatiche in grado di identificare i
pattern presenti nei dati e non più così evidenti come nei dataset di piccole dimensioni.
Accade molto spesso che, anche senza che vi sia la complessità tipica dei big data, l’esplorazione
manuale dei dati non sia comunque percorribile. In tal caso, le tecniche di analisi predittiva e
prescrittiva vengono in soccorso all’analista.

Proviamo a identificare alcune possibili aree in cui tali tipologie di strumenti danno il loro
contributo nell’estrarre valore dai dati:
CRM
• Churn Analysis. La churn analysis consiste nell’analisi della clientela per determinare i clienti
che presentano un’alta probabilità di passare alla concorrenza, al fine di intervenire in
anticipo ed evitarne la migrazione.
• Customer Satisfaction. L’analisi predittiva consente di determinare il grado di soddisfazione
del cliente, senza esplicitamente richiederglielo tramite intervista. La soddisfazione può
essere determinata a partire dal comportamento del cliente (pattern di acquisto) o in base ad
altri parametri ricavabili dai dati di vendita, di interazione con il sito web o le app aziendali.
• Customer Segmentation. La segmentazione consiste nella suddivisione della clientela in
gruppi omogenei, all’interno dei quali i clienti si somigliano e si comportano in modo simile.
L’utilità della segmentazione sta nel calibrare le azioni di marketing, vendita e in generale
ogni relazione con il cliente, sulla base delle caratteristiche comuni che identificano il gruppo.
Ricerca di anomalie
La ricerca di anomalie è realizzata con varie tipologie di algoritmi ed è applicata a diversi settori e
problemi di business.
• Fraud detection. Gli ambiti applicativi legati alla fraud detection sono costituiti
principalmente dall’identificazione dell’utilizzo fraudolento di carte di credito e dalla ricerca,
in ambito assicurativo, di sinistri causati al solo scopo di ottenere liquidazioni illegittime.
• Predictive maintenance. Per quanto riguarda la manutenzione predittiva, che comporta
indubbi benefici alle aziende del settore industriale.
• Intrusion detection. Le tecniche per la ricerca di anomalie sono applicabili anche
all’identificazione di intrusioni nelle reti informatiche o di intrusioni fisiche in abitazioni, siti
industriali, militari o sedi di istituzioni.

HADOOP

Hadoop è una piattaforma software open source, affidabile e scalabile finalizzata al calcolo
distribuito, cioè al calcolo che avviene su un sistema di computer autonomi, ma collegati tra di
loro in rete.

Hadoop nasce per sopperire a un problema di scalabilità di Nutch1, un crawler open source.
Doug Cutting e Michael J. Cafarella hanno lavorato su un embrione di Hadoop a partire dal 2004,
anno in cui furono pubblicati documenti tecnici riguardanti Google File System3 e Google
MapReduce4, tecnologie da cui Hadoop ha attinto.

Hadoop è un insieme di progetti che fanno parte della stessa infrastruttura di calcolo distribuito,
ospitati dalla Apache Software Fundation.

CURIOSITA’: il nome Hadoop proviene da un elefante di peluche del figlio di Cutting.

Prima dell’affermazione di Hadoop, le elaborazioni su grandi quantitativi di dati erano realizzate


esclusivamente da sistemi di High Performance Computing (HPC) e Grid Computing6, tramite
l’utilizzo di API quali, per esempio, Message Passing Interface (MPI), un protocollo di
comunicazione indipendente dal linguaggio, utilizzato per programmare i computer paralleli.
Questi comunque avevano una serie di limiti tra cui anche la necessità di usare librerie di basso
livello.
Hadoop con HDFS e MapReduce offre invece librerie di alto livello, più semplici da utilizzare.

Inoltre la ripartizione dei dati direttamente sui nodi di calcolo permette di minimizzare i tempi di
accesso, poiché i dati sono immediatamente disponibili alle procedure, senza onerosi
trasferimenti in rete

Hadoop è un sistema altamente affidabile: esso gestisce gli eventuali problemi del sistema a livello
applicativo, invece di sfruttare sistemi hardware di alta disponibilità.
Hadoop, infatti, è pensato per sfruttare cluster di commodity hardware, che può essere
frequentemente soggetto a problemi e che non prevede meccanismi di fail-over.
Un’altra importante caratteristica di Hadoop è la scalabilità, che è realizzabile semplicemente
aggiungendo nodi al cluster.
Ciò concorre a limitare i costi rispetto ad una soluzione database tradizionale, dove, spesso, la
scalabilità si realizza sostituendo l’hardware esistente con macchine più potenti ed estremamente
costose.

Hadoop nasce per la gestione di calcoli ed elaborazioni su grandi moli di dati, caricati nel sistema
ed utilizzati, in lettura, da una o più procedure.
Tale utilizzo è nettamente all’opposto rispetto ad un database relazionale OLTP (Online
Transaction Processing), nel quale le singole transazioni interessano soltanto pochi record.

L’efficienza di Hadoop in tali scenari non è ancora paragonabile a quello degli RDBMS, anche se la
piattaforma, si sta avvicinando a performance che renderanno presto possibile l’utilizzo interattivo
da parte degli utenti.

L’ECOSISTEMA

Hadoop presenta alcune componenti che costituiscono il nucleo centrale della piattaforma di
calcolo distribuito:
• Hadoop common: uno strato di software comune che fornisce funzioni di supporto agli altri
moduli.
• HDFS: il file system distribuito che fornisce un’efficace modalità di accesso ai dati. HDFS
garantisce che i dati siano ridondanti nel cluster rendendo le operazioni sui dati stessi
immuni dall’eventuale guasto di un nodo. HDFS accetta dati in qualsiasi formato, strutturato
o non strutturato.
• YARN: un framework che consente di creare applicazioni o infrastrutture per il calcolo
distribuito. Esso si occupa della gestione delle risorse (memoria/CPU/storage) del cluster
(contenuto nelle versioni 0.23.X e nella 2.X.X).
• MapReduce: sistema di parallel processing di grandi quantità di dati (basato su YARN nelle
versioni 0.23.X e nella 2.X.X). MapReduce lavora secondo il principio divide et impera. Un
problema complesso, che utilizza una gran mole di dati, è suddiviso, assieme ai dati stessi, in
piccole parti processate in modo autonomo e, una volta che ciascuna parte del problema è
stata calcolata, i vari risultati parziali sono “ridotti” ad un unico risultato finale.

Il sistema poggia su HDFS e YARN. Su quest’ultimo sono innestati motori di calcolo o database in
grado di agire sui dati. La parte intermedia dell’architettura è costituita da servizi dati (data
ingestion, database e sistemi di calcolo di alto livello, come Hive e Impala) e da una serie di
applicazioni che forniscono servizi di gestione del cluster, sicurezza, e data governance. Nella
parte superiore della figura troviamo gli applicativi di analisi, alcuni dei quali, come Mahout e
Giraph, sono parte della piattaforma, mentre altri (R, Spark, ecc.) possono integrarsi in vari modi
in Hadoop: tramite semplici connettori, che permettono loro di interagire dall’esterno, oppure con
un’integrazione più profonda, che consente agli applicativi di essere eseguiti sul cluster.

HDFS

Architettura e funzionamento
HDFS è, come abbiamo visto, un file system distribuito che può utilizzare commodity hardware.
È stato concepito per soddisfare alcuni obiettivi di affidabilità e di scalabilità ed è in grado di
gestire un numero elevato di file, anche di dimensioni ragguardevoli (dell’ordine dei gigabyte o
dei terabyte), attraverso la realizzazione di cluster che possono contenere migliaia di nodi.

L’utilizzo di hardware a buon mercato e l’opportunità di configurare cluster con moltissimi


elementi, comportano una certa probabilità di avere guasti frequenti che possono rendere
indisponibili uno o più nodi. Per questo la capacità di identificare problemi e di effettuare
operazioni di recovery automatiche è una delle caratteristiche principali del file system di
Hadoop.

HDFS presenta i file organizzati in una struttura gerarchica di cartelle (proprio come altri file
system).
Dal punto di vista dell’architettura un cluster consiste di alcune tipologie di nodi:
• NameNode: si tratta di un’applicazione che gira sul server principale. Essa gestisce il file
system (in particolare il namespace, ovvero l’elenco dei nomi dei file e dei blocchi, cioè le
parti da 64 o 128 MB in cui i file sono suddivisi) e controlla l’accesso ai file, eseguendo le
operazioni di apertura, chiusura e di cambiamento dei nomi di file.
o Inoltre determina sia come i blocchi dati sono distribuiti sui DataNode, sia la strategia
di replica, che garantisce l’affidabilità del sistema.
o Sempre per mantenere un’alta affidabilità, il NameNode controlla che i singoli nodi
siano in esecuzione senza problemi e, in caso contrario, decide eventuali riallocazioni
dei blocchi. Il NameNode salva il namespace su due file, il primo si chiama fsimage e
costituisce l’ultima immagine del namespace, mentre il secondo è un log dei
cambiamenti (o journal) avvenuti al namespace a partire dall’ultima volta in cui il file
fsimage è stato aggiornato (tale operazione di aggiornamento si chiama checkpoint).
o Quando il NameNode parte, unisce il file fsimage con il log dei cambiamenti, in modo
da produrre uno snapshot dell’ultima situazione.

• DataNode: sono applicazioni che girano sugli altri nodi del cluster, generalmente una per
nodo, e gestiscono fisicamente lo storage di ciascun nodo. In pratica eseguono le operazioni
di lettura e scrittura richieste dai client e gestiscono fisicamente la creazione, cancellazione o
replica dei blocchi dati.

• Secondary NameNode: questo tipo di nodo è spesso confuso come nodo di failover per il
NameNode. Non è così. Si tratta invece di un servizio che aiuta il NameNode ad essere più
efficiente. Il nodo si occupa di scaricare periodicamente il file fsimage e il log dei
cambiamenti dal NameNode, di unirli in un unico snapshot, che è poi restituito al NameNode.
Il SecondaryNameNode è chiamato CheckPointNode dalla versione 0.23.X e 2.X.X.
• BackupNode: dalla versione 0.23.X, il BackupNode consente di avere un nodo simile al
CheckPointNode, sempre sincronizzato con in NameNode. Dalla versione 2.X.X, il failover
dovrebbe diventare automatico.

ARCHIVI

HDFS è molto efficiente nel trattare file di grandi dimensioni, mentre è piuttosto inefficiente nella
gestione di piccoli file, ovvero quelli con una dimensione ben al di sotto di un blocco.

Gli archivi Hadoop risolvono il problema poiché compattano molti piccoli file in file più grandi che
possono essere acceduti dal sistema in parallelo e senza la necessità di espanderli.

PREDICTIVE E PRESCRIPTIVE ANALYTICS

METODOLOGIA

La generazione di valore a partire dai big data, avviene tramite la predictive analytics, la
prescriptive analytics e il machine learning. Esaminiamo ora le tecniche e gli algoritmi per la
creazione di modelli predittivi.

CRISP-DM è una proposta metodologica CRISP-DM – “Cross Industry Standard Process for Data
Mining” – è un metodo di comprovata efficacia per l’implementazione di un processo di data
mining.

I lavori di definizione dello standard prendono avvio nel 1996 come iniziativa finanziata
dall’Unione Europea e portata avanti da un consorzio di quattro società: SPSS, NCR Corporation,
Daimler-Benz e OHRA.
Nel 2015 IBM ha rilasciato una nuova metodologia chiamata Analytics Solutions Unified Method
for Data Mining/Predictive Analytics (ASUM-DM) che ridefinisce ed estende CRISP-DM nel
dettaglio e identifica delle macro fasi.

Descriviamo ora il modello CRISP-DM che, rimanendo più ad alto livello, ci consente avere una
visione più semplice delle attività da svolgere per implementare un processo di analisi predittiva.

La metodologia fornisce un framework che prevede sei fasi, che possono essere ripetute
ciclicamente con l’obiettivo di revisionare e rifinire il modello previsionale:
• Business Understanding. Secondo il modello, non si può prescindere da una conoscenza del
business per implementare un sistema predittivo. Inoltre, è necessaria una chiara definizione
degli obiettivi da raggiungere attraverso l’analisi predittiva.
• Data Understanding. Raccogliere correttamente, capire e valutare la bontà dei dati è il
secondo fondamentale pilastro per la riuscita di un progetto.
• Data Preparation. I dati presenti nei database aziendali nella loro forma originaria, sono
praticamente inutilizzabili dagli algoritmi predittivi. Occorre apportare trasformazioni di vario
tipo per ottenere un formato pienamente fruibile.
• Modeling. Questa fase consiste nella creazione del modello predittivo tramite la scelta
dell’algoritmo e la definizione dei parametri.
• Evaluation. Prima di utilizzare un modello nella realtà aziendale, occorre effettuare
un’attività di testing e valutazione della sua capacità predittiva.
• Deployment. Il modello testato e verificato può essere finalmente utilizzato dagli utenti di
business.

Rispetto alla metodologia originale, che prevede le sei fasi appena elencate, aggiungiamo un
settimo punto, che chiamiamo “monitoring & feedback” e che rappresenta l’analisi e la
valutazione dei risultati ottenuti dal modello, una volta che è stato utilizzato.

1 Business Understanding

La comprensione delle problematiche del business e degli obiettivi aziendali è necessaria al fine
di poter creare un modello predittivo adeguato.
Il progetto dal punto di vista funzionale parte con un’attività di assessment della situazione
corrente e dalla definizione chiara degli obiettivi da raggiungere attraverso il processo di analisi
predittiva.
Dagli obiettivi possono dipendere molte scelte: dalle variabili di input alle modalità di
preparazione dei dati al tipo di algoritmo da utilizzare. Gli obiettivi costituiscono i benefici del
progetto, perciò dovrebbero essere valutati anche dal punto di vista economico.
Già in questa fase preliminare è opportuno predisporre un piano di sviluppo del progetto che
porterà alla realizzazione del sistema di analisi predittiva. In particolare, nella prima fase, la
documentazione potrebbe riguardare:
• Elenco delle risorse disponibili (personale, dati, tecnologie hardware e software). La
terminologia di business e la terminologia legata alla predictive analytics. Quest’ultima ha lo
scopo di chiarire il significato di termini altrimenti oscuri a molti attori aziendali.
• Obiettivi e vincoli. Eventuali fattori di rischio.
• Costi e benefici. Piano di progetto, che include la durata delle varie fasi e le risorse coinvolte.

2 Data Understanding

In base a quanto determinato per la fase precedente, occorre identificare quali sono i dati
rilevanti per la creazione del modello. La metodologia prevede, per questa fase, la creazione di un
report che evidenzi le caratteristiche delle fonti dei dati e i criteri di scelta.
L’attività di esplorazione e descrizione dei dati deve essere completata con la verifica della qualità.
Devono essere indentificati i dati mancanti e le situazioni anomale (i cosiddetti outliers, ecc.).
La fase di comprensione dei dati è resa notevolmente più semplice se la fonte è rappresentata dal
data warehouse aziendale. Il data warehouse è formato dall’insieme dei dati provenienti dalle
fonti operazionali, opportunamente trasformati, attraverso le procedure di ETL e controllati
attraverso il sistema di data quality. Esso conserva inoltre la storia dei dati, fornendo l’evoluzione
nel tempo di tutte le grandezze misurate. Risulta ovvio che, in presenza di un data warehouse,
l’attività di comprensione e verifica dei dati sia già stata compiuta.
Nel modo dei big data, potrebbe essere sostituito dal data lake, a patto che in esso siano presenti
strutture assimilabili, per costruzione e livello qualitativo, a quelle del data warehouse
tradizionale.
La documentazione da produrre in questa fase è la seguente:
• Elenco delle fonti dati.
• Descrizione dei dati.
• Elenco delle problematiche relative alla qualità dei dati.
• Descrizione delle attività di esplorazione dei dati (statistiche di base, istogrammi, presenza di
valori nulli, ...)

3 Data Preparation

I dati identificati come pertinenti nel punto precedente sono ulteriormente soggetti a selezione,
poiché occorre individuare le singole tabelle e i singoli campi da utilizzare nel modello. La
preparazione del dataset da utilizzare per la costruzione del modello di data mining prevede
un’attività di pulizia dei dati, qualora la verifica della qualità avesse evidenziato problemi.
È quasi sempre necessaria l’attività di feature engineering, cioè la creazione delle variabili di input
a partire dai dati originali, che difficilmente potranno essere utilizzati così come lo sono nei
modelli predittivi.
Esiste poi un problema legato ai valori mancanti degli attributi che, in parte, può essere sanato nel
data warehouse attraverso l’integrazione di diverse fonti, anche esterne all’azienda (si pensi
all’acquisto di dati demografici o relativi al territorio da banche dati specializzate). Accade però
che, per alcuni attributi, non sia sempre possibile ottenere un valore. Ai fini predittivi tale
situazione è da gestire al momento della preparazione dei dati. Fa parte della preparazione dei
dati la suddivisione del dataset a disposizione in più parti.
Una di esse, il training set, è utilizzato per la fase di training dell’algoritmo, mentre la valutazione
delle performance predittive dell’algoritmo avviene sul test set. Alla preparazione dei dati è da
imputare la maggior parte del tempo speso per un progetto di analisi predittiva. La
documentazione da produrre è sintetizzata nei seguenti punti:
• Motivazioni per l’inclusione o l’esclusione di dati.
• Descrizione delle operazioni di data cleansing.
• Descrizione delle attività di trasformazione (aggregazioni, normalizzazioni, ...).
• Descrizione delle attività di costruzione di attributi.
• Descrizione delle variazioni intervenute nelle diverse iterazioni.

4 Modeling

Vi sono moltissimi algoritmi e più algoritmi possono adattarsi ad un determinato problema di


analisi predittiva.
In questa fase occorre identificare quali sono gli algoritmi corretti, e decidere se costruire un
modello per ciascuno di essi. Occorre tener presente che alcuni algoritmi richiedono i dati in
specifici formati, perciò è spesso necessario ritornare alla fase di preparazione dei dati, prima di
proseguire con la creazione del modello. Quest’ultima consiste nell’impostazione dei parametri
dell’algoritmo e nella loro calibrazione sulla base dei dati.
Per la fase di modellazione suggeriamo di privilegiare la scelta di algoritmi in grado di generare
regole oltre alle prediction.
L’individuazione di regole rende infatti possibile intraprendere azioni che possono portare benefici
molto grandi rispetto alla pura e semplice applicazione di un modello previsionale.
Si noti come sia possibile ricavare regole anche da algoritmi che non ne producono. Per esempio, il
clustering effettuato con un algoritmo k-Means, non produce alcuna regola, ma se al risultato,
ovvero ai cluster individuati, applichiamo un algoritmo di classificazione come gli alberi decisionali,
o l’LLM, possiamo ottenere delle regole di appartenenza.

Infine, suggeriamo l’applicazione di più algoritmi, alcuni più semplici e altri più evoluti e complessi
per avere una base più ampia su cui operare la scelta.
La fase di modellazione comporta, oltre alla scelta dell’algoritmo, anche il training dell’algoritmo
stesso. Per training intendiamo l’operazione tramite la quale l’algoritmo impara dai dati.
Nel caso di algoritmi supervisionati (di classificazione o regressione) l’algoritmo tenta di ricavare
dal dataset di training le relazioni tra le variabili di input e la variabile di output.
Negli algoritmi non supervisionati la fase di training riguarda l’estrazione di regole di associazione
o la creazione di raggruppamenti che includano elementi del dataset simili tra loro.
In ogni caso, la fase di training deve essere seguita da un processo di valutazione che, in
particolare per gli algoritmi supervisionati, dovrebbe essere effettuata su un dataset diverso da
quello su cui è stato effettuato il training.
Le fasi di modellazione e di valutazione sono tipicamente eseguite più volte al fine di trovare
l’algoritmo ottimale e il set di parametri che garantisce la miglior performance predittiva.

La documentazione da produrre riguarda la descrizione dell’algoritmo utilizzato nella costruzione


del modello o dei modelli alternativi e le eventuali variazioni effettuate ai parametri nelle
diverse iterazioni.

5 Evaluation

Come elemento aggiuntivo della metodologia, consigliamo la valutazione dei modelli sia con gli
strumenti tradizionali (matrice di confusione, curva ROC, ecc.) sia attraverso parametri economici.
In questa fase la documentazione riguarda:
• Metriche di valutazione per ciascun modello.
• Grafici ROC /Lift/ Gain chart oppure metriche per le regressioni o il clustering.
• Valutazione in base ai dati economici del business.

6 Deployment

La fase di deployment segna l’inizio dell’utilizzo reale del modello da parte degli utenti aziendali.
Essa include anche l’integrazione del modello con i sistemi esistenti: la raccolta dati, la loro
preparazione e l’elaborazione attraverso il modello devono essere automatizzati.

Puntualizziamo che l’integrazione con i sistemi esistenti è fondamentale per il pieno utilizzo del
modello. Non è pensabile, infatti, che in presenza di nuovi dati, gli utenti (o il data scientist)
debbano ripetere manualmente l’intero percorso di preparazione del dataset.
La documentazione di questa fase riguarda:
Il piano di messa in produzione del modello (risorse, azioni da compiere).

7 Monitoring e Feedback

Un altro aspetto da considerare è il monitoraggio delle performance predittive, passaggio


necessario per ottenere un feedback ed eventualmente per operare una revisione del processo di
predictive analytics.
Il feedback consiste nell’analisi dei risultati ottenuti tramite l’applicazione reale del modello. Tali
risultati possono condurre a due possibili azioni alternative: la nuova applicazione del modello nel
periodo futuro oppure la revisione del modello, poiché i risultati attesi non sono coerenti con le
aspettative.
La documentazione di questa fase è relativa al confronto tra i risultati previsti dal modello e quelli
ottenuti nella realtà e registrati attraverso la fase di monitoraggio.

Identifichiamo due tipi di iterazioni: un primo tipo è dovuto alle attività di testing del modello e
riguarda le fasi di preparazione dei dati, scelta dell’algoritmo e valutazione. La seconda iterazione
è dovuta a revisioni del modello a seguito di un feedback negativo.

Potrebbero piacerti anche