Il workflow del data scientist
Il workflow del data scientist è suddiviso in varie fasi e segue solitamente l’impostazione comune a qualsiasi altro ambito scientifico. Vogliamo così condividere con voi quello seguito dal team di analisti Quaerys.
1. La definizione del problema
Il tutto inizia con una domanda alla quale dobbiamo trovare un risposta o con un problema da risolvere.
In questa fase è molto importante cercare di capire a fondo il problema che ci viene posto dal cliente e cercare di aiutarlo a definirlo meglio, ponendo tutte le domande necessarie. In questi casi (oltre alle classiche indicazioni riguardanti l’analisi dei bisogni del cliente che vengono spiegate nel seguente video) forse la qualità più importante è l’umiltà. Infatti bisogna avere l’umiltà di riconoscere i propri limiti in certi domini della conoscenza. Infatti sono sempre di più gli ambiti che possono avere bisogno del data scientist per supportare le loro decisioni ed è impensabile che quest’ultimo abbia conoscenze approfondite in ognuna settore.
Questo deve portare lo scienziato dei dati a chiarire, il prima possibile, dei suoi eventuali dubbi definendo al meglio la problematiche e le richieste del cliente.
Tutto questo perché man mano che si va avanti nelle fasi del lavoro tornare indietro diventa sempre più costoso.
2. La ricerca delle fonti di dati
Uno volta definito il problema, inizia la ricerca delle fonti dalle quali attingere i dati. Questa è una fase dove difficilmente si potrà stabilire in maniera standardizzata i migliori canali di acquisizione . Infatti, in base alle richieste del cliente, i dati che cerchiamo potranno trovarsi sui social media, nei blog, nei forum, negli articoli di giornale, in statistiche e sondaggi ufficiale, solo per citare le principali fonti di dati.
È però possibile classificare le tipologie di dati raccolti in:
- dati strutturati sotto forma di dati tabulari tratti da database e dati tabulari in file CSV (Comma Separated Value);
- dati semi-strutturati, tra cui dati e tag in formato HTML e JSON.
- dati non strutturati, che vengono generati solitamente da attività umane di vario tipo e che non possono essere immessi direttamente all’interno di database strutturati. Tra questi rientrano i test in linguaggio naturale che popolano il web nei blog, nei forum, nei social media ecc.
3. La raccolta dei dati
È necessario poi raccogliere questi dati e questo può avvenire in vari modi:
- tramite API, attraverso le quali è possibile scaricare i dati di interesse (con eventuali limitazioni) direttamente dalle piattaforme di interesse (ad esempio da Twitter).
- tramite tecniche di web scraping (utili soprattutto quando si ha a che fare con il linguaggio naturale) che consentono di raccogliere i testi di nostro interesse dalle pagine web e di organizzarli in formato tabulare.
- tramite l’interrogazione di database.
4. La pulizia e l’analisi
I dati, un volta raccolti, tendenzialmente necessitano di essere puliti a causa della presenza di valori mancanti, anomali, non standard o magari non necessari alla nostra analisi.
Dato che l’utilità o meno dei dati varia in funzione della tipologia di analisi che dobbiamo fare è bene sempre avere una copia “non pulita” dei dati, nel caso in cui servissero per effettuare analisi di diverso tipo.
Arriviamo così al cuore del lavoro: l’analisi vera e propria. Di analisi ne esistono vari tipi:
- la prima e più semplice è quella descrittiva che si limita a descrivere le misure aggregate di un dataset , solitamente tramite delle visualizzazioni (questo non avviene per il linguaggio naturale, ma solitamente per dati in formato tabulare).
- l’analisi esplorativa che si pone l’obiettivo di trovare nuove relazioni tra le variabili;
- l’analisi causale ricerca e identifica quali sono le variabili che influenzano le altre.
- l’analisi inferenziale viene utilizzata quando da dei dati campione si vuole descrivere una popolazione più grande.
- l’analisi predittiva che permette di effettuare previsioni future sulla base dei dati passati a disposizione (utilizzando il machine learning).
5. La visualizzazione dei dati e l’interpretazione umana
I risultati delle nostre analisi dovranno essere tradotti in forma visuale per una migliore comprensione. Una volta visualizzati, arriva la parte più importante e decisiva nel processo di analisi: l’interpretazione umana. Infatti i risultati ottenuti non parlano da soli, ma hanno bisogno di essere collegati al loro dominio di applicazione (che può essere ad esempio il settore farmaceutico, il settore food ecc.). Questa è la fase nella quale l’analista deve chiedersi se e quale significato hanno quei risultati rispetto alle domande poste dal cliente.
Infine, dovrà chiedersi se potrebbero essere utili altre tipologie di dati e di analisi per ottenere dei risultati più completi e per risolvere nuovi problemi emersi durante la prima analisi. Infatti è bene cercare di arrivare dal cliente con delle risposte coerenti ed affidabili e con un’eventuale panoramica delle nuove problematiche emerse che potrebbero essere risolte con nuove analisi.
Quest’ultimo punto è molto importante e non deve essere frainteso con la richiesta di un nuovo lavoro da parte dell’analista. Al contrario, è parte integrante del lavoro dell’analista saper trovare gli eventuali punti deboli ancora presenti per dare la possibilità al cliente di giocare di anticipo.
6. La redazione del report
Il report è il prodotto finale da consegnare al cliente ed include:
- una introduzione che descrive e definisce in maniera sintetica le domande e il problema da risolvere e le milestones fondamentali che hanno portato al soluzione del problema .
- una breve spiegazione di quelle che sono state le fonti di dati e della tipologia di analisi effettuata (evitando tecnicismi inutili).
- una spiegazione approfondita dei risultati, contestualizzandoli all’interno del dominio di riferimento.
- la parte finale dedicata alle conclusioni, dove si possono dare eventuali consigli per supportare le decisioni ed indicare altre tipologie di analisi utili.
La struttura del report non deve essere vista come qualcosa di rigido e immodificabile, ma si deve sempre adattare alle richieste e ai bisogni del cliente.