Una introduzione visuale al machine learning
:
In apprendimento automatico (machine learning in Inglese), i computer applicano tecniche di apprendimento statistico per identificare automaticamente delle strutture nei dati. Queste tecniche possono essere usate per effettuare predizioni con elevata accuratezza.
Continua a scorrere. Usando dei dati che riportano informazioni sulle case, creeremo un modello di machine learning per distinguere la case in New York dalle case in San Francisco.
Scorri
Prima, però, alcune intuizioni
Assumiamo che si voglia determinare se una casa è in San Francisco o in New York. In machine learning, categorizzare i punti o le osservazioni è un processo di classificazione.
Dato che San Francisco è relativamente collinosa, l'elevazione della casa può essere un buon indicatore per distinguere le due città.
Basandosi sui dati relativi all'elevazione della casa, qui a destra, si può affermare che una casa al di sopra dei 73 metri dovrebbe essere classificata come una casa di San Francisco.
Aggiunta di sfumature
Aggiungendo un'altra dimensione si aggiungono più sfumature. Per esempio, gli appartementi di New York possono essere estramamente costosi per metro quadro.
Quindi visualizzando l'elevazione e il prezzo per metro quadro in un grafico di dispersione ci aiuta a a distinguere le case a bassa elevazione.
I dati suggeriscono che, tra le case con elevazione pari a o inferiori a 73 metri, quelle che costano più di $19,116.7 per metro quadro sono nella città di New York.
Le dimensioni nei set di dati sono chiamate features, predittori, o variabili.
Disegnare i confini di decisione
Si possono visualizzare le osservazioni con elevazione (>73 m) e il prezzo per metro quadro (>$19,116.7) come confini di regione nel grafico di dispersione. Le case mostrate nelle regioni di verde e blu rappresentano case in San Francisco e New York, rispettivamente.
Identificare i confini di decisione nei dati usando strumenti matematici è l'essenza dell'apprendimento statistico.
Ovviamente, si avrà bisogno di maggior informazione per distinguere le case con minor elevazione e minor prezzo per metro quadro.
Il dataset che stiamo usando per creare il modello ha 7 dimensioni diverse. Creare un modello è anche noto come addestrare un modello (training in Inglese).
Qui a destra, stiamo visualizzando le variabili in una matrice di grafici di dispersione per dimostrare la relazione tra ogni coppia di dimensione.
Ci sono delle chiare strutture (patterns) nei dati, ma i confini per delinearli non sono altrettano ovvi.
Ed ora, machine learning
Il machine learning entra in gioco quando si vogliono trovare dei pattern nei dati. I metodi di machine learning usano apprendimento statistico per indentificare i confini di decisione.
Un esempio di un metodo di machine learning è un albero di decisione (decision tree in Inglese). Gli alberi di decisione guardano ad una variabile alla volta e sono ragionevolmente accessibili (sebbene rudimentali) metodi di machine learning.
Trovare i confini di decisione migliori
Rivisitiamo il confine con elevazione a 73m precedentemente proposto per osservare come possiamo migliorare le nostre intuizioni.
Chiaramente, questo richiede una prospettiva diversa.
Trasformando la nostra visualizzazione in un istogramma, possiamo osservare meglio quanto frequenti le case si presentano ad ogni elevazione.
Mentre la casa più alta in New York è a 73m, la maggior parte di loro sembra avere un elevazione molto più bassa.
La prima biforcazione
Un albero di decisione usa istruzioni if-then per definire le strutture nei dati.
Per esempio, se (if) l'elevazione di una casa è al di sopra di un certo valore, allora (then) la casa è probabilmente in San Francisco.
In machine learning, queste istruzioni sono chiamate biforcazioni (forks), e esse dividono il dataset in due rami sulla base di alcuni valori.
Il valore tra le ramificazioni è chiamato punto di divisione (split point). Le case sulla sinistra di quel punto vengono categorizzate in un modo, mentre quelle sulla destra sono categorizzate in un altro. Un punto di divisione è considerato come confine per l'albero di decisione.
Compromessi
Scegliere un punto di divisione ha i suoi compromessi. La nostra divisione iniziale (~73 m) classifica incorrettamente alcune case di San Francisco come case di New York.
Osservando alla larga fetta verda del digramma a torta a sinistra, queste sono tutte le case di San Francisco che non vengono classificate correttamente (misclassified). Questi sono chiamati falsi negativi.
Tuttavia, un punto di divisione che intende catturare tutte le case di San Francisco includera, allo stesso modo, anche molte case New York. Questi sono chiamati falsi positivi.
La miglior divisione
Alla miglior divisione, il risultato di un ramo dovrebbe essere il più omogeneo (o puro) possibile. Ci sono molti metodi matematici che si possono scegliere per calcolare la miglior divisione.
Come possiamo ora osservare, anche la miglior divisione su una singola feature non separa completamente le case di San Francisco da quelle di New York.
Ricorsione
Per aggiungere un altro punto di divisione, l'algoritmo ripete il processo su un sotto set di dati. Questa ripetizione è chiamata ricorsione, ed è un concetto che appare frequentemente nei modelli di training.
L'istogramma sulla sinistra mostra la distribuzione di ogni sottoset ripetuto per ogni variabile.
La miglior divisione varierà in funzione di quale ramo dell'albero si sta guardando.
Per case a bassa elevazione, il presso per metro quadro, a $1061 per sqft, è la miglior variabile per la successiva istruzione if-then. Per case a alta elevazione, il prezzo è a $514,500
.Crescita di un albero
L'aggiunta di nuove biforcazioni e quindi di nuova informazione acconsente all'albero di accrescere la propria accuratezza in predizione.
Suddividendo un livello più in profondità, l'accuratezza dell'albero migliora dell'84%.
Aggiungendo molti più livelli, si raggiunge il 96%.
Si potrebbe continuare ad aggiungere ulteriori ramificazioni fintantoché le predizioni dell'albero raggiungono l'accuratezza del 100%, cosicché alla fine di ogni ramo, le case sono puramente in San Francisco o puramente in New York.
Questi ultimi rami dell'albero sono chiamati nodi foglia. I nostri modelli di alberi di decisione classificheranno le case in ogni nodo foglia in base alla classe di case che è in maggioranza.
Predizioni
Un modello di albero di decisione appena addestrato determina se una casa è in San Francisco o New York eseguendo ogni istanza attraverso i rami.
Qui si possono osservare i dati che sono stati usati per addestrare l'albero fluire attraverso l'albero stesso.
Questo insieme di dati è chiamato training data perche è stato usato per addestrare il modello.
Siccome abbiamo sviluppato l'albero fintantoché la sua accuratezza ha raggiunto il 100%, questo albero indentifica ogni istanza di training perfettamente con la città in cui si trova.
Confronto con la realtà
Ovviamente, quello che importa di più è che l'albero sia in grado di performare su istanze che non ha mai incontrato.
Per testare le performance dell'albero sui nuovi dati, abbiamo bisogno di applicarlo su dati che non ha mai incontrato in precedenza. Questo set di dati che non ha usato in precedenza è chiamato test data.
Idealmente, l'albero dovrebbe performare similmente sia sui dati su cui è stato addestrato che sui dati che non ha incontrato in precedenza.
Questo è tutt'altro che ideale.
Questi errori sono dovuti ad un eccessivo adattamento (overfitting). Il nostro modello ha imparato a trattare ogni dettaglio nel set di training come importante, anche dettagli che risultano essere irrilevanti.
L'overfitting è un concetto fondamentale nel machine learning e che verrà spiegato nel nostro prossimo post.
Ricapitoliamo
- Il machine learning identifica strutture usando l'apprendimento statistico con il quale è capace di scoprire i confini di decisione negli insiemi di dati. Si può usare per effettuare predizioni.
- Un metodo per effettuare le predizioni è chiamato albero di decisione, che usa una serie di istruzioni if-then per identificare i confini di decisione e definire i pattern nei dati.
- L'eccessivo adattamento accade quando alcuni dei confini di decisione sono basati su una distinzione che non fa alcuna differenza. Si può osservare se il modello è eccessivamente adattato andando a testare i dati nel modello.
Prossimamente
Nel nostro nuovo post, esploreremo l'overfitting, e come si relaziona con il fondamentale compromesso del machine learning.
Domande? Commenti? Non esitare a contattarci. Twittaci @r2d3us o scrivici a team@r2d3.us.
Infine, ringraziamo Angelo A. Salatino (LinkedIn, Twitter, Website) per essersi offerto di tradurre il testo per noi!
...oppure tieniti in contatto con l'email
Note
- I concetti di machine learning sono emersi attraverso molte discipline (informatica, statistica, ingegneria, psicologia, ecc.), e questo spiega le diverse nomenclature.
- Per apprendere di più su come calcolare la divisione ottimale, consulta il 'gini index' o 'cross entropy'
- Una ragione percui i computer sono così bravi ad applicare tecniche di apprendimento statistico è perché sono capaci di eseguire operazioni ripetitive, velocemente e senza annoiarsi.
- L'algoritmo descritto qui è di tipo greedy, perché egli ha un approccio top-down per suddividere i dati. In altre parole, va ad osservare le variabili che rendono ogni sottoset il più omogeneo al momento.
- Piazza il cursore sopra i punti per osservare il percorso che essi intraprendono all'interno dell'albero.
- Attenzione spoiler: la causa è il compromesso tra bias e varianza!