X
    Categories: blog

Machine Learning: la scienza delle decisioni automatiche

Questo articolo è la parte 4 di 4 contenuti nella serie Data Science


Auto a guida autonoma di Google

In pochi decenni il Machine Learning ha rivoluzionato moltissimi aspetti della nostra vita, dalle auto a guida autonoma agli assistenti vocali, e promette in futuro di cambiare totalmente il mondo per come lo conosciamo. Il fatto che le macchine possano apprendere in autonomia da un lato permette di potenziare le macchine, ma dall’altro potenzia anche le nostre capacità di apprendere e analizzare i dati del mondo che ci circonda. Questo è certamente l’aspetto più interessante per la data science.

Metodi di apprendimento

Nel Machine Learning esistono almeno tre macro-aree, che si differenziano per come trattano l’attributo di cui fare un modello, ovvero la target class o il target score:

  • L’apprendimento supervisionato (supervised learning) sfrutta una serie di attributi per approssimare target score o target class in dei modelli di regressione o classificazione.  Questo tipo di Machine Learning, che ottiene tipicamente dei modelli molto buoni per la predictive analytics, è applicabile solo quando target score o target class sono ben definiti e annotati in quantità sufficiente. Ad esempio in Natural Language Processing questo approccio è molto utilizzato per la predizione di nomi di entità dal testo (che vengono annotati a mano), oppure nell’opinion mining (che usa spesso i giudizi numerici delle recensioni come target score per fare modelli predittivi del giudizio dal testo). Ci sono anche altri tipi di apprendimento supervisionato come il time series forecasting, il Deep Learning e l’ensemble learning (o model blending). Il time series forecasting è il processo di creazione di modelli di regressione per approssimare un target scoresu più punti temporali, come giorni, annualità o mensilità. Tipicamente la correttezza delle previsioni diminuisce dopo alcuni punti temporali, come ad esempio nelle previsioni meteorologiche, che sono molto accurate fino a tre giorni, e molto meno accurate per i giorni successivi. L’ensemble learning è il processo di classificazione e regressione con meta-modelli che generalizzano le caratteristiche di più modelli. Questo tipo di apprendimento è molto utile per ottimizzare le predizioni nel caso di problemi complessi. Per esempio fondendo modelli che catturano informazioni diverse sugli attributi è possibile ottenere performance migliori che usando singoli modelli. La flessibilità di questo metodo di Machine Learning lo rende molto usato in diversi ambiti, specialmente in ambito di software security (intrusion detection, fraud detection) ma anche per il decision making in ambito finanziario. L’apprendimento supervisionato, il forecasting e l’ensemble learning sono tutti approcci molto utili alla data science, specialmente quando sono disponibili molti dati annotati.

Mappa dei metodi usati in Machine Learning

Il deep learning invece è un processo supervisionato che automatizza l’estrazione di grandi quantità di attributi dai dati per poi classificare in maniera supervisionata per mezzo di reti neurali. Il fatto di estrarre gli attributi dai dati in maniera automatica rende il deep learning applicabile in molti tipi di situazioni, ad esempio viene applicato con successo in computer vision e speech recognition, ma impedisce il controllo sugli attributi ed è facilmente soggetto alla maledizione della dimensionalità, richiedendo un numero di istanze molto grande. Le sue caratteristiche rendono il deep learning molto utile in ambito di applicazioni industriali, ma molto meno in data science.

  • L’apprendimento non supervisionato (unsupervised learning) non prevede target class o target score, ma comprende processi di esplorazione dello spazio degli attributi. Il clustering permette di individuare gruppi di istanze simili all’interno dei dati ed è spesso usato per fare segmentazione dei consumatori nel marketing o user profiling nei sistemi di raccomandazione.  L’association rule mining estrae regolarità associative tra gli attributi sotto forma di regole if-then e viene utilizzato in Business Intelligence per fare analisi degli acquisti (market basket analysis) o della navigazione nei siti web. L’attribute selection e la dimensionality reduction sono tecniche che prevedono il confronto di attributi per valutare il loro potere predittivo e dunque la selezione gli attributi migliori nella predizione di target class o target score. In questi processi vengono utilizzati strumenti di derivazione statistica come l’analisi delle correlazioni che abbiamo visto parlando di Business Intelligence. Essendo frutto di processi molto esplorativi, i modelli creati con approccio non supervisionato sono molto più difficili da valutare rispetto a quelli di tipo supervisionato, ma sono molto utili alla data science.
  • L’apprendimento per rinforzo (reinforcement learning) è un processo di automazione in cui target class o target score vengono generati da un modello che si auto-aggiorna interagendo con dati nuovi. Questi dati possono essere prodotti da un utente (come nel caso dell’interazione uomo-macchina o nel gaming) oppure da un modello che valuta le proprie predizioni misurandone la confidence (come ad esempio nella robotica). Fanno parte di questa categoria l’online learning, processo di apprendimento in cui i dati diventano disponibili incrementalmente, e il semi-supervised learning, in cui i clusters o le previsioni fatte da un modello vengono poi usate come target class o target score in un processo supervisionato. Questo approccio permette di ottenere buoni modelli anche quando i dati annotati sarebbero scarsi per il supervised learning. Per la data science il semi-supervised learning è particolarmente interessante, perché permette di fare valutazioni dei clusters usando alcuni dati annotati, quindi di capire se i clusters hanno un significato, sfruttandoli poi come annotazioni automatiche per ottenere modelli supervisionati estremamente accurati.

Valutare i modelli non supervisionati

Nel Machine Learning non supervisionato la valutazione dei modelli è molto più problematica. Ad esempio per valutare il clustering esistono due metodi:

  • modalità intrinseca: il risultato del clustering viene valutato sulla base dei dati che sono stati raggruppati in cluster, senza confronto con altri attributi o target class. Esistono delle metriche che vengono utilizzate per questo scopo, come il Silhouette coefficient e il Dunn index; il problema di questo tipo di valutazione sta nel fatto che assegna il punteggio migliore all’algoritmo che produce raggruppamenti con un’elevata somiglianza interna e una bassa somiglianza con gli altri gruppi. Lo svantaggio è che così facendo vengono premiati solo gli algoritmi di clustering che seguono questo criterio, come i K-means.

Esempi di cluster valutabili con la Purity
  • modalità estrinseca: i risultati del clustering vengono confrontati con una target class (ma non con un target score) o comunque un qualche tipo di attributo non usato per il raggruppamento. Ci sono molte metriche utilizzate per valutare i clusters rispetto a un attributo specifico. Un esempio è la semplice correttezza: ovvero il numero delle istanze della stessa classe che finiscono in un cluster e che misura quanto cluster e classi corrispondono. Un’altra misura molto nota è la purezza (purity), che misura quanto un cluster contiene una singola classe,ovvero un preciso valore dell’attributo valutato. Più un cluster conterrà istanze con valori dell’attributo target differenti, peggiore sarà la purity e viceversa. In ogni caso la valutazione estrinseca dei cluster è utile nel semi-supervised learning, e permette di capire la quantità di rumore in un dataset, ovvero delle istanze che non si riescono a classificare bene. Queste istanze tipicamente finiscono in cluster poco puri  o in piccoli cluster che non rappresentano alcuna classe.

La valutazione delle regole di associazione è molto meno problematica e si basa principalmente su quattro metriche, che vengono solitamente usate per fare un ranking delle regole migliori:

  • support: più è alto, più le associazioni sono frequenti.
  • confidence: più approssima 1 e più le associazioni sono regolari.
  • lift e leverage: più è alta, meno le regole sono casuali, la lift assume che gli attributi siano indipendenti gli uni dagli altri, la leverage conta che gli attributi abbiano delle dipendenze tra loro.
  • conviction: Più è alta, meno le regole sono casuali e più variegate.

Ancora diverso è il caso della valutazione per la selezione degli attributi. Gli algoritmi per la selezione possono  produrre automaticamente dei sottoinsiemi di attributi combinando le metriche di valutazione con la riduzione della ridondanza, oppure possono produrre un ranking degli attributi migliori secondo certe metriche. In questo caso è possibile prendere gli attributi nelle prime posizioni del ranking per selezionare il numero desiderato di attributi migliori e ridurre così la dimensionalità dello spazio. Il numero di attributi selezionabili dal ranking è arbitrario a seconda di quanto si vuole ridurre la dimensionalità dello spazio di attributi, riducendo così anche la maledizione della dimensionalità. Le metriche di valutazione sono molte e spesso derivano dalla statistica, le più utilizzate sono:

  • correlazione: ciascun attributo viene valutato in relazione ad una target class o un target score con la correlazione di Pearson’s. Possono essere valutati sia attributi numerici che attributi nominali e e si può sia ottenere un ranking o direttamente un sottoinsieme ottimizzato degli attributi più correlati con la target class e meno correlati tra loro.
  • rilievo (relief): gli attributi di alcune istanze prototipiche vengono valutati in relazione ad una target class o un target score utilizzando metriche di distanza nel piano cartesiano che rappresenta lo spazio degli attributi. Anche in questo caso viene prodotto un rank.
  • significatività (significance): ciascun attributo viene valutato in relazione ad una target class (ma non ad un target score) per mezzo della sua probabilità di non essere un predittore casuale. Questo valore corrisponde nel suo significato al p-value ed è usato per produrre ranking.
  • informatività (information gain): ciascun attributo viene valutato in relazione ad una target class (ma non ad un target score) per mezzo dell’informazione che porta sulla classe. Anche in questo caso viene prodotto un rank.
  • analisi dei componenti principali (Principal Component Analysis o PCA): permette di cambiare automaticamente lo spazio di attributi raggruppandoli per mezzo di correlazione e co-varianza. Anche in questo caso viene prodotto un rank, ma gli attributi vengono trasformati in gruppi di attributi, riducendo il rumore.
  • analisi semantica latente (Latent Semantic Analysis, o LSA): come la PCA permette di cambiare automaticamente lo spazio di attributi raggruppandoli secondo la loro occorrenza con attributi simili. Anche in questo caso viene prodotto un rank di gruppi di attributi nuovi. Viene utilizzata in Natural Language Processing come tecnica per individuare i topic dei documenti, definendoli come gruppi di parole simili in base ai contesti in cui appaiono. Torneremo su questo nel prossimo post.

Valutare i modelli supervisionati

Lo scopo primario del Machine Learning supervisionato è dunque generalizzare le informazioni contenute nei dati di addestramento in dei modelli utili per poi fare previsioni su dati nuovi. In questo tipo di approccio è fondamentale dunque valutare quanto i modelli creati saranno in grado di fare predizioni corrette sui nuovi dati.

Per prima cosa, c’è una differenza significativa tra classificazione e regressione: durante la classificazione gli algoritmi esplorano lo spazio di attributi per separare due o più classi di dati nominali, mentre nella regressione lo esplorano per trovare una generalizzazione a un dato numerico. Più di 50 anni di ricerca in Machine Learning hanno messo a punto un metodo sperimentale ben definito che valuta in modo molto preciso la qualità dei modelli che vengono creati. A livello teorico ci sono due fattori che incidono sulla qualità di un modello:

  • Lo scostamento (bias), dovuto ad unna scarsa capacità di generalizzare le informazioni essenziali o le relazioni tra attributi dai dati. Un modello con un elevato bias produce uno scarto tra valore previsto dal modello e il valore reale, finendo per avere basse performance di accuratezza (underfitting).  Come abbiamo visto, avere troppi attributi (la maledizione della dimensionalità) può aumentare il bias considerevolmente.
  • La varianza (variance), dovuti alla complessità di modelli che prevedono molta variabilità. Un’elevata varianza porta un modello a catturare informazioni troppo dettagliate in fase di addestramento per poi generare predizioni più probabilmente fallaci su dati nuovi (overfitting).

I modelli migliori sono quelli che riescono a ridurre sia lo scostamento sia la varianza, ma in genere i due fattori tendono a controbilanciarsi:  se riduciamo troppo la varianza, lo scostamento tenderà ad aumentare e viceversa. Nel caso della classificazione si può sfruttare la matrice di confusione (confusion matrix) per valutare se i modelli hanno dei punti deboli. La matrice di confusione confronta, per ciascuna classe, i valori previsti dal modello con quelli reali esistenti nei dati. In particolare le righe della matrice rappresentano le previsioni del modello e le colonne rappresentano i dati reali.


Curva ROC e curva Precision-Recall (PRC)

Grazie alla matrice di confusione è possibile capire quali sono le classi che il modello confonde maggiormente. Le metriche di valutazione sono differenti per la classificazione e la regressione. Nella classificazione si  usano misure come accuracyf-measureROC area e PRC area, detta anche curva di Precision-RecallPiù queste metriche hanno valori alti, più le performance dei modelli sono buone. la ROC misura bene il i valori predetti correttamente, mentre PRC e f-measure misurano la media armonica di precision e recall e dunque sono molto più sensibile sia sulla correttezza delle previsioni, sia sulla loro dispersione. L’accuracy è una via di mezzo e misura le predizioni corrette sul totale.

Nella regressione invece si usano prevalentemente Mean Absolute Error (MAE) o Root Mean Squared Error (RMSE), che sono misure di errore, dunque più sono basse e migliori sono i modelli. La MAE misura l’errore medio, mentre la RMSE misura l’errore dando più peso alla presenza di outliers, dunque è più sensibile alla presenza di valori estremi nella distribuzione che non vengono riprodotti dal modello.Ancora più importanti delle metriche sono i due metodi di valutazione per testare la qualità dei modelli:

  • train-test split: si addestrano i modelli su una parte dei dati (tipicamente il 70%) e si testa la qualità del modello sulla parte dei dati rimanente (di solito il 30%). Questo metodo è veloce, perché il modello viene valutato solo una volta, ed è molto sensibile alla varianza.
  • cross-validation (anche chiamata leave-one-out): si divide il dataset in diverse porzioni (tipicamente 10, la 10-fold cross-validation), di cui una viene usata per il test e le restanti per l’addestramento. Questa operazione viene fatta a rotazione, permettendo di valutare i modelli più volte. Questo metodo è più lento del precedente, ma più robusto.

Per valutare al meglio i modelli è utile avere un termine di confronto, una baseline, e tipicamente si usano i modelli più semplici possibili: la media nel caso di regressioni e la moda nel caso di classificazioni. Quando si ottiene una bassa accuracy rispetto alla baseline sia con train-test split che con cross-validation si ha underfitting. Questa condizione si può correggere usando più attributi da cui estrarre informazioni, oppure modelli più complessi. Viceversa si ha overfitting se l’accuracy è alta con train-test split e considerevolmente più bassa con la cross-validation. Per correggere questa situazione si possono usare meno attributi o più istanze.

Algoritmi: punti di forza e debolezze

Il Machine Learning supervisionato mette a disposizione moltissimi algoritmi supervisionati e non, e ciascuna famiglia ha le sue caratteristiche, con punti di forza e debolezza.

Gli algoritmi che permettono unicamente la classificazione sono i bayesiani. Si tratta di algoritmi basati sul teorema della probabiltà condizionata di Bayes, che comprendono Naive Bayes  (presuppongono l’indipendenza degli attributi, ma nonostante questo hanno applicazioni in ambito di text classification) e i Bayesian Networks (che permettono di tener conto delle dipendenze tra gli attributi e hanno applicazioni in campo medico). Questi algoritmi sono molto utili in caso di classificazione multi-classe, specialmente quando le classi hanno tra loro diverse probabilità di accadere. I bayesiani tendono a generare modelli lineari, con un alto bias e bassa varianza.


Esempio di trasformazione dello spazio di attributi per modellare classi non separabili linearmente

Esistono poi tantissimi tipi di algoritmi di classificazione/regressione. I più usati sono sono basati su funzioni. Si tratta di algoritmi matematici di classificazione e regressione che associano dei pesi numerici agli attributi in relazione al loro potere predittivo.  Essendo molto versatili sono utilizzati in moltissimi ambiti. Questi algoritmi includono la regressione lineare (che separa linearmente le classi nominali o generalizza i valori numerici su un piano cartesiano multidimensionale) e i Support Vector Machines (che trovano la linea migliore con cui separare o generalizzare lo spazio multidimensionale degli attributi, e sono in grado di trasformarlo per separare con funzioni polinomiali anche spazi non linearmente separabili). I modelli che producono funzioni lineari tendenzialmente hanno un bias alto e una bassa varianza, mentre le funzioni polinomiali producono modelli più complessi che riducono il bias e aumentano la varianza. Quando gli algoritmi basati su funzioni vengono messi in una struttura a rete si hanno le reti neurali, algoritmi di classificazione e regressione ispirati al funzionamento del cervello. Questi algoritmi includono principalmente varianti del Multi-Layer Perceptron, che vengono ottimizzati come reti ricorsive (rNN), memorizzando internamente i percorsi esplorati (Long-Short Term Memory, o LSTM). Generalizzando, questi algoritmi implementano una rete di percettroni con funzioni di attivazione o inibizione dei pesi su più livelli, capaci di calcolare i pesi delle combinazioni degli attributi più predittivi esplorando lo spazio di attributi in maniera non lineare. Essendo modelli non lineari riducono molto il bias e aumentano considerevolmente la varianza, esponendo al rischio di overfitting. Questi algoritmi sono alla base del Deep Learning, che ottimizza la classificazione o la regressione per mezzo di reti convoluzionali (cNN), che estraggono automaticamente moltissimi attributi ma aumentano il rischio di overfitting e richiedono efficaci tecniche di selezione degli attributi.


Esempio di albero decisionale

classificatori a regole sono algoritmi di classificazione e regressione sottovalutati, ma molto utili per la data science perché producono modelli interpretabili fatti di regole if-then. In questa famiglia ci sono algoritmi che minimizzano il numero di regole estratte, producendo modelli con più bias e meno varianza (Ripper), oppure algoritmi che trovano il maggior numero di regole possibili, come PART, che riduce il bias ma aumenta la varianza. Gli alberi decisionali come il C4.5 sono algoritmi che migliorano i classificatori a regole basandosi sul posizionamento degli attributi più informativi alla radice dell’albero. Le regole più generali sono quelle che comprendono dagli attributi alla radice, mentre le regole più dettagliate si trovano nelle foglie. Gli alberi decisionali con molte foglie tendono a ridurre il bias e aumentare la varianza, per questo si usa il pruning (potatura) che permette di ridurre la varianza togliendo le foglie. Anche gli algoritmi di random forest riducono la varianza, ma lo fanno costruendo diversi alberi con diversi posizionamenti degli attributi più informativi, per poi fare un meta-modello che ottimizza il rapporto tra bias e varianza.


Visualizzazione di modelli di k-Nearest Neighbors basati sulle distanze tra istanze

La creazione di meta-modelli è alla base dell’ensemble learning, famiglia di cui fa parte l’algoritmo di stacking, che riduce bias e varianza usando modelli come fossero attributi interpolati in una funzione. I k-Nearest Neighbors (kNN), come kStar e IBk, sono algoritmi di classificazione e regressione basati sulla distanza (k) tra le istanze nello spazio degli attributi. I modelli sono costituiti dalle istanze più esemplari, che possono essere usate per fare previsioni. Questo comporta che vengano formati modelli non lineari tendenti all’overfitting perché riducono fortemente il bias ma aumentano la varianza significativamente. Fortunatamente è possibile controllare il parametro della distanza per rendere i modelli più flessibili, riducendo la varianza.

Anche gli algoritmi di clustering si dividono in diverse famiglie. Ad esempio il clustering a centroidi, che comprende algoritmi come K-means, canopy farthestFirst, trova le istanze prototipiche e aggrega quelle più vicine in gruppi di forma circolare o ellittica, massimizzando la somiglianza a discapito della purezza.


Clusters ottenuti con EM

Il clustering gerarchico (algoritmi come SLINK cobweb) permette invece di avere gruppi annidati uno dentro l’altro senza ottimizzare nè somiglianza nè purezza, ma permettendo di visualizzare dendrogrammi di come i gruppi si formano, cosa molto utile per la data science. I clusterer basati su densità, come DBSCAN o OPTICS,  definiscono i confini dei gruppi come aree meno densamente popolate da istanze nello spazio di attributi. Questo permette di avere clusters non necessariamente di forma circolare e tendenti a massimizzare la purezza. I clusterer basati su distribuzioni di probabilità invece, come ad esempio l’algoritmo EM, sono in grado di ottimizzare somiglianza e purezza anche permettendo gruppi in parziale sovrapposizione.Solitamente è necessario dichiarare agli algoritmi il numero di gruppi da clusterizzare, ma in ciascuna famiglia c’è almeno un algoritmo capace di automatizzare la scelta del numero migliore di clusters per descrivere i dati. CanopyDBSCANcobweb e EM sono degli esempi. Il problema maggiore del clustering in un mondo di Big Data è la maledizione della dimensionalità, che rende difficile la valutazione della somiglianza tra le istanze a causa della sparsità degli attributi.

Il problema maggiore per gli algoritmi di estrazione delle regole di associazione è invece avere la massima efficienza nella ricerca di patterns all ‘interno di Big Data. Gli algoritmi più efficienti e utilizzati sono quelli basati su Apriori (che genera regole candidate e ne testa il supporto), su Eclat (che usa lattici per scomporre le regole più promettenti da testare) e su FP-growth (che costruisce liste di frequenza degli attributi e testa le regole con maggiore probabilità di avere supporto).

Ora abbiamo un quadro abbastanza completo, specialmente per quello che riguarda Machine Learning supervisionato e non supervisionato, ma abbiamo visto maneggiare solo dati nominali e numerici. Nel prossimo port vedremo come lavorare a partire da dati testuali, integrando tecniche di Natural Language processing al Machine Learning.

Fabio Celli: Dopo un dottorato in Natural Language Processing ho fatto ricerca sul riconoscimento automatico di personalità all’università di Trento, per poi approdare a Maggioli nel 2018. Mi occupo di Data Science e Machine Learning da prima che fossero al centro dell’attenzione.
Related Post