Gli algoritmi sono una parte molto importante del machine learning.
Devi capire come funzionano per fare progressi nel campo.
In questo post scoprirai un mini corso di algoritmi di apprendimento automatico diviso in 14 parti che puoi seguire per comprendere finalmente gli algoritmi di apprendimento automatico.
Copriremo molto terreno in questo corso e ti divertirai un mondo. Il nostro consiglio è quello di leggere una lezione al giorno e rifletterci su. Magari approfondirla leggendo articoli correlati sul nostro blog utilizzando la barra di ricerca.
A chi è rivolto questo corso?
Prima di iniziare, assicuriamoci che tu sia nel posto giusto.
Questo corso è per principianti curiosi di conoscere gli algoritmi di machine learning.
Questo corso non presuppone che tu sappia come scrivere codice.
Questo corso non presuppone un background in matematica.
Questo corso non presuppone un background in teoria dell'apprendimento automatico.
Questo mini-corso ti porterà in un tour guidato degli algoritmi di apprendimento automatico dalle basi e attraverso 10 tecniche principali.
Visiteremo ogni algoritmo per darti un'idea di come funziona, ma non approfondire troppo per mantenere le cose in movimento.
Se stai cercando guide più avanzate clicca qui
Panoramica del mini-corso
Diamo un'occhiata a cosa tratteremo nelle prossime 14 lezioni.
Potrebbe essere necessario tornare su questo post ancora e ancora, quindi potresti volerlo aggiungere ai segnalibri.
Questo mini-corso è suddiviso in quattro parti: Fondamenti di algoritmi, Algoritmi lineari, Algoritmi non lineari e Algoritmi di insieme.
Fondamenti di algoritmi
Lezione 1 : Come parlare di dati in Machine Learning
Lezione 2 : Principio alla base di tutti gli algoritmi
Lezione 3 : Algoritmi parametrici e non parametrici
Lezione 4 : Bias, varianza e trade-off
Algoritmi lineari
Lezione 5 : Regressione lineare
Lezione 6 : Regressione logistica
Lezione 7 : Analisi discriminante lineare
Algoritmi non lineari
Lezione 8 : Classificazione e alberi di regressione
Lezione 9 : Bayes
Lezione 10 : kNN
Lezione 11 : Imparare la quantizzazione dei vettori
Lezione 12 : SVM
Algoritmi d'insieme
Lezione 13 : foresta casuale
Lezione 14 : Boosting e AdaBoost
Lezione 1: Come parlare di dati in Machine Learning
I dati svolgono un ruolo importante nell'apprendimento automatico.
È importante comprendere e utilizzare la terminologia corretta quando si parla di dati.
Come pensi ai dati? Pensa a un foglio di calcolo. Hai colonne, righe e celle.
La prospettiva statistica dell'apprendimento automatico inquadra i dati nel contesto di un'ipotetica funzione (f) che l'algoritmo di apprendimento automatico mira ad apprendere. Date alcune variabili di input (Input) la funzione risponde alla domanda su quale sia la variabile di output prevista (Output).
Uscita = funzione_magica(Ingresso)
Gli ingressi e le uscite possono essere chiamati variabili o vettori.
La prospettiva dell'informatica utilizza una riga di dati per descrivere un'entità (come una persona) o un'osservazione su un'entità. In quanto tali, le colonne di una riga sono spesso denominate attributi dell'osservazione e le righe stesse sono chiamate istanze.
Lezione 2: Il principio alla base di tutti gli algoritmi
Esiste un principio comune alla base di tutti gli algoritmi di apprendimento automatico supervisionati per la modellazione predittiva.
Gli algoritmi di apprendimento automatico sono descritti come l'apprendimento di una funzione target (f) che mappa al meglio le variabili di input (X) su una variabile di output (Y).
Y = f(X)
Questo è un compito di apprendimento generale in cui vorremmo fare previsioni in futuro (Y) dati nuovi esempi di variabili di input (X). Non sappiamo che aspetto abbia la funzione (f) o la sua forma. Se lo facessimo, lo useremmo direttamente e non avremmo bisogno di impararlo dai dati usando algoritmi di apprendimento automatico.
Il tipo più comune di machine learning consiste nell'apprendere la mappatura Y = f(X) per fare previsioni di Y per il nuovo X. Questo è chiamato modellazione predittiva o analisi predittiva e il nostro obiettivo è fare le previsioni più accurate possibili.
Lezione 3: Algoritmi parametrici e non parametrici
Che cos'è un algoritmo di apprendimento automatico parametrico e in che cosa è diverso da un algoritmo di apprendimento automatico non parametrico?
I presupposti possono semplificare notevolmente il processo di apprendimento, ma possono anche limitare ciò che può essere appreso. Gli algoritmi che semplificano la funzione in una forma nota sono chiamati algoritmi di apprendimento automatico parametrici.
Gli algoritmi prevedono due passaggi:
Seleziona un modulo per la funzione.
Impara i coefficienti per la funzione dai dati di addestramento.
Alcuni esempi di algoritmi di apprendimento automatico parametrici sono la regressione lineare e la regressione logistica.
Gli algoritmi che non fanno ipotesi solide sulla forma della funzione di mappatura sono chiamati algoritmi di apprendimento automatico non parametrici. Non facendo supposizioni, sono liberi di apprendere qualsiasi forma funzionale dai dati di allenamento.
I metodi non parametrici sono spesso più flessibili, ottengono una migliore precisione ma richiedono molti più dati e tempo di addestramento.
Esempi di algoritmi non parametrici includono Support Vector Machines, Neural Networks e Decision Trees.
Lezione 4: Bias, varianza e trade-off
Gli algoritmi di apprendimento automatico possono essere meglio compresi attraverso la lente del compromesso tra bias e varianza.
I bias sono le ipotesi semplificative fatte da un modello per rendere più facile l'apprendimento della funzione target.
Generalmente gli algoritmi parametrici hanno un'elevata distorsione che li rende veloci da apprendere e più facili da capire ma generalmente meno flessibili. A loro volta hanno prestazioni predittive inferiori su problemi complessi che non soddisfano le ipotesi semplificative del bias degli algoritmi.
Gli alberi decisionali sono un esempio di algoritmo a bassa polarizzazione, mentre la regressione lineare è un esempio di algoritmo ad alta distorsione.
La varianza è la quantità che cambierà la stima della funzione target se sono stati utilizzati dati di addestramento diversi. La funzione target viene stimata dai dati di addestramento da un algoritmo di apprendimento automatico, quindi dovremmo aspettarci che l'algoritmo abbia una varianza, non zero.
L'algoritmo k-Nearest Neighbors è un esempio di algoritmo a varianza elevata, mentre l'analisi discriminante lineare è un esempio di algoritmo a bassa varianza.
L'obiettivo di qualsiasi algoritmo di machine learning di modellazione predittiva è ottenere una bassa distorsione e una bassa varianza. A sua volta, l'algoritmo dovrebbe ottenere buone prestazioni di previsione. La parametrizzazione degli algoritmi di apprendimento automatico è spesso una battaglia per bilanciare pregiudizi e varianze.
Aumentando la distorsione diminuirà la varianza.
Aumentando la varianza si riduce la distorsione.
Lezione 5: Algoritmo di regressione lineare
La regressione lineare è forse uno degli algoritmi più conosciuti e ben compresi nella statistica e nell'apprendimento automatico.
Non è una tecnica della statistica?
La modellazione predittiva riguarda principalmente la minimizzazione dell'errore di un modello o la realizzazione delle previsioni più accurate possibili, a scapito della spiegabilità. Prenderemo in prestito, riutilizzeremo e ruberemo algoritmi da molti campi diversi, comprese le statistiche, e li utilizzeremo a questi fini.
La rappresentazione della regressione lineare è un'equazione che descrive una retta che meglio si adatta alla relazione tra le variabili di input (x) e le variabili di output (y), trovando pesi specifici per le variabili di input detti coefficienti (B).
Per esempio:
y = B0 + B1 * x
Prevediamo y dato l'input x e l'obiettivo dell'algoritmo di apprendimento della regressione lineare è trovare i valori per i coefficienti B0 e B1.
Diverse tecniche possono essere utilizzate per apprendere il modello di regressione lineare dai dati, come una soluzione di algebra lineare per i minimi quadrati ordinari e l'ottimizzazione della discesa del gradiente.
La regressione lineare esiste da più di 200 anni ed è stata ampiamente studiata. Alcune buone regole pratiche quando si utilizza questa tecnica sono rimuovere variabili molto simili (correlate) e rimuovere il rumore dai dati, se possibile.
È una tecnica veloce e semplice e un buon primo algoritmo da provare.
Lezione 6: Algoritmo di regressione logistica
La regressione logistica è un'altra tecnica presa in prestito dall'apprendimento automatico dal campo della statistica. È il metodo di riferimento per i problemi di classificazione binaria (problemi con due valori di classe).
La regressione logistica è come la regressione lineare in quanto l'obiettivo è trovare i valori per i coefficienti che ponderano ciascuna variabile di input.
A differenza della regressione lineare, la previsione per l'output viene trasformata utilizzando una funzione non lineare chiamata funzione logistica.
La funzione logistica ha l'aspetto di una grande S e trasformerà qualsiasi valore nell'intervallo da 0 a 1. Ciò è utile perché possiamo applicare una regola all'output della funzione logistica per agganciare i valori a 0 e 1 (ad esempio IF inferiore a 0,5 quindi output 1) e prevedere un valore di classe.
A causa del modo in cui viene appreso il modello, le previsioni fatte dalla regressione logistica possono essere utilizzate anche come probabilità di una data istanza di dati appartenente alla classe 0 o alla classe 1. Ciò può essere utile su problemi per i quali è necessario fornire più motivazioni per una predizione.
Come la regressione lineare, la regressione logistica funziona meglio quando si rimuovono attributi non correlati alla variabile di output e attributi molto simili (correlati) tra loro.
È un modello veloce da imparare ed efficace sui problemi di classificazione binaria.
Lezione 7: Algoritmo di analisi discriminante lineare
La regressione logistica è un algoritmo di classificazione tradizionalmente limitato a soli problemi di classificazione a due classi. Se hai più di due classi, l'algoritmo di analisi discriminante lineare è la tecnica di classificazione lineare preferita.
La rappresentazione di LDA è piuttosto semplice. Consiste in proprietà statistiche dei tuoi dati, calcolate per ogni classe. Per una singola variabile di input questo include:
Il valore medio per ciascuna classe.
La varianza calcolata tra tutte le classi.
Le previsioni vengono effettuate calcolando un valore discriminante per ciascuna classe ed effettuando una previsione per la classe con il valore maggiore.
La tecnica presuppone che i dati abbiano una distribuzione gaussiana (curva a campana), quindi è una buona idea rimuovere in anticipo i valori anomali dai dati.
È un metodo semplice e potente per classificare i problemi di modellazione predittiva.
Lezione 8: Classificazione e alberi di regressione
Gli alberi decisionali sono un tipo importante di algoritmo per l'apprendimento automatico della modellazione predittiva.
La rappresentazione per il modello dell'albero decisionale è un albero binario. Questo è il tuo albero binario da algoritmi e strutture dati, niente di troppo sofisticato. Ogni nodo rappresenta una singola variabile di input (x) e un punto di divisione su quella variabile (supponendo che la variabile sia numerica).
I nodi foglia dell'albero contengono una variabile di output (y) che viene utilizzata per fare una previsione. Le previsioni vengono fatte percorrendo le divisioni dell'albero fino ad arrivare a un nodo foglia e produrre il valore della classe in quel nodo foglia.
Gli alberi sono veloci da imparare e molto veloci da fare previsioni. Sono inoltre spesso accurati per un'ampia gamma di problemi e non richiedono alcuna preparazione speciale per i dati.
Gli alberi decisionali hanno un'elevata varianza e possono fornire previsioni più accurate se utilizzati in un insieme, un argomento che tratteremo nella lezione 13 e nella lezione 14.
Lezione 9: Algoritmo Naive Bayes
Naive Bayes è un algoritmo semplice ma sorprendentemente potente per la modellazione predittiva.
Il modello è composto da due tipi di probabilità che possono essere calcolate direttamente dai dati di allenamento:
La probabilità di ogni classe.
La probabilità condizionata per ogni classe dato ogni valore x.
Una volta calcolato, il modello di probabilità può essere utilizzato per fare previsioni per nuovi dati utilizzando il teorema di Bayes.
Quando i tuoi dati sono a valori reali, è comune assumere una distribuzione gaussiana (curva a campana) in modo da poter stimare facilmente queste probabilità.
Naive Bayes è chiamato ingenuo perché presuppone che ogni variabile di input sia indipendente. Questo è un presupposto forte e non realistico per i dati reali, tuttavia, la tecnica è molto efficace su una vasta gamma di problemi complessi.
Lezione 10: Algoritmo K-Nearest Neighbors
L'algoritmo KNN è molto semplice e molto efficace.
La rappresentazione del modello per KNN è l'intero set di dati di addestramento.
Semplice vero?
Le previsioni per un nuovo punto dati vengono effettuate cercando nell'intero set di addestramento le K istanze più simili (le vicine) e riassumendo la variabile di output per quelle K istanze. Per la regressione questa potrebbe essere la variabile di output media, nella classificazione potrebbe essere il valore della classe mode (o più comune).
Il trucco sta nel come determinare la somiglianza tra le istanze di dati. La tecnica più semplice se i tuoi attributi sono tutti della stessa scala (tutti in pollici per esempio) consiste nell'utilizzare la distanza euclidea, un numero che puoi calcolare direttamente in base alle differenze tra ciascuna variabile di input.
KNN può richiedere molta memoria o spazio per archiviare tutti i dati, ma esegue un calcolo (o apprende) solo quando è necessaria una previsione, appena in tempo. Puoi anche aggiornare e curare le tue istanze di formazione nel tempo per mantenere le previsioni accurate.
L'idea di distanza o vicinanza può scomporsi in dimensioni molto elevate (molte variabili di input) che possono influire negativamente sulle prestazioni dell'algoritmo sul tuo problema. Questa è chiamata la maledizione della dimensionalità. Suggerisce di utilizzare solo quelle variabili di input che sono più rilevanti per prevedere la variabile di output.
Lezione 11: Apprendimento della quantizzazione dei vettori
Uno svantaggio di K-Nearest Neighbors è che è necessario aggrapparsi all'intero set di dati di addestramento.
L' algoritmo di quantizzazione del vettore di apprendimento (o LVQ in breve) è un algoritmo di rete neurale artificiale che consente di scegliere a quante istanze di addestramento aggrapparsi e di apprendere esattamente come dovrebbero apparire tali istanze.
Il vicino più simile (vettore la migliore corrispondenza) viene trovato calcolando la distanza tra ciascun vettore e la nuova istanza di dati. Il valore della classe o (valore reale in caso di regressione) per la migliore unità di corrispondenza viene quindi restituito come previsione.
I risultati migliori si ottengono ridimensionando i dati in modo che abbiano lo stesso intervallo, ad esempio tra 0 e 1.
Se scopri che KNN dà buoni risultati sul tuo set di dati, prova a utilizzare LVQ per ridurre i requisiti di memoria per l'archiviazione dell'intero set di dati di addestramento.
Lezione 12: Supportare le macchine vettoriali
Support Vector Machines sono forse uno degli algoritmi di machine learning più popolari e discussi.
Un iperpiano è una linea che divide lo spazio della variabile di input. In SVM, viene selezionato un iperpiano per separare al meglio i punti nello spazio delle variabili di input in base alla loro classe, classe 0 o classe 1.
In due dimensioni puoi visualizzarlo come una linea e supponiamo che tutti i nostri punti di input possano essere completamente separati da questa linea.
L'algoritmo di apprendimento SVM trova i coefficienti che si traducono nella migliore separazione delle classi dall'iperpiano.
La distanza tra l'iperpiano ei punti dati più vicini viene definita margine. L'iperpiano migliore o ottimale che può separare le due classi è la linea che ha il margine più grande.
Solo questi punti sono rilevanti nella definizione dell'iperpiano e nella costruzione del classificatore.
Questi punti sono chiamati vettori di supporto. Supportano o definiscono l'iperpiano.
In pratica, viene utilizzato un algoritmo di ottimizzazione per trovare i valori dei coefficienti che massimizzano il margine.
SVM potrebbe essere uno dei classificatori pronti all'uso più potenti e vale la pena provare sul tuo set di dati.
Lezione 13: foresta casuale
Random Forest è uno degli algoritmi di machine learning più popolari e più potenti. È un tipo di algoritmo di apprendimento automatico dell'insieme chiamato Bootstrap Aggregation o bagging.
Il bootstrap è un potente metodo statistico per stimare una quantità da un campione di dati. Come un mezzo. Prendi molti campioni dei tuoi dati, calcola la media, quindi fai la media di tutti i tuoi valori medi per darti una stima migliore del vero valore medio.
Nel bagging, viene utilizzato lo stesso approccio, ma invece per stimare interi modelli statistici, più comunemente alberi decisionali.
Vengono prelevati più campioni dei dati di addestramento, quindi vengono costruiti modelli per ciascun campione di dati. Quando è necessario fare una previsione per nuovi dati, ogni modello effettua una previsione e la media delle previsioni viene calcolata per fornire una stima migliore del vero valore di output.
La foresta casuale è una modifica a questo approccio in cui vengono creati alberi decisionali in modo che, anziché selezionare punti di divisione ottimali, vengano effettuate divisioni non ottimali introducendo la casualità.
I modelli creati per ciascun campione di dati sono quindi più diversi di quanto non sarebbero altrimenti, ma pur sempre accurati nei loro modi unici e diversi. Combinando le loro previsioni si ottiene una migliore stima del vero valore di output sottostante.
Se si ottengono buoni risultati con un algoritmo con varianza elevata (come gli alberi decisionali), spesso è possibile ottenere risultati migliori insaccando quell'algoritmo.
Lezione 14: Potenziamento e AdaBoost
Il boosting è una tecnica d'insieme che tenta di creare un classificatore forte da un numero di classificatori deboli.
Questo viene fatto costruendo un modello dai dati di addestramento, quindi creando un secondo modello che tenta di correggere gli errori del primo modello. I modelli vengono aggiunti fino a quando il training set non viene previsto perfettamente o viene aggiunto un numero massimo di modelli.
AdaBoost è stato il primo algoritmo di potenziamento di grande successo sviluppato per la classificazione binaria. È il miglior punto di partenza per comprendere il potenziamento. I moderni metodi di potenziamento si basano su AdaBoost, in particolare le macchine di potenziamento del gradiente stocastico.
AdaBoost viene utilizzato con alberi decisionali brevi. Dopo aver creato il primo albero, le prestazioni dell'albero su ciascuna istanza di addestramento vengono utilizzate per valutare quanta attenzione l'albero successivo creato dovrebbe prestare a ciascuna istanza di addestramento. Ai dati di allenamento difficili da prevedere viene assegnato più peso, mentre alle istanze facili da prevedere viene assegnato meno peso.
I modelli vengono creati in sequenza uno dopo l'altro, ciascuno aggiornando i pesi sulle istanze di addestramento che influiscono sull'apprendimento eseguito dall'albero successivo nella sequenza.
Dopo che tutti gli alberi sono stati costruiti, vengono fatte previsioni per i nuovi dati e le prestazioni di ciascun albero vengono ponderate in base alla precisione dei dati di addestramento.
Poiché viene prestata così tanta attenzione alla correzione degli errori da parte dell'algoritmo, è importante disporre di dati puliti con i valori anomali rimossi.
Conclusioni del mini-corso
Ce l'hai fatta. Molto bene! Prenditi un momento e guarda cosa hai imparato:
Hai scoperto come parlare di dati nell'apprendimento automatico e dei principi alla base di tutti gli algoritmi di modellazione predittiva.
Hai scoperto la differenza tra algoritmi parametrici e non parametrici e la differenza tra l'errore introdotto da bias e varianza.
Hai scoperto tre algoritmi di apprendimento automatico lineare: regressione lineare, regressione logistica e analisi discriminante lineare.
Sono stati introdotti 5 algoritmi non lineari: Classification and Regression Trees, Naive Bayes, K-Nearest Neighbors, Learning Vector Quantiization e Support Vector Machines.
Infine, hai scoperto due degli algoritmi di ensemble più popolari: Bagging con Decision Trees e Boosting con AdaBoost.
Non prendertela alla leggera, hai fatto molta strada in poco tempo. Questo è solo l'inizio del tuo viaggio con gli algoritmi di apprendimento automatico. Continua a esercitarti e a sviluppare le tue abilità.
Ti è piaciuto questo mini-corso? Hai domande o punti critici?
Condividilo con un tuo amico o collega.
Lascia un commento e facci sapere.
Comments