Una scienza più che quotidiana

Data Science con Python: la seconda parte

di

thumbnail

30

giu

2017

Il libro più completo sulla disciplina più promettente del momento e il linguaggio di programmazione più mainstream.

Schietto e senza peli sulla lingua, sa essere ironico e andare al punto. Gli abbiamo sottoposto un sacco di domande e lui ha risposto a tutto, tanto che abbiamo diviso in due l’intervista (la prima metà è uscita ieri).

Dmitry Zinoviev è l’autore di Data Science con Python, appena uscito per i tipi di Apogeo, e pensiamo che poche volte sia accaduto, come in questo caso, che dall’intervista si possa capire quanto è valido il libro. Prima di cedere la parola a Dmitry, desideriamo ringraziare Sabino Maggi per la collaborazione. Buona lettura!

Apogeonline: La transizione da Python 2.x a Python 3 sembra spesso confusa, con molti pacchetti che risultano incompatibili o difficili da adattare alla nuova versione del linguaggio. Che cosa significa Python 3 per un data scientist? Meglio tuffarsi in Python 3 senza guardare indietro o restare sulla versione 2.7 finché si calmano le acque?

Dmitry Zinoviev: Non uso Python 2.7 da tre anni e sono felice. La gran parte dei moduli che mi interessano sono stati portati con successo a Python 3 (per quanto ricordo, senza eccezioni). Python 2.7 sta morendo e adottarlo come dialetto di scelta significa solo prolungare l’agonia. Sono particolarmente preoccupato dalla popolarità del libro Learning Python The Hard Way, che propina ai principianti ignari il vecchio dialetto.

Qual è la cosa più strana che hai trovato in un dataset?

Tempo fa ho lavorato su un certificato di data science di Coursera (più per imparare R che per il certificato). Nel progetto del corso dovevamo analizzare il dataset accademico di Yelp, nel modo che preferivamo (quello di cui ho parlato ieri; venti minuti per leggerlo con R, uno con Python). Ho tentato di eseguire una reverse sentiment analysis: scoprire quali parole erano indicatori di buone o cattive recensioni. Mi ha stupito vedere come alcuni dei termini che indicavano la negatività fossero water e groupon, mentre il secondo miglior indicatore di successo era wine. A posteriori, aveva senso: in un posto brutto, neanche ti servivano l’acqua! Ed era raccomandato da Groupon! dove altrimenti, in un posto memorabile, il vino era eccellente. (Gli interessati trovano un sunto su LinkedIn).

Scultura michelangiolesca

La conoscenza è già dentro i dati e basta portarla alla luce, o viene generata?

 

Lo chiediamo a tutti: Michelangelo è noto anche per avere affermato che l’opera è già dentro il blocco di marmo e basta levare quello che è di troppo per svelarla. La conoscenza è già nei dati e basta eliminare lo strato in eccesso? O sta a noi farla saltare fuori da un ammasso amorfo di dati “stupidi”?

È innegabile che qualsiasi dato contenga conoscenza. Dati i giusti strumenti statistici, analitici, di machine learning o di analisi di reti, possiamo estrarre la conoscenza lavorando in modo non dissimile dallo scultore con la pietra. Non vogliamo però estrarre tutta la conoscenza da tutti i dati. Dobbiamo definire il problema e delineare meticolosamente i dati rilevanti per la soluzione. Questo delineare richiede spesso la costruzione del giusto software (per esempio web crawler ed elaboratori di testo naturale). Detto in altro modo, non vogliamo levare tutto il marmo in sovrappiù per mostrare ogni scultura possibile.

Quale pensi sia il miglior percorso per iniziare a studiare l’analisi dei dati? In particolare, meglio una direzione informatica oppure una prettamente scientifica (fisica, matematica, chimica) per specializzarsi nell’analisi in un secondo momento?

Il curriculum tipico della data science è già ragionevolmente uniforme (per quanto non standardizzato), almeno negli USA. In effetti, sono due, molto diversi: uno parte dalla statistica e procede verso R e altri software di analisi dei dati (diciamo STATA e SAS). Lo seguono di solito gli studenti di biologia, scienze sociali, economia e commercio. L’altro curriculum è essenzialmente un sottoinsieme dell’informatica: uno o due corsi di Python, calcolo e statistica, corsi intensivi di programmazione dedicata a data science e machine learning. Si approda prevedibilmente a tipi diversi di lavoro, anche se più avanti è possibile cambiare campo. Suppongo che un retroterra adeguato di programmazione permetta con più facilità di rivolgersi a R e agli strumenti di business analytics che viceversa.

Hai una configurazione hardware/software preferita?

Sono su Linux dai primi giorni di Slackware (1995): sono passato a Red Hat e poi a Ubuntu, che uso ora. La mia distribuzione Python (Python 3.x!) preferita è Anaconda e lo hardware è un desktop AMD, sufficiente per la gran parte dei miei piccoli progetti per l’ambito universitario.

Qual è il principale punto di forza del tuo libro Data Science con Python?

Lo ritengo una risorsa veloce di consultazione da tenere sulla scrivania per quelli che come me preferiscono sfogliare un libro pronto che mettersi su Google o StackExchange, ma anche un buon libro di testo per imparare la strada che tramite Python porta alla data science. Il mio obiettivo era mantenerlo compatto.

Data Science con Python

Consultazione e apprendimento, in formato maneggevole.

 

Nel praticare la data science, quali sono i pro (e magari i contro) di un linguaggio generico come Python rispetto a strumenti più specialistici?

Qualunque strumento specialistico è buono quanto i dati di input e la raccolta di modelli di dati che esso riconosce. Da programmatore, posso affrontare qualsiasi dataset: se non esiste una libreria standard, ne scriverò una mia. E posso usare qualsiasi modello di dati: se il modello che desidero non è presente nella libreria, scriverò una libreria apposta. (Mi è accaduto un anno fa nel pubblicare un modulo di calcolo della similarità generalizzata in reti bipartite, perché niente del genere esisteva). Chi usa strumenti specialistici si affida alla buona volontà dei loro creatori e nel novantanove percento dei casi resterà soddisfatto. Il rimanente uno percento chiederà loro un buon linguaggio di programmazione generica.

Che cosa è meglio imparare, almeno le basi, per avvicinarci alla data science a parte Python e la parte informatica?

Qualcuno dice che la data science è statistica dopo gli steroidi. Per un data scientist, comprendere la statistica è un must. In secondo luogo, non fa male avere qualche idea degli ambiti applicativi. Un data scientist non lavora nel vuoto; dietro i numeri c’è sempre qualcosa di reale. Conoscere quel qualcosa aiuta a validare i dati di input, azzeccare il modello di dati e valutare meglio i risultati.

Sei per formazione un fisico. La fisica è stata per lungo tempo tutta teoria, esperimenti e poi simulazioni computerizzate. Ora la complessità degli ambiti di ricerca attuali – penso a fisica delle particelle, o ad astrofisica, ma anche alla scienza dei materiali e alle nanotecnologie – porta quasi per natura a una esigenza maggiore di gestione dei dati; si pensi a progetti come il Large Hadron Collider del CERN. Il fisico di domani sarà sempre più alle prese con i dati e sempre meno nell’effettiva attività di sperimentazione. Pensi che questo trasformerà la scienza e il modo di lavorare degli scienziati?

Credo che abbiamo appena descritto il deep learning. Un fisico (o un gruppo di fisici) si occupava tradizionalmente di raccogliere dati sperimentali, studiarli, scoprire relazioni empiriche tra variabili, proporre una teoria che le spiegasse e formulare predizioni basate sulla teoria. Nella pratica, la predizione è la parte di maggior valore della catena, perché porta alle applicazioni pratiche. Da un certo punto di vista, la teoria serve solo per generare predizioni. Sfortunatamente non esiste predizione accurata senza teoria e la teoria può essere molto difficile da sviluppare.

Large Hadron Collider

Per ogni esperimento scientifico ci sono sempre più dati e la scienza sta cambiando.

 

Il deep learning elimina l’intermediario: ci porta dai dati sperimentali a un modello computazionale opaco, che non comprendiamo e spesso non abbiamo possibilità di comprendere, ma consente di generare predizioni credibili. Il proverbiale professore occhialuto dai capelli grigi e il camice bianco cede il posto a un diplomato in data science, che sa solamente sottoporre i dati sperimentali a un cluster Hadoop, scegliere una dozzina di modelli collaudati e selezionare quello con la migliore precisione predittiva. È questa la scienza del futuro? Che vogliamo avere nel futuro? Come fisico per formazione, la prospettiva mi fa star male. Come data scientist per vocazione, mi entusiasma.

La prima parte dell’intervista a Dmitry Zinoviev è apparsa ieri.




Dmitry Zinoviev (@aqsaqal) vanta un dottorato di ricerca in Informatica e un master in Fisica. I suoi ambiti di ricerca includono la creazione di modelli simulati al computer, l’analisi delle reti sociali e l’informatica umanistica. Insegna alla Suffolk University di Boston dal 2001.

In Rete: https://github.com/dzinoviev

Letto 1.456 volte | Tag: , , , ,

Lascia il tuo commento