Figure mitologiche
Il data scientist è una fugra mitologica, con competenze che spaziano dalla porgrammazione all’analisi dei dati alla statistica applicata alla creazione di viste e reportistica d’effetto.
Spoiler: di solito non esiste il data scientist, ma piuttosto il team di data science: un isnieme di professionisti che lavorano insieme per raggiungere il risultato.
Sia come sia, queste figure mitologiche hanno un codice e un vocabolario tutto loro, spesso incomprensibile ai più. Cerchiamo quindi di svelare alcune delle parole più usate dal team, che vi capiterà di trovare sparse nelle presentazioni di sprint o stato avanzamento lavori.
Ultimate data-scientist to normal-people vocabulary
Non ci piace vincere facile, per cui escluderemo dalla lista tutte le parole più mainstream come intelligenza artificiale, machine learning, deep learning, big data e modello. Comicniamo subito con il nostro vocabolario sintetico data science – mondo.
1. METRICHE
Il modello di machine learning impara a partire dai dati, e in base ad una performance. Le metriche sono proprio le performance che vengono fornite al modello per capire se sta imparando correttamente. A seconda del tipo di apprendimento ci sono metriche diverse: si parla di coefficiente di determinazione, errore percentuale, recall, f1-score, cross-entropy, fitness… Di solito, la metrica è un numero che si vuole massimizzare o minimizzare.
2. CROSS-VALIDATION
La prima cosa che chiede un data scientist ad un altro data scientist quando si parla di modelli è:
Ma quelle sono metriche di train o di test?
Every data scientist
I modelli, quando vengono allenati, vedono il dataset di train, ma per valutare la loro capacità previsionale si mettono alla prova su dati che non hanno mai visto, chiamati dati di test.
La cross-validation è proprio quella strategia per cui il modello decide quanto bene si sta comportando basandosi su dati che non ha visto per imparare.
Nella sua descrizione completa, si parla di k-fold cross validation, ed è una modalità più evoluta di testare le capacità del modello.
Il dataset completo si divide in N pezzettini, ad esempio se ho 800 righe potrei avere 10 pezzetti da 80 righe l’una.
Poi, si allena il modello in diversi round – iterazioni. In ogni iterazione, il modello vede 9 pezzetti per imparare (training) e uno per testare se la sua performance sta migliorando iterazione dopo iterazione (validation).
Questa modalità iterativa di valutare la performance del modello è proprio la cross validation.
3. OVERFITTING
Qualche volta, anche i modelli sbagliano. Uno dei modi più classici e più evitabili in cu ii modelli sbagliano è quando vanno in overfitting.
L’overfitting è come il compagno delle elementari che impara tutto il libro a memoria, ma quando la maestra gli chiede di fare un ragionamento a partire da quello che ha studiato, non è in grado di collegare i concetti in modo diverso da quanto ha visto sul testo.
Il nostro povero compagnuccio, mortificato e forse un po’ bullizzato (vergogna!), non ha imparato a generalizzare le sue conoscenze. Non è come il su ocompagno di banco che proprio non studia, lui ha studiato tantissimo, ma nel modo sbagliato.
I modelli fanno la stessa cosa: in alcuni casi, se i dati sono troppo pochi o se i modelli sono troppo complessi, imparano a memoria tutti il dataset di train e non riescono a generalizzare il comportamento fisico. Questo comportamento specifico è chiamato overfitting.
Ci sono anche modelli scansafatiche che non imparano abbastanza, ovviamente. In quel caso si parla di underfitting.
4. PARAMETRO E IPERPARAMETRO
Cosa vuol dire che un algoritmo è troppo complesso? Significa che è stato costruito con troppi mattoncini rispetto alla disponibilità di dati, che sono troppo pochi.
I mattoncini che un modello usa sono di due tipi:
- Parametro: il coefficiente o la regola che l’algoritmo ottimizza in autonomia nella fase di apprendimento. Ad esempio, i pesi di una rete neurale, i coefficienti di una regressione non lineare, o le regole di una foresta di alberi decisionali
- Iperparametro: tutto quello che l’algoritmo non sa ottimizzare in autonomia, ma che può essere cambiato a mano dal data scientist. Ad esempio, quanti neuroni ha una rete neurale, quanti alberi ha una foresta di alberi decisionali, o quale ottimizzatore si deve usare per trovare i parametri migliori.
Chiaro no?
5. LAYER
Essendo le reti neurali una famiglia di algoritmi largamente utilizzata, spesso sentirete parlare di neuroni e layer. Questi sono due degli iperparametri che si possono scegliere a mano in fase di allenamento.
I neuroni sono quei pallini che si illuminano, contengono una funzione semplice che aiuta la rete a prevedere l’output in base agli input.
I layer, o strati, sono le file di neuroni parallele (nell’immagine in verticale). Nella rete che vediamo, si notano il layer di input, da 784 neuroni, due layer nascosti, e il layer di output, di 9 neuroni in fondo.
6. RESIDUO
Nei modelli di regressione, che prevedono un valore continuo a partire da un parametro noto nel dataset di training, è possibile calcolare la differenza tra valore reale e valore predetto (mi raccomando, sempre in quest’ordine!).
Questa differenza si chiama residuo. La sua media sul dataset di train, se il modello non è impazzito, dovrebbe essere intorno allo zero. I residui si utilizzano spesso come strumento per la generazione degli allarmi in caso di anomaly detection, monitoraggio delle performance o manutenzione su condizione.
Per generare allarmi, spesso si utilizza la deviazione standard dei residui sul dataset di test come riferimento minimo. Utilizzando 3 volte la deviaizone standard o 6 volte la deviazione standard, si possono ipotizzare valori di limite iniziali da cui partire per la validazione del sistema con gli esperti di dominio.
7. CLASSE
Per facilitare l’analogia, immaginiamoci una scuola. Ogni scuola ha una serie di classi, che condividono caratteristiche simili (ad esmepio età dei bambini, corsi, professori etc).
Quando parliamo di classi intendiamo la stessa cosa: un raggruppamento di osservazioni con caratteristiche simili, ad esempio un modo di guasto.
Le classi sono le cose che vengono predette dai modelli di classificazione binaria o multiclasse.
Facile!
8. ETICHETTA
Chiamata anche label, in inglese. Etichettare una classe significa darle un nome riconoscibile. Il nome può sovrapposrsi alla classe o destrutturarla ulteriormente. Tornando all’analogia della classe, se ci immaginiamo una classe delle medie, ci vengono in mente subito e con vari livelli di disagio adolescenziale i gruppetti di raggazzetti e ragazzete simili: nei primi 2000 quando ho fatto io le medie c’erano i nerd, i truzzi, gli emo, i figli di papà. Ecco, queste sono le etichette: sotto-caratterizzazioni delle classi, che il modello può provare a predire per essere ancora più preciso nella sua previsione.
Se preferiamo un esempio nella manutenzione, se la classe è il modo di guasto – ad esempio guasto meccanico – l’etichetta potrebbe essere guasto meccanico sulla linea 20.
9. QUERY
In italiano si dice interrogazione, ed è quella cosa che si fa quando si vogliono estrarre dati da un database. Anche noi facciamo query tutti i giorni cercando su Google.
Il data scientist, di solito, quando parla di query sta pensando ad azioni specifiche su SQL, MongoDB o altri database per la storicizzazione dei dati. La sua query è probabilmente utile a tirare fuori un dataset da utilizzare per la costruzione di un modello, oppure per una dashboard particolare.
10. GRIDSEARCH
Abbiamo detto che gli iperparametri sono selezionati manualmente. Per evitare di dover investire 157 giorni solo per trovare la combinazione migliore di iperparametri, esistono strategie diverse per ottimizzare anche loro tramite procedure semi-automatiche.
Una delle più utilizzate è il gridsearch, ovvero la ricerca su un reticolo. Se si hanno ad esempio 2 iperparametri da ottimizzare – numero di layer e numero di neuroni – si può chiedere al gridsearch di testare tutte le combinazioni possibili tra diversi set di parametri, e di selezionare il migliore.
Ad esempio, se voglio sperimentare reti con 1, 2 o 3 layer nascosti e 120, 130, 140 e 150 neuroni per layer, avrò 12 diverse strutture da testare su cui il grdsearch può fare i suoi test.
Ci sono modalità ancora più performanti del gridsearch, come ad esempio il random search o gli algoritmi genetici, utili per non fermarsi a numeri predefiniti dall’utente ma esplorare tutto il campo di esistenza delle soluzioni senza perdere troppo tempo.
Quizzettone
Ora che avete il vocabolario, vi lascio un esercizio. Provate a tradurre questa frase:
Il modello presenta metriche di test soddisfacenti, che suggeriscono l’assenza di overfitting. Le etichette per ogni classe sono state definite in fase di progetto, e la query è stata predisposta di conseguenza. La rete neurale costruita è caratterizzata da 2 layer da 152 neuroni l’uno. l’ottimizzazione dei parametri è stata fatta tramite cross-validation mentre gli iperparametri sono stati selezionati tramite gridsearch.
Il datascientist che presenta i risultati cercando di confonderti. Ha cercato un modo per inserire anche residuo, ma non c’entrava nulla con l’esempio…