Python Data Science con - Edizioni LSWR
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
- Giuseppe Maggi -
Data Science con
Python
La guida completa, dai Big Data al Machine Learning
Analisi e gestione dei dati con Python >>
Data Science: NumPy, Pandas e visualizzazione dei dati >>
Big Data con Hadoop, PySpark e SparkSQL >>
Machine Learning con scikit-learn >>Data Science con Python | La guida completa, dai Big Data al Machine Learning Autore: Giuseppe Maggi Collana: Publisher: Marco Aleotti Progetto grafico: Roberta Venturieri Immagine di copertina: © Ryzhi | Shutterstock © 2020 Edizioni Lswr* – Tutti i diritti riservati ISBN: 978-88-6895-806-0 eISBN: 978-88-6895-807-7 I diritti di traduzione, di memorizzazione elettronica, di riproduzione e adattamento totale o parziale con qualsiasi mezzo (compresi i microfilm e le copie fotostatiche), sono riservati per tutti i Paesi. Le fotocopie per uso personale del lettore possono essere effettuate nei limiti del 15% di ciascun volume dietro pagamento alla SIAE del compenso previsto dall’art. 68, commi 4 e 5, della legge 22 aprile 1941 n. 633. Le fotocopie effettuate per finalità di carattere professionale, economico o commerciale o comunque per uso diverso da quello per- sonale possono essere effettuate a seguito di specifica autorizzazione rilasciata da CLEARedi, Centro Licenze e Autorizzazioni per le Riproduzioni Editoriali, Corso di Porta Romana 108, 20122 Milano, e-mail autorizzazioni@clearedi.org e sito web www.clearedi.org. La presente pubblicazione contiene le opinioni dell’autore e ha lo scopo di fornire informazioni precise e accurate. L’elaborazione dei testi, anche se curata con scrupolosa attenzione, non può comportare specifiche responsabilità in capo all’autore e/o all’editore per eventuali errori o inesattezze. L’Editore ha compiuto ogni sforzo per ottenere e citare le fonti esatte delle illustrazioni. Qualora in qualche caso non fosse riuscito a reperire gli aventi diritto è a disposizione per rimediare a eventuali involontarie omissioni o errori nei riferimenti citati. Tutti i marchi registrati citati appartengono ai legittimi proprietari. Via G. Spadolini, 7 20141 Milano (MI) Tel. 02 881841 www.edizionilswr.it Printed in Italy Finito di stampare nel mese di maggio 2020 presso “Rotomail Italia” S.p.A., Vignate (MI) (*) Edizioni Lswr è un marchio di La Tribuna Srl. La Tribuna Srl fa parte di .
Indice
1. Data Science, Big Data e Machine Learning:
un po’ di orientamento.......................................................................... 7
La nuova epoca............................................................................................................................. 7
Perché esistono così tanti dati?................................................................................................ 8
Fattori di accelerazione del nuovo millennio......................................................................... 8
Il dato da fattore tecnico a fattore decisionale................................................................... 10
La monetizzazione del dato......................................................................................................12
Data Science.................................................................................................................................13
Big Data........................................................................................................................................ 14
Intelligenza Artificiale e Machine Learning......................................................................... 16
Il percorso del libro.....................................................................................................................17
Il codice del libro......................................................................................................................... 18
2. Analizzare dati in Python: tutto ciò che serve..................19
Python: panoramica sul linguaggio....................................................................................... 20
Elaborare dati da file..................................................................................................................56
Statistica: concetti e utilizzo in Python.................................................................................67
Database e Python.....................................................................................................................70
Esempio riepilogativo: cittadini generosi.............................................................................79
3. Ambiente di lavoro per la Data Science....................................87
La console più completa: IPython......................................................................................... 88
Jupyter Notebook.......................................................................................................................97
Anaconda, Conda e Miniconda............................................................................................104
4. NumPy, la geniale libreria matematica...................................109
Gli array: definizione e forma.................................................................................................110
Tipi di dato..................................................................................................................................112
Operazioni tra array..................................................................................................................114
Generare array: tanti modi diversi........................................................................................116
Leggere e modificare dati negli array..................................................................................120
Filtrare dati................................................................................................................................. 124
3Data Science con Python
Esempio: creiamo un gioco di memoria con NumPy...................................................... 127
Statistica e matematica sugli array...................................................................................... 131
Lavorare con i file..................................................................................................................... 133
Esempio: variazioni di valori.................................................................................................. 136
5. Pandas, l’ambiente più completo..................................................141
Pandas: il progetto...................................................................................................................142
Iniziare con Pandas: i DataFrame.........................................................................................142
Indici e posizioni nei DataFrame: un’importante differenza..........................................146
Series: righe e colonne di DataFrame..................................................................................150
Filtrare e ordinare dati............................................................................................................. 153
Excel e database: integrazione con i DataFrame.............................................................. 155
Altri modi per creare un DataFrame.................................................................................... 157
Manipolare ed esplorare DataFrame................................................................................... 158
Esempio: lotteria con Pandas................................................................................................160
Calcoli e statistiche su DataFrame......................................................................................166
Raggruppamenti.......................................................................................................................170
JOIN............................................................................................................................................. 174
Salvare DataFrame su file....................................................................................................... 176
Esempio: analisi di transazioni bancarie............................................................................ 178
6. Visualizzare dati: l’importanza dei grafici......................... 185
Matplotlib, un’introduzione...................................................................................................186
I nostri primi grafici..................................................................................................................186
Altri tipi di grafici......................................................................................................................189
Salvare grafici e modificarne le misure: accesso alla Figure.......................................... 195
Generare grafici da NumPy....................................................................................................196
Pandas e i grafici.......................................................................................................................199
Seaborn, il motore grafico moderno................................................................................... 202
7. Tecnologie per I Big Data.................................................................. 205
Apache Hadoop ......................................................................................................................206
Hadoop: funzionamento interno...........................................................................................211
HDFS: comandi per operare sul file system...................................................................... 213
MapReduce: elaborare grandi quantità di dati................................................................. 216
Apache Spark............................................................................................................................ 221
8. Big Data con PySpark...........................................................................225
RDD: Resilient Distributed Dataset.................................................................................... 226
Trasformazioni e azioni.......................................................................................................... 226
RDD: prime operazioni........................................................................................................... 228
Iterazione sugli elementi....................................................................................................... 230
Da RDD a struttura dati Python............................................................................................ 231
MapReduce in Spark............................................................................................................... 232
Filtri e raggruppamenti.......................................................................................................... 235
Partizionare dati....................................................................................................................... 237
4Indice
Salvataggio su file di testo....................................................................................................240
Esecuzione di script PySpark................................................................................................240
PySpark su notebook Jupyter................................................................................................ 241
Esempio: analisi di dati da CSV........................................................................................... 242
9. SparkSQL per Big Data strutturati............................................. 247
Che cosa sono i DataFrame.................................................................................................. 248
Conoscere un DataFrame......................................................................................................250
Metodi per elaborare dati..................................................................................................... 252
Presentare dati......................................................................................................................... 254
Usare il linguaggio SQL.......................................................................................................... 256
Formati Parquet e JSON........................................................................................................ 258
Esempio: analisi dati bancari................................................................................................ 259
10. Machine Learning:
dai concetti di base agli strumenti......................................... 265
Che cos'è il Machine Learning............................................................................................. 266
Tipologie di Machine Learning............................................................................................. 268
Come farlo in Python.............................................................................................................. 269
Dataset in scikit-learn............................................................................................................ 270
11. Machine Learning al lavoro:
primi passi e regressione lineare..................................................275
Il nostro approccio al Machine Learning........................................................................... 277
Concetti chiave: rapido ripasso........................................................................................... 277
Primo esempio: una semplice regressione lineare.......................................................... 279
Valutare i risultati della regressione lineare.....................................................................284
Suddivisione di dati tra training e test............................................................................... 287
Regressione lineare multipla................................................................................................ 289
12. Machine Learning al lavoro:
classificazione e preprocessing.................................................. 291
Classificatori: alberi decisionali........................................................................................... 292
Valutare i classificatori...........................................................................................................300
Classificatore RandomForest...............................................................................................304
K-Nearest Neighbors.............................................................................................................. 305
Regressione logistica..............................................................................................................309
Naive Bayesian........................................................................................................................... 311
Matrici sparse...........................................................................................................................314
Preprocessare i dati................................................................................................................. 315
Esempio: regressione lineare e encoding di features..................................................... 334
Persistenza dei modelli...........................................................................................................337
Elaborazione di testi............................................................................................................... 338
Esempio: classificare recensioni.......................................................................................... 345
INDICE ANALITICO............................................................................................. 349
51
Data Science, Big Data e Machine
Learning: un po’ di orientamento
Studiare il passato, monitorare il presente, predire le tenden-
ze future. Sono questi gli scopi della Data
Science, ma per
diventare professionisti di questa scienza multidiscipli-
nare servono risposte ad alcune domande: perché esi-
stono così tanti dati? Chi li genera? Qual è il loro valore oggi?
La nuova epoca
Da un po’ di anni tutto sembra più intelligente. Apri un sito di e-commerce e ti propone
da solo proprio ciò che stavi cercando. La casa per poche decine di euro inizia a parlarti
con gli assistenti vocali e ogni oggetto dotato di un cuore elettronico sembra conoscerti
sempre di più. È la nuova cosiddetta società dei dati che ha ingoiato il nostro mondo e
l’ha reso, per molti versi, più facile da vivere.
In tutto questo, potranno risiedere anche minacce come alcuni paventano ma sicura-
mente sono tantissime le opportunità.
Siamo solo all’inizio di quest’epoca e se ne può diventare parte integrante e attiva acqui-
sendo gli strumenti giusti. Servono percorsi completi e ben strutturati che mettano in
luce origini e problematiche di questo contesto offrendo al contempo gli strumenti
concettuali e pratici più adatti per affrontarlo: un percorso simile è ciò che offre il libro
che qui inizia.
7Data Science con Python
Perché esistono così tanti dati?
Si parla moltissimo di dati. I dati sono sempre esistiti ma oggigiorno sembrano essere
diventati un’emergenza gestionale e un’opportunità senza pari.
Ma chi genera tutti questi dati e perché la tematica è così scottante oggi?
Buona parte della responsabilità è nostra. Siamo noi essere umani che generiamo tan-
tissimi di questi dati, affiancati da applicazioni e sensori elettronici.
A proposito delle loro finalità, potremmo individuare alcune categorie principali di dati:
• dati per il dialogo tra applicazioni: molte applicazioni generano dati per dialo-
gare con altre applicazioni. Siamo nel campo delle cosiddette attività machine
to machine, basate su sessioni di lavoro in cui l’essere umano svolge il ruolo di
controllore mentre le macchine producono e consumano dati reciprocamente;
• dati di origine umana: i dati generati da persone possono essere destinati sia
ad applicazioni sia ad altri esseri umani. Nel primo caso, possiamo pensare a
tutte quelle applicazioni in cui il lavoro di un individuo è stato, in buona parte,
sostituito da un servizio on-line come l’e-commerce, l’e-banking o meccanismi
di prenotazione. I dati scambiati tra persone rappresentano il grande flusso di
comunicazione che svolgiamo ogni giorno con i nostri simili. Una buona parte di
ciò deriva dai social network ma pensiamo a tutti i sistemi di chat e alle comu-
nicazioni via e-mail;
• dati di tipo aziendale: consideriamo l’azienda in senso lato, potrebbe trattarsi
di una corporate privata, di un’istituzione o di un’azienda pubblica. Questi dati
vertono sul complesso delle attività e ne descrivono gli aspetti più disparati:
da flussi economici e fiscalità alle transazioni, dalla cura del cliente agli aspetti
personali dei dipendenti. Anche le amministrazioni pubbliche sono una fonte
potenzialmente ricchissima di dati tanto che negli ultimi anni si è affermato il
fenomeno degli open data, un sistema per cui i dati del settore pubblico – prodot-
ti, ricordiamo, in buona parte con gli sforzi economici dei contribuenti – vengono
resi disponibili liberamente per essere sfruttati in applicazioni.
Fattori di accelerazione del nuovo millennio
Se la mole di dati disponibile oggi è così imponente e la sua crescita non accenna a
rallentare è in buona parte conseguenza di alcuni fenomeni del nuovo millennio che
caratterizzano fortemente la tecnologia.
Vediamo quali sono i principali:
• il Cloud: è uno dei termini più usati ormai, non solo in discorsi tecnici ma anche
nella vita comune dei non addetti ai lavori. Con esso si intende un sistema di
risorse di elaborazione e memorizzazione flessibile e reso disponibile come
8Data Science, Big Data e Machine Learning: un po’ di orientamento Capitolo 1
servizio dai principali operatori in Internet. La prima esperienza che si ha a titolo
personale con il Cloud è probabilmente con i servizi di immagazzinamento di file.
Lo fa Google con Drive, Apple con iCloud, Microsoft con OneDrive e via dicendo.
Proprio questa possibilità di espansione della memoria fisica resa condivisibi-
le, sempre disponibile e sicura ha permesso la velocissima crescita dei dati a
disposizione di privati e aziende rendendo obsolete pratiche come l’acquisto di
nuovi server e la gestione in prima persona di backup e di altre problematiche
di sicurezza. Altra potente risorsa fornita in Cloud è la capacità di elaborazione.
Dove non arriva più la singola macchina o rete di macchine arriva l’intelligen-
za remota del Cloud. Sottoscrivendo un servizio su misura si possono inviare i
propri dati in elaborazione per poi ottenere i risultati. Tale realtà ha preso così
piede e ha sposato così saldamente le esigenze delle aziende che si parla sempre
più spesso di Hybrid Cloud ovvero la combinazione tra Cloud pubblico e risorse
private, ottenendo così i vantaggi di un tipo e dell’altro. Inoltre, il Cloud incontra
anche le principali esigenze economiche delle aziende non costringendo mai ad
abbonamenti fissi ma basandosi generalmente sul concetto di pay as you go che
include la possibilità di pagare solo le risorse effettivamente utilizzate;
• diffusione capillare della connessione a Internet: le reti sono i vettori fonda-
mentali per la trasmissione di dati soprattutto da quando immagazzinamento
ed elaborazione sono affidate al Cloud. Il loro miglioramento e potenziamento
con la diffusione della fibra e l’avanzamento degli standard è stato sicuramente
uno dei fattori che ha permesso un tale aumento della mole di dati esistenti.
La diffusione della Rete è diventata capillare ai massimi livelli mediante i contratti
offerti dagli operatori per dispositivi mobili. Inoltre, con l’integrazione della com-
ponentistica WiFi su board elettroniche ridotte ed economiche la connettività
si è estesa anche a molti oggetti comuni in cui esse possono essere innestate;
• dispositivi mobili: un altro aspetto che ha incrementato velocemente l’accu-
mulazione di dati in privato e in Cloud è la diffusione dei dispositivi mobili.
Ci riferiamo in primis, ma non solo, a telefoni cellulari – ormai comunemente
detti smartphone – e tablet. La loro disponibilità in ogni tasca e le loro elevate
capacità di elaborazione rispetto a un tempo hanno permesso l’immediato sal-
vataggio di informazioni. Se fino a pochi anni fa per inviare un contenuto in Rete
era necessario aspettare di tornare a casa o raggiungere il proprio ufficio, ora
testi, foto e video possono essere salvati e inviati istantaneamente e, a volte,
addirittura all’insaputa dell’utente mediante la sincronizzazione automatica con
archivi in Cloud;
• social network: i cosiddetti social sono una realtà ormai persistente nei nostri
giorni. Che ci si voglia informare, farsi conoscere o catturare l’attenzione, avere
9Data Science con Python
un profilo su uno o più social network è assolutamente comune. I più famo-
si sono Twitter, Facebook, Instagram ma ne stiamo solo nominando alcuni.
Ne esistono molti, a volte anche focalizzati su un’unica tematica, e sono diventati
uno dei principali accumulatori di informazioni personali, dati, abitudini compor-
tamentali degli utenti. Se l’analisi dati si è così rivoluzionata negli ultimi anni è in
buona parte merito loro. Sono la realtà informatica che ha probabilmente mag-
giormente beneficiato della diffusione del mobile e della connessione Internet
su ogni dispositivo e il loro utilizzo è costantemente alimentato dalle esperienze
che viviamo e dagli stimoli che riceviamo;
• sensori: si tratta di dispositivi elettronici piccolissimi che servono a trasformare
stimoli elettrici in segnale. Sono applicati a porte, oggetti, elementi infrastruttu-
rali, dispositivi mobili e oggetti indossabili con l’unico scopo di rilevare dati da
trasmettere ad altri componenti che li immagazzineranno o li trasmetteranno
in Rete. Esistono da tempo ma l’attuale diffusione pervasiva, anche in corri-
spondenza di tutti i loro usi che sono stati concepiti, ha trasformato i sensori
elettronici in una delle principali fonti di dati al mondo.
Il dato da fattore tecnico a fattore decisionale
Il dato nasce come un fattore tecnico. La quotazione di un titolo in Borsa, la rilevazione
di un sensore elettronico, l’indicazione di una temperatura sono tutti dati che vengono
rilevati e associati, in genere, con un’unità di misura. Fin qui abbiamo un dato “freddo”,
per lo più di natura tecnica, che quantizza il valore istantaneo della grandezza cui si rife-
risce. La sfida dell’analisi dati moderna è trasformare i dati in fattori decisionali, in gra-
do di guidare aziende, privati e istituzioni – più o meno direttamente – nel prendere deci-
sioni che in questo modo diverrebbero “più scientifiche” e meno indotte da emotività.
Pertanto, tutto ciò che si frappone nella transizione dal dato tecnico al dato decisionale
è l’analisi dei dati, intesa in tutta la molteplicità delle sue sfaccettature.
Si parla sempre più spesso di aziende data-driven ovvero aziende che si lasciano gui-
dare dai dati verso una cosciente accettazione delle decisioni da intraprendere. Tale
volontà e consapevolezza dell’importanza fondante del dato spinge le aziende a cercare
competenze individuate in genere nell’assunzione di personale specializzato o nell’in-
staurazione di rapporti di collaborazione con imprese rivolte proprio al trattamento
dei dati.
Un’azienda può non svolgere in proprio attività di analisi ma di sicuro svolge in prima
persona una delle fasi più importanti: l’acquisizione del dato.
I dati vengono acquisiti per lo più da chi avrà poi bisogno di utilizzarli e per questo è
importante che la raccolta dati segua delle linee guida necessarie, come le seguenti:
10Data Science, Big Data e Machine Learning: un po’ di orientamento Capitolo 1
• i dati non vanno sprecati. Fino ad alcuni anni fa, quando il Cloud era ancora una
prospettiva e tutto veniva custodito su propri server e database, si badava a
mantenere archivi funzionali evitando di sprecare spazio accumulando dati non
sicuramente utili. Al giorno d’oggi tutto è cambiato. Il Cloud, coerentemente
con le possibilità economiche di ciascuno, permette di accumulare grandissime
quantità di dati a costi decisamente ridotti. Pertanto, si tende a immagazzinare
qualsiasi informazione, dalla più significativa alle più accessorie. Qualsiasi ser-
vizio può incrementare la propria capacità di accumulazione di dati a patto che
ci sia l’impegno a non scartare niente. Se parliamo di un servizio di e-commerce,
sicuramente conserveremo i dati di “business” come acquisti, dati personali dei
clienti, pagamenti, ma qualsiasi impulso che arrivi dall’esterno può essere con-
siderato una fonte di dati: accessi degli utenti, articoli visualizzati anche se non
acquistati, tempo di permanenza su singoli annunci, link cliccati e così via;
• i dati devono essere circostanziati il più possibile. Un dato nasce in un determi-
nato istante caratterizzato da una serie di circostanze ben precise. Se, per esem-
pio, una persona scatta una foto con il suo smartphone, il dato più importante
da salvare è la foto stessa. Questo però può essere arricchito da tutto ciò che il
dispositivo è in grado di intercettare in quel momento: dai più banali data e ora,
si può passare al segnale GPS che individua la posizione di scatto della foto ma
anche eventuali note che si permette di lasciare all’utente nonché rilevazioni di
sensori e altro ancora;
• il dato va trattato. Una fase fondamentale di ogni analisi dati è la preparazione
del dato che spesso viene chiamato pulizia. Proprio perché la raccolta dati è così
veloce e completa, il materiale che deve essere sottoposto ad analisi va estratto
e organizzato il meglio possibile per facilitare il suo trattamento;
• la raccolta dati va concordata tra le varie aree dell’azienda. Nonostante lavorino
per la stessa compagnia, molti dipendenti fanno dei lavori totalmente diversi.
Chi si occupa di organizzare fisicamente il necessario per la raccolta dati sono
tipicamente informatici, addetti allo sviluppo di app mobile, applicazioni web,
sistemisti e amministratori di database. Gente brava nel proprio lavoro ma non
sempre a conoscenza alle attività di business dell’azienda. Per questo è neces-
sario che “cosa” raccogliere sia frutto di un confronto aperto tra le varie aree
dell’azienda. Chi si occupa di strategie aziendali deve saper spiegare al personale
tecnico di che tipo di informazioni ha bisogno e questi ultimi dovranno escogitare
i modi migliori affinché la raccolta fisica dei dati non trascuri tali aspetti;
• dati e informazioni devono essere ben comunicati. Anche questo, come il punto
precedente, è qualcosa che include una stretta collaborazione tra tutti i rami
dell’azienda. Un informatico può trovarsi bene con tabelle numeriche, un esperto
11Data Science con Python
di statistica magari preferirebbe grafici molto sintetici mentre un addetto dell’a-
rea business avrebbe bisogno di grafici più dinamici o infografiche. Ognuno, a
seconda della propria mansione e preparazione, ha necessità diverse in base alla
visualizzazione dei dati. Questo aspetto è sicuramente fondamentale perché
un’adeguata visualizzazione permette una maggiore comunicatività dei risultati
dell’analisi ed è per questo che le visualizzazioni dei dati dovranno essere il più
mirate possibile al destinatario.
Una corretta raccolta dei dati agevola chi si si occuperà della loro analisi. Per questo
è importante che proprio questa fase venga concordata tra le parti, siano esse figure
interne o esterne all’azienda. Una raccolta di dati miope o non ben coordinata potrebbe
portare allo spreco di importanti filoni di informazione.
La monetizzazione del dato
Il dato nella storia è spesso stato trattato come una sorta di prodotto secondario di
qualsiasi processo, per così dire, un suo effetto involontario. Di dati ne sono stati regi-
strati tantissimi da quando esiste la scrittura ma per lo più per contabilità, gestione dei
magazzini, quantizzazione di ricchezze e scopi simili.
Chiunque nei secoli si sia impegnato a raccogliere dati provenienti da una qualche atti-
vità, l’ha fatto per lo più per propria comodità senza immaginare che oggi a una raccolta
di dati potrebbe essere attribuito un valore economico da chi ha fatto dell’analisi dei
dati un business.
Immaginiamo un’azienda agricola che raccolga uno storico riguardante la propria pro-
duzione. Se si collezionasse lo stesso tipo di informazioni da tante aziende dello stesso
settore potremmo costituire un archivio dal grande valore, per esempio, per un’industria
chimica che fa ricerche sui fertilizzanti.
Oltre all’approccio data-driven, si è affermato un modello di commercializzazione dei
dati dove qualcuno è interessato a vendere dati e qualcun altro a comprarli. Con la cre-
azione di un mercato simile possono nascere aziende dedicate solo alla distribuzione
e rivendita di dati forniti da altri, eventualmente dopo opportune operazioni di pulizia
e rielaborazione.
Tale discorso si incrocia con quello molto importante della privacy. Esistono leggi seve-
re che richiamano a un uso consapevole e rispettoso delle informazioni. Non è un
argomento trattato in questo libro in quanto siamo interessati a soffermarci su aspetti
tecnici, ma sottolineiamo che tutte le entità coinvolte in scambi di dati dovrebbero
sempre garantire la sicurezza e il rispetto dei propri utenti.
12Data Science, Big Data e Machine Learning: un po’ di orientamento Capitolo 1
Data Science
Tutto ciò che può mettere ordine in un contesto così vivo ruota attorno a una scienza,
relativamente nuova in quanto esistente da una cinquantina d’anni, ma salita alla ribalta
dell’opinione pubblica da non molto: la Data Science, la scienza dei dati.
Questa espressione pare sia nata tanti anni fa come un sinonimo di Computer Science,
e in effetti l’elaborazione massiva dei dati è uno dei principali motivi per cui l’informatica
esiste.
Per Data Science intendiamo una disciplina, dai confini estesi e non determinabili net-
tamente, che si occupa di interpretare, elaborare e valorizzare i dati. Nasce dall’in-
contro di una moltitudine di conoscenze che spaziano dalla statistica alla matematica,
dall’informatica alle scienze.
La definizione è fin troppo sintetica considerando la quantità di materie a cui la Data
Science deve attingere. L’importanza di questa scienza ha reso il data scientist, colui che
se ne occupa, una delle figure più ricercate nel mondo del lavoro.
Un data scientist ha il compito di analizzare dati al fine di individuare modelli al loro
interno che possano essere funzionali agli scopi del suo committente (aziende, ammi-
nistrazioni, privati ecc.).
Un progetto di Data Science consta di una serie di fasi:
1. descrizione del problema: è generalmente una problematica molto pratica, per
esempio il risollevamento di un settore in crisi dell’azienda o la soluzione di
un’emorragia di clienti. In questa fase, vanno circoscritte bene le caratteristi-
che dei risultati che si vogliono ottenere nonché eventuali tempistiche entro cui
conseguirli;
2. raccolta dei dati: possono essere dataset già presenti in azienda, magari prove-
nienti da un sistema di raccolta come sondaggi on-line o risposte a call center.
In molti altri casi, vengono acquisiti per altre vie. L’intero patrimonio informati-
vo che viene così accumulato va poi organizzato, pulito e strutturato per poter
costituire la fonte di lavoro del data scientist;
3. esplorazione dei dati di partenza: piuttosto che iniziare immediatamente a ela-
borarli ci si dedica al loro studio. Vengono in questi casi filtrati, riassunti in tabelle
e ancora di più visualizzati in grafici. Tutto ciò permette di individuarne confini,
lacune ed evidenziarne le caratteristiche;
4. analisi dei dati: questa prende le mosse dalle considerazioni che sono state
tratte dall’esplorazione dei dati raccolti. È il momento di individuare modelli e,
a tale fine, in dipendenza del tipo di risultato che si vuole ottenere, si possono
applicare le più varie tecniche a disposizione. Proprio su questi aspetti pratici ci
si concentrerà molto nel corso del testo;
13Data Science con Python
5. applicazione dei modelli: qui si vede se il progetto ha dato i frutti sperati. Sarà
generalmente qualche settore dell’azienda a dover trarre beneficio dai modelli
e molto spesso il lavoro del data scientist si concluderà con la produzione di una
serie di linee guida, espresse nei termini del linguaggio di business dell’azienda,
che serviranno a risolvere la problematica proposta.
Da questa scaletta sintetica, si può vedere come il lavoro del data scientist sia perfet-
tamente calato nella realtà aziendale.
L’input su cui egli lavora viene prodotto da qualche ramo dell’azienda e i risultati della
ricerca dovranno essere usati dalla stessa o altre componenti aziendali.
Un aspetto molto importante in questo è comprendere che al progetto parteciperanno
figure differenti le quali interagiranno con i data scientist e il loro rapporto verterà attor-
no alla correttezza dei linguaggi utilizzati.
Il data scientist avrà bisogno di corrette indicazioni dal management e probabilmente
anche di aiuto nella corretta interpretazione dei dati che gli sono stati forniti. Egli stes-
so dovrà però essere altrettanto bravo nell’esprimere i risultati delle sue ricerche in
indicazioni che possano essere comprensibili per il personale non tecnico dell’azienda.
Con il progresso tecnologico il destino del data scientist si è legato sempre più, un po’
per convenienza un po’ per necessità, a Big Data e Intelligenza Artificiale: le nuove
tappe del nostro viaggio.
Big Data
Tutte le certezze dell’analisi dati tradizionale sono andate in crisi di fronte ai Big Data.
Parliamo di uno dei fenomeni più significativi degli ultimi decenni, attualissimo, molto
discusso, del quale si è faticato anche a trovare una definizione pregnante. Se ne è ini-
ziato a parlare nei primissimi anni del millennio quando venne formulata la cosiddetta
regola delle 3 V.
Consiste nella scelta di tre termini che caratterizzano il fenomeno Big Data nei tratti
essenziali e che iniziano tutti con la lettera V:
• Volume: la quantità di dati da trattare è estremamente alta. Questo non è l’unico
fattore che caratterizza tale realtà ma sicuramente il più indicativo. Non a caso
alla parola Data è stato anteposto l’aggettivo Big. Il rapporto di tali volumi con
quelli con cui siamo abituati a trattare quotidianamente sulle nostre macchine
non ha paragone. Se i file con cui abbiamo a che fare a casa o in ufficio misurano
Megabyte o al massimo Gigabyte, gli archivi Big Data si misurano nell’ordine dei
Terabyte o Petabyte;
• Velocità: altro fattore importante è la rapidità con cui i dati vengono accumulati.
Sono sempre più i contesti in cui un flusso di dati senza sosta (streaming) afflui-
14Data Science, Big Data e Machine Learning: un po’ di orientamento Capitolo 1
sce ai server. Ciò ha portato alla necessità di gestirne l’accumulazione eliminando
perdite di dati, evitando il blocco dei sistemi e riducendo al minimo i tempi di
latenza. Casi di questo tipo possono riguardare, a titolo di esempio, transazioni
finanziarie, settore industriale o dispositivi IoT (Internet of Things) con la costante
trasmissione di eventi rilevati;
• Varietà: a differenza dei classici archivi fortemente strutturati, i dati che ven-
gono accumulati nei sistemi Big Data sono altamente variegati. Basti pensare
ai post che si pubblicano continuamente sui social network. Sono composti da
testo, immagini, video e altri contenuti multimediali, in numero, quantità e ordine
mutevole da caso a caso.
In realtà, questa legge rappresenta il nocciolo essenziale dei Big Data ma di “V”, nel
tempo, ne sono state individuate molte altre. Una caratteristica di cui si è parlato molto
è la Veridicità dei dati. La quantità e la velocità di accumulazione devono comunque
permettere l’affidabilità delle informazioni. Dati errati o malformati possono non avere
alcun valore e, in casi peggiori, portare a valutazioni non corrette. Tale aspetto non è faci-
le da verificare in quanto il dato spesso viene prodotto da esseri umani, in genere comu-
nissimi utenti, e viene trattato più volte fino ad arrivare al momento dell’archiviazione.
Grandi volumi a grande velocità caratterizzati da grande varietà portano necessaria-
mente a problematiche di organizzazione e di accoglienza del dato in arrivo. Come
organizzarli? Prevedere tipi di dati di ogni genere possibile? Strutturarli in arrivo o even-
tualmente rielaborarli in seguito?
I più comuni paradigmi di organizzazione dei sistemi di dati, affermatisi via via nel
tempo, sono:
• suddivisione in comparti stagni, detto in genere silos. Ogni comparto dell’azienda
mantiene i propri archivi e non v’è alcuna condivisione con gli altri. Ciò è molto
diffuso e può verificarsi per molti motivi tra cui: mancanza di interesse, riserva-
tezza e protezione delle informazioni, visione poco lungimirante;
• Datawarehouse: archivi strutturati di dati. Si cerca di integrare tutti i dati dell’a-
zienda in un unico sistema nella speranza di ottimizzarne la gestione e sfrut-
tarne, un giorno, sinergie e correlazioni. È un sistema molto in voga negli ultimi
decenni che può portare ad attività di analisi particolarmente interessanti. I dati
all’interno devono tuttavia essere strutturati al momento della loro introduzione;
• Data Lake (lago di dati). È un’organizzazione per cui ogni dato in arrivo, di qual-
siasi genere, viene accantonato in un unico storage senza alcuna elaborazione
in ingresso. Ciò inverte tutto ciò che gli archivi tradizionali trattano. Se si pensa
a classici database relazionali prevale il principio dello schema on-write (strut-
turazione in scrittura) ovvero esiste uno schema di base per il database e i dati
15Data Science con Python
possono essere inseriti solo se si adattano a questa struttura. Nel Data Lake pre-
vale il paradigma inverso, lo schema on-read, ovvero i dati vengono accumulati e
salvati e solo nel momento in cui li si vorrà utilizzare si provvederà a interpretarli
e adattarli a una struttura. Tale approccio, adottato da molte aziende, facilita
l’acquisizione e il salvataggio di dati nonostante l’alta velocità e la varietà.
Nonostante le aziende generalmente si rivolgano a uno specifico di questi approcci, una
via che prevale sempre più spesso è quella dell’integrazione. Una compagnia può ave-
re bisogno di un Data Lake per l’accumulazione di dati ma anche di un Datawarehouse
per la loro analisi. Tali sistemi possono convivere contemporaneamente dedicandosi
alla raccolta di dati diversi o costituendo fasi attigue dello stesso ciclo di vita.
Intelligenza Artificiale e Machine Learning
Nonostante la loro grande utilità, da sempre si sa che le macchine sono “stupide”.
In fin dei conti, in informatica si impara subito che un computer non sa fare niente
se non è l’essere umano ad analizzare un problema, trasformarlo in un algoritmo e
codificarlo in un programma. Così è sempre stato finché non si è iniziato a parlare di
Intelligenza Artificiale.
Come si evince dall’espressione stessa, lo scopo dell’Intelligenza Artificiale consiste
nell’indurre una sorta di ragionamento spontaneo nella macchina che la possa portare,
in autonomia, a risolvere problemi senza la diretta guida dell’uomo.
Se ne è iniziato a parlare negli anni Cinquanta e la tematica ha da subito affascinato
sia la platea di ricercatori sia il pubblico, come dimostra l’ampio numero di ricerche
condotte ma anche la vasta produzione di libri e film che ha visto umanoidi e macchine
intelligenti protagonisti.
Da suggestioni e ipotesi iniziali, i continui progressi avutisi nei decenni grazie a com-
pagnie come IBM e la diffusione di linguaggi di programmazione come il Lisp hanno
rafforzato l’idea che tale branca dell’informatica potesse davvero avere successo.
In realtà, tutta la seconda metà del secolo scorso è stata dominata da vicende alterne
costellate da delusioni ma anche da successi come l’affermazione del cervellone Deep
Blue in una serie di partite a scacchi contro il campione del mondo Garry Kasparov.
Proprio eventi come quest’ultimo hanno dimostrato che, oltre a farla ragionare in base
a strutture impostate, si potesse mettere una macchina in condizione di imparare.
Questo è proprio il concetto chiave del Machine Learning, la branca dell’Intelligenza
Artificiale in cui il programmatore guida la macchina in una fase di training basata sullo
studio di dati storici. Grazie a questa attività, viene prodotto un modello che può essere
applicato nella risoluzione di problemi con dati nuovi.
16Data Science, Big Data e Machine Learning: un po’ di orientamento Capitolo 1
A differenza dell’approccio classico, fondato sulla stesura di algoritmi risolutivi, con il
Machine Learning sarà la macchina a scoprire cosa compone il modello e compito del
data scientist sarà quello di sottoporla a fasi di training sempre più efficaci con dati ricchi
e ben trattati e di sperimentare i modelli prodotti sottoponendoli a test.
È gran parte merito del Machine Learning se i sistemi che utilizziamo nei dispositivi
mobile, nella domotica, in Internet o in qualsiasi altro luogo sembrano sempre più
intelligenti. Man mano che un sistema lavora, molti dati su di esso e sugli utenti pos-
sono essere raccolti e utilizzati per la fase di apprendimento: in base a questo i modelli
individuati permetteranno di sviluppare previsioni.
Chi vuole applicarsi in questo campo deve conoscere bene gli strumenti di base della
Data Science, approfondire i vari algoritmi di training che esistono per scegliere il più
adatto ai dati e alla problematica che si deve affrontare.
Il percorso del libro
Questo libro mira a formare la figura professionale del data scientist, pronta per poter-
si cimentare nelle principali sfide che ricerca e industria pongono.
Il linguaggio scelto è Python, uno dei più usati al mondo e in particolar modo in questo
ambito, protagonista dell’informatica dalla fine degli anni Ottanta.
Si tratta di un linguaggio ricco, dotato di tutto il necessario, ma privo di ridondanze,
sostenuto da un’attivissima comunità di sviluppatori che costantemente lo rifornisce
di strumenti.
Tuttavia, gran parte dei principi che si impareranno possono essere applicati nel mede-
simo settore sfruttando altri linguaggi apprezzati per la Data Science (Java, R, Julia,
Scala e altri ancora).
Il percorso che offre il libro è costituito dai seguenti step:
1. studio dei fondamenti del linguaggio Python: si imparano le basi del linguaggio
in maniera approfondita con particolare attenzione a tutto ciò che servirà nei
prossimi capitoli. Ci si dedica tuttavia all’analisi dei dati tradizionale approfon-
dendo aspetti come la lettura e scrittura di dati su file (i principali formati come
CSV, XML e JSON), l’interazione con database e l’uso di strutture dati;
2. strumenti per la Data Science: Python offre già un insieme di tecniche molto
efficienti per l’analisi dei dati ma il data scientist deve conoscere almeno altre tre
librerie dominanti nel settore: NumPy, Pandas e Matplotlib. Con queste sarà
in grado di gestire e trattare vettori e matrici di dati con la maggiore efficienza
possibile. Tali strumenti saranno indispensabili in ogni ambito che verrà trattato,
dall’elaborazione di file fino alle tecniche di Machine Learning;
3. tecnologie e tecniche per la gestione e l’analisi dei Big Data: quando le moli di
dati da trattare assumono consistenze e modalità di accumulazione imponenti si
17Data Science con Python
entra nell’ambito dei Big Data e da lì sarà indispensabile conoscere gli ambienti
per l’elaborazione di informazioni distribuite su molti nodi. Questa tematica così
cruciale al giorno d’oggi verrà esplorata con cura e sarà approfondita tecnica-
mente con la risoluzione di problemi per i framework Hadoop e Spark;
4. Machine Learning: l’opera, infine, si concentra sulle tecniche di Machine
Learning offrendo una panoramica sui principali approcci possibili e una descri-
zione con applicazione pratica degli algoritmi maggiormente utilizzati.
Il percorso mira a mantenere la coerenza dei suoi obiettivi formando il professionista
su molti concetti e tecniche e illustrando il tutto in maniera organica, privilegiando in
primis l’applicazione pratica.
Il codice del libro
Tutti gli esempi di codice trattati nel testo sono disponibili per il download al seguente
link: https://datascientist-python.blogspot.com.
Riepilogo
La realtà della Data Science è particolarmente articolata al giorno d’oggi. Spazia dal-
l’analisi di dati presenti su file di dimensioni perfettamente gestibili fino alla vastità
degli archivi Big Data, conservabili solo su reti composte da molte macchine. Affronta
interrogazioni su dati storici ma risponde anche a necessità di predizioni di tendenze
future caratterizzate dalla maggiore affidabilità possibile.
Pertanto, per affrontare un percorso di formazione da data scientist è necessario per
prima cosa orientarsi e questo capitolo mira proprio a questo.
Viene spiegata l’importanza dei dati al giorno d’oggi e perché costituiscano una risorsa
economica importantissima e autonoma tanto che sempre più aziende nascono fina-
lizzate alla loro analisi e sfruttamento.
Si illustra il lavoro del data scientist e come in esso si intersechino scenari Big Data e
tecniche di Machine Learning. Con la prima espressione si intende un’accumulazio-
ne di ingenti quantità di dati, molto variegati, ad altissima velocità. Con la seconda,
si indica una branca dell’Intelligenza Artificiale che descrive una serie di algoritmi di
apprendimento con cui una macchina può imparare dai dati e in base a questo attuare
previsioni per il futuro.
Il capitolo si conclude con un piano dell’opera che più che illustrare la distribuzione
degli argomenti evidenzia le finalità del libro e il suo essere uno strumento unico per la
formazione della figura professionale del data scientist.
18Puoi anche leggere