La Data Science è un ecosistema complesso (fig. 1) in cui anche l'implementazione del modello di data mining/machine learning è una fase di un processo più ampio.
Vedendo nuovi aspiranti data scientist concentrarsi maggiormente su "potremmo applicare il modello X?" e poco su "che problema andiamo a risolvere?" ho pensato di scrivere questo post per chi vuole avvicinarsi alla disciplina.
![]() |
| fig. 1 data science |
Solitamente per affrontare un progetto (che sia di data science o no) utilizzo l'approccio CRISP - DM.
Il CRoss-Industry Standard Process for Data Mining è ormai uno standard per i progetti di analisi dati e divide il problema in 6 fasi (fig.2).
![]() |
| fig.2 CRISP-DM Process |
- Comprensione del problema: questa è la fase più delicata, da qui deriva tutto il resto. Il mio consiglio è di investire più tempo in questa fase approfondendo (col cliente, col professore, ...) ciò che vi è richiesto. Vi eviterà molto lavoro nelle fasi successive.
- Comprensione dei dati: in questa fase con delle statistiche descrittive andiamo a scoprire cosa abbiamo a disposizione.
- Quante osservazioni e quante variabili ha il dataset?
- Per ogni variabile quanti valori mancanti?
- Per le variabili categoriali: quante categorie/valori distinti abbiamo?
- Per le variabili numeriche: minimo, massimo, media, mediana, quartili, deviazione standard.
- Preparazione dei dati: ogni progetto ha le sue specifiche elaborazioni, qui cerco di riassumere le più comuni.
- Trattamento dei valori mancanti. Possono essere utilizzate diverse strategie a seconda di come è fatto il dataset e di quanto influiscono.
- Li imposto a zero? Sconsigliatissimo!
- Li sostituisco con media o mediana?
- Uso metodi di machine learning per predire il valore che manca?
- Uso l'interpolazione tra n valori prima e n dopo il mancante? (Molto usato nelle serie storiche)
- Trattamento Outlier. A meno che non lavoriamo proprio su outlier detection, e quindi cerchiamo proprio questi comportamenti anomali (es. scoprire frodi bancarie), questi valori "sporcano" il dataset, anche qui possono essere usate diverse strategie.
- Sostituire con la media o la mediana
- Sostituire con minimo o massimo
- Sostuire il valore usando modelli di machine learining
- Elaborazioni varie dipendenti dal problema da risolvere:
- Raggruppare secondo granularità spaziale/temporale
- Discretizzare variabili continue in range
- Creare variabili dummy
- Utilizzare metodi di Dimensionality Reduction (es. PCA)
- Remove Stopwords, Stemming (es. progetti NLP)
- Modeling: finalmente arrivati al punto chiave, bisogna scegliere il modello da adottare.
- La scelta dipende da:
- Che problema dobbiamo risolvere?
Regressione? Classificazione? Pattern recognition? ...
L'unico consiglio che mi sento di dare è di non esagerare con la complessità, non sempre un modello complesso è un modello migliore, anzi si può andare incontro ai fenomeni di overfitting e underfitting. - Quanti dati abbiamo?
Spesso ci si lancia sul deep learning perchè và molto di moda ma non abbiamo abbastanza dati per applicarli e quindi non danno quel vantaggio che dovrebbero. - Una volta scelti N modelli da valutare per ogni modello proponiamo un diverso tuning dei parametri (es. nel Random Forest il numero di alberi)
- Fatto questo "alleniamo" il modello su una parte del dataset (circa il 75% delle osservazioni) e lo testiamo sul restante.
Se il test ci soddisfa scegliamo il modello migliore altrimenti si torna alla fase di tuning o a quella di preparazione del dato.
[A questo link c'è un'ottimo cheatsheet sugli algoritmi di machine learning in R.] - Valutazione: in questa fase si valutano i risultati, se sono in linea con quanto richiesto nella prima fase ok, altrimenti si torna alla fase di comprensione del problema.
Se il processo è andato a buon fine si valutano i possibili sviluppi futuri e le modifiche/miglioramenti apportabili. Tengo ad aggiungere che i modelli non sono statici ma và fatto un re-tuning dei parametri utilizzando i nuovi casi che si verranno a presentare, quindi in questa fase è importante anche calendarizzare anche questo. - Deploy: se è tutto a posto il modello và in produzione. In questa fase durante gli anni di lavoro sono sempre stato affiancato da altre figure come Data Engineer, quindi è molto importante saper comunicare con altre figure del mondo Dati, nessun progetto può andare in porto con una sola figura seppur molto preparata.
![]() |
| fig.3 tidyverse è una libreria R per manipolare i dati |
Troppo spesso il Data Scientist è confuso con un mago (e questo a volte fa piacere) ma dietro a qualsiasi magia c'è sempre tanto metodo.
![]() |
| fig.4 Abatantuono interpreta "Il mago di Segrate" |





























