Python Data Science con - Edizioni LSWR

Pagina creata da Monica Santi
 
CONTINUA A LEGGERE
Python Data Science con - Edizioni LSWR
- 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 >>
Python Data Science con - Edizioni LSWR
Python Data Science con - Edizioni LSWR
Data Science con

   Python
La guida completa, dai Big Data
     al Machine Learning
Python Data Science con - Edizioni LSWR
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                                   .
Python Data Science con - Edizioni LSWR
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

                                                                                                                                                    3
Python Data Science con - Edizioni LSWR
Data 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

 4
Python Data Science con - Edizioni LSWR
Indice

      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

                                                                                                                                               5
Python Data Science con - Edizioni LSWR
Python Data Science con - Edizioni LSWR
1
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.

                                                                                          7
Python Data Science con - Edizioni LSWR
Data 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

 8
Data 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

                                                                                       9
Data 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:

 10
Data 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

                                                                                    11
Data 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.

 12
Data 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;

                                                                                              13
Data 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-

 14
Data 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

                                                                                          15
Data 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.

 16
Data 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

                                                                                           17
Data 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.

 18
Puoi anche leggere