L’apprendimento automatico è la scienza (e l’arte) di programmare i computer in modo che possano imparare dai dati.
campo di studio che dà ai computer la capacità di imparare senza essere esplicitamente programmati. – Arthur Samuel, 1959
Una definizione migliore:
Si dice che un programma per computer impara dall’esperienza E rispetto a qualche compito T e qualche misura di prestazione P, se la sua prestazione su T, misurata da P, migliora con l’esperienza E. – Tom Mitchell, 1997
Per esempio, il tuo filtro antispam è un programma di apprendimento automatico che può imparare a segnalare lo spam dopo aver ricevuto esempi di email di spam che sono segnalate dagli utenti, ed esempi di email regolari non spam (chiamate anche “ham”). Gli esempi che il sistema usa per imparare sono chiamati set di allenamento. In questo caso, il compito (T) è quello di segnalare lo spam per le nuove email, l’esperienza (E) sono i dati di allenamento, e la misura della performance (P) deve essere definita. Per esempio, si può usare il rapporto di email classificate correttamente come P. Questa particolare misura di performance è chiamata accuratezza ed è spesso usata nei compiti di classificazione perché è un approccio di apprendimento supervisionato.
Dive DeeperAn Introduction to Machine Learning for Beginners
Supervised Learning
Nell’apprendimento supervisionato, gli algoritmi imparano da dati etichettati. Dopo aver compreso i dati, l’algoritmo determina quale etichetta dovrebbe essere data ai nuovi dati associando modelli ai nuovi dati non etichettati.
L’apprendimento supervisionato può essere diviso in due categorie: classificazione e regressione.
La classificazione predice la categoria a cui appartengono i dati.
Alcuni esempi di classificazione includono il rilevamento dello spam, la previsione del churn, l’analisi del sentimento, il rilevamento della razza del cane e così via.
La regressione predice un valore numerico basato su dati osservati in precedenza.
Alcuni esempi di regressione includono la predizione del prezzo della casa, la predizione del prezzo delle azioni, la predizione dell’altezza-peso e così via.
Scavalca in profonditàUn tour dei 10 migliori algoritmi per i neofiti dell’apprendimento automatico
Classificazione
La classificazione è una tecnica per determinare a quale classe appartiene un dipendente sulla base di una o più variabili indipendenti.
La classificazione è usata per predire risposte discrete.
Regressione logistica
La regressione logistica è un po’ come la regressione lineare, ma è usata quando la variabile dipendente non è un numero ma qualcos’altro (ad es, una risposta “sì/no”). Si chiama regressione ma esegue una classificazione basata sulla regressione e classifica la variabile dipendente in una delle due classi.
La regressione logistica è usata per la previsione di output che è binario, come detto sopra. Per esempio, se una società di carte di credito costruisce un modello per decidere se emettere o meno una carta di credito ad un cliente, esso modellerà se il cliente sarà “inadempiente” o “non inadempiente” sulla sua carta.
In primo luogo, la regressione lineare viene eseguita sulla relazione tra variabili per ottenere il modello. La soglia per la linea di classificazione è assunta a 0,5.
K-Nearest Neighbors (K-NN)
L’algoritmo K-NN è uno degli algoritmi di classificazione più semplici e viene utilizzato per identificare i punti dati che sono separati in diverse classi per prevedere la classificazione di un nuovo punto campione. K-NN è un algoritmo di apprendimento non parametrico e pigro. Classifica i nuovi casi sulla base di una misura di somiglianza (ad es, funzioni di distanza).
K-NN funziona bene con un piccolo numero di variabili di input (p), ma fatica quando il numero di input è molto grande.
Support Vector Machine (SVM)
Support vector è usato sia per la regressione che per la classificazione. Si basa sul concetto di piani di decisione che definiscono i confini della decisione. Un piano di decisione (iperpiano) è quello che separa tra un insieme di oggetti che hanno diverse appartenenze di classe.
Esegue la classificazione trovando l’iperpiano che massimizza il margine tra le due classi con l’aiuto dei vettori di supporto.
L’apprendimento dell’iperpiano in SVM è fatto trasformando il problema usando un po’ di algebra lineare (es, l’esempio sopra è un kernel lineare che ha una separabilità lineare tra ogni variabile).
Per dati di dimensioni più elevate, altri kernel sono usati come punti e non possono essere classificati facilmente. Sono specificati nella prossima sezione.
Kernel SVM
Kernel SVM prende una funzione kernel nell’algoritmo SVM e la trasforma nella forma richiesta che mappa i dati su una dimensione superiore che è separabile.
I tipi di funzioni kernel sono:
- SVM lineare è quello di cui abbiamo parlato prima.
- In kernel polinomiale, il grado del polinomio deve essere specificato. Permette linee curve nello spazio di input.
- Nel kernel a funzione di base radiale (RBF), è usato per variabili separabili non linearmente. Per la distanza, viene utilizzata la distanza metrica euclidea al quadrato. L’utilizzo di un valore tipico del parametro può portare a un overfitting dei nostri dati. E’ usato di default in sklearn.
- Il kernel sigmoide, simile alla regressione logistica è usato per la classificazione binaria.
Il kernel trick usa la funzione kernel per trasformare i dati in uno spazio delle caratteristiche di dimensione superiore e rende possibile la separazione lineare per la classificazione.
Radial Basis Function (RBF) Kernel
La regione di decisione RBF kernel SVM è in realtà anche una regione di decisione lineare. Ciò che il kernel RBF SVM fa in realtà è creare combinazioni non lineari di caratteristiche per sollevare i campioni in uno spazio di caratteristiche più alto dove un confine di decisione lineare può essere usato per separare le classi.
Quindi, la regola generale è: usare SVM lineari per problemi lineari, e kernel non lineari come il kernel RBF per problemi non lineari.
Naive Bayes
Il classificatore naive Bayes è basato sul teorema di Bayes con le ipotesi di indipendenza tra predittori (cioè, presuppone che la presenza di una caratteristica in una classe sia indipendente da qualsiasi altra caratteristica). Anche se queste caratteristiche dipendono l’una dall’altra, o dall’esistenza delle altre caratteristiche, tutte queste proprietà sono indipendenti. Così, il nome ingenuo Bayes.
Basato su naive Bayes, Gaussian naive Bayes è usato per la classificazione basata sulla distribuzione binomiale (normale) dei dati.
- P(class|data) è la probabilità posteriore della classe (target) dato il predittore (attributo). La probabilità che un punto dati abbia una delle due classi, dato il punto dati. Questo è il valore che stiamo cercando di calcolare.
- P(class) è la probabilità anteriore della classe.
- P(data|class) è la probabilità, che è la probabilità del predittore data la classe.
- P(dati) è la probabilità a priori del predittore o probabilità marginale.
Steps
1. Calcolare la Probabilità Priore
P(classe) = Numero di punti dati nella classe/Numero totale di osservazioni
P(giallo) = 10/17
P(verde) = 7/17
2. Calcolare la probabilità marginale
P(dati) = Numero di punti dati simili all’osservazione/Numero totale di osservazioni
P(?) = 4/17
Il valore è presente nel controllo delle due probabilità.
3. Calcolare la probabilità
P(dati/classe) = Numero di osservazioni simili alla classe/n. totale di punti nella classe.
P(?/giallo) = 1/7
P(?/verde) = 3/10
4. Probabilità posteriore per ogni classe
5. Classificazione
La probabilità più alta, la classe appartiene a quella categoria come da sopra 75% di probabilità il punto appartiene alla classe verde.
Multinomiale, Bernoulli naive Bayes sono gli altri modelli usati nel calcolo delle probabilità. Così, un modello di Bayes ingenuo è facile da costruire, senza una complicata stima iterativa dei parametri, il che lo rende particolarmente utile per serie di dati molto grandi.
Classificazione ad albero di decisione
L’albero di decisione costruisce modelli di classificazione o regressione sotto forma di una struttura ad albero. Suddivide un set di dati in sottoinsiemi sempre più piccoli, mentre allo stesso tempo un albero decisionale associato viene sviluppato in modo incrementale. Il risultato finale è un albero con nodi di decisione e nodi foglia. Segue la struttura dell’algoritmo Iterative Dichotomiser 3(ID3) per determinare la suddivisione.
Entropia e information gain sono usati per costruire un albero decisionale.
Entropia
L’entropia è il grado o la quantità di incertezza nella casualità degli elementi. In altre parole, è una misura dell’impurità.
Intuitivamente, ci dice della prevedibilità di un certo evento. L’entropia calcola l’omogeneità di un campione. Se il campione è completamente omogeneo l’entropia è zero, e se il campione è equamente diviso ha un’entropia di uno.
Il guadagno informativo
Il guadagno informativo misura il cambiamento relativo di entropia rispetto all’attributo indipendente. Cerca di stimare l’informazione contenuta da ogni attributo. La costruzione di un albero decisionale consiste nel trovare l’attributo che restituisce il più alto guadagno informativo (cioè i rami più omogenei).
Dove Gain(T, X) è il guadagno di informazione applicando la caratteristica X. Entropy(T) è l’entropia dell’intero insieme, mentre il secondo termine calcola l’entropia dopo aver applicato la caratteristica X.
Information gain classifica gli attributi da filtrare in un dato nodo dell’albero. La classifica si basa sulla più alta entropia di guadagno informativo in ogni divisione.
Lo svantaggio di un modello ad albero decisionale è l’overfitting, in quanto cerca di adattare il modello andando più in profondità nel set di allenamento e riducendo così l’accuratezza del test.
L’overfitting negli alberi decisionali può essere minimizzato potando i nodi.
Metodi ensemble per la classificazione
Un modello ensemble è un gruppo di modelli. Tecnicamente, i modelli ensemble comprendono diversi modelli di apprendimento supervisionato che sono addestrati individualmente e i risultati sono fusi in vari modi per ottenere la predizione finale. Questo risultato ha un potere predittivo più alto rispetto ai risultati di qualsiasi algoritmo di apprendimento che lo costituisce in modo indipendente.
Classificazione random forest
Il classificatore random forest è un algoritmo ensemble basato sul bagging, cioè sull’aggregazione bootstrap. I metodi ensemble combinano più di un algoritmo dello stesso tipo o diverso per classificare gli oggetti (ad es, un ensemble di SVM, naive Bayes o alberi decisionali, per esempio.)
L’idea generale è che una combinazione di modelli di apprendimento aumenta il risultato complessivo selezionato.
Gli alberi decisionali profondi possono soffrire di overfitting, ma le foreste casuali impediscono l’overfitting creando alberi su sottoinsiemi casuali. La ragione principale è che prende la media di tutte le predizioni, che annulla le distorsioni.
La foresta casuale aggiunge ulteriore casualità al modello mentre cresce gli alberi. Invece di cercare la caratteristica più importante mentre si divide un nodo, cerca la caratteristica migliore tra un sottoinsieme casuale di caratteristiche. Questo risulta in un’ampia diversità che generalmente si traduce in un modello migliore.
Classificazione con Boosting radiante
Il classificatore boosting radiante è un metodo ensemble di boosting. Il Boosting è un modo per combinare (ensemble) apprendenti deboli, principalmente per ridurre gli errori di previsione. Invece di creare un pool di predittori, come nel bagging, il boosting produce una cascata di essi, dove ogni output è l’input per l’allievo seguente. Tipicamente, in un algoritmo di bagging gli alberi sono cresciuti in parallelo per ottenere una previsione media tra tutti gli alberi, dove ogni albero è costruito su un campione di dati originali. Il Gradient boosting, d’altra parte, adotta un approccio sequenziale per ottenere previsioni invece di parallelizzare il processo di costruzione degli alberi. Nel gradient boosting, ogni albero decisionale predice l’errore dell’albero decisionale precedente – aumentando così (migliorando) l’errore (gradiente).
Lavoro del Gradient Boosting
- Inizializzare le previsioni con un semplice albero decisionale.
- Calcolare il valore residuo (previsione effettiva).
- Costruire un altro albero di decisione poco profondo che predice il residuo basato su tutti i valori indipendenti.
- Aggiornare la previsione originale con la nuova previsione moltiplicata per il tasso di apprendimento.
- Ripeti i passi da due a quattro per un certo numero di iterazioni (il numero di iterazioni sarà il numero di alberi).
Guarda questo post: Gradient Boosting From Scratch
Prestazioni dei modelli di classificazione
Matrice di confusione
Una matrice di confusione è una tabella che viene spesso utilizzata per descrivere le prestazioni di un modello di classificazione su un insieme di dati di test di cui sono noti i valori veri. Si tratta di una tabella con quattro diverse combinazioni di valori previsti ed effettivi nel caso di un classificatore binario.
La matrice di confusione per un problema di classificazione multiclasse può aiutare a determinare i modelli di errore.
Per un classificatore binario:
Un vero positivo è un risultato dove il modello prevede correttamente la classe positiva. Allo stesso modo, un vero negativo è un risultato in cui il modello predice correttamente la classe negativa.
Falso positivo & Falso negativo
I termini falso positivo e falso negativo sono usati per determinare quanto bene il modello stia predicendo rispetto alla classificazione. Un falso positivo è un risultato in cui il modello predice erroneamente la classe positiva. E un falso negativo è un risultato in cui il modello predice erroneamente la classe negativa. Più valori ci sono nella diagonale principale, migliore è il modello, mentre l’altra diagonale dà il risultato peggiore per la classificazione.
Falso positivo
Un esempio in cui il modello ha predetto erroneamente la classe positiva. Per esempio, il modello ha dedotto che un particolare messaggio email era spam (la classe positiva), ma quel messaggio email in realtà non era spam. E’ come un segnale di avvertimento che l’errore dovrebbe essere corretto in quanto non è una preoccupazione molto seria rispetto al falso negativo.
Falso positivo (errore di tipo I) – quando si rifiuta un’ipotesi nulla vera
Falso negativo
Un esempio in cui il modello ha previsto erroneamente la classe negativa. Per esempio, il modello ha dedotto che un particolare messaggio email non era spam (la classe negativa), ma quel messaggio email era effettivamente spam. È come un segnale di pericolo che l’errore dovrebbe essere corretto presto perché è più grave di un falso positivo.
Falso negativo (errore di tipo II) – quando si accetta una falsa ipotesi nulla.
Questa immagine illustra perfettamente la metrica di cui sopra. I risultati del test dell’uomo sono un falso positivo poiché un uomo non può essere incinto. I risultati del test della donna sono un falso negativo perché lei è chiaramente incinta.
Dalla matrice di confusione, possiamo dedurre l’accuratezza, la precisione, il richiamo e il punteggio F-1.
Precisione
La precisione è la frazione di previsioni che il nostro modello ha azzeccato.
La precisione può anche essere scritta come
La sola precisione non racconta tutta la storia quando si lavora con un set di dati sbilanciati in classi, dove c’è una disparità significativa tra il numero di etichette positive e negative. Precisione e richiamo sono metriche migliori per valutare i problemi di sbilanciamento delle classi.
Precisione
Su tutte le classi, la precisione è quanto abbiamo previsto correttamente.
La precisione dovrebbe essere la più alta possibile.
Richiamo
Su tutte le classi positive, il richiamo è quanto abbiamo previsto correttamente. È anche chiamato sensibilità o tasso di vero positivo (TPR).
Richiamo dovrebbe essere il più alto possibile.
F-1 Score
È spesso conveniente combinare precisione e richiamo in una singola metrica chiamata punteggio F-1, in particolare se hai bisogno di un modo semplice per confrontare due classificatori. Il punteggio F-1 è la media armonica della precisione e del richiamo.
La media regolare tratta tutti i valori allo stesso modo, mentre la media armonica dà molto più peso ai valori bassi, punendo così maggiormente i valori estremi. Di conseguenza, il classificatore otterrà un alto punteggio F-1 solo se sia il richiamo che la precisione sono alti.
Curva Operatore Ricevente (ROC) &Area Sotto la Curva (AUC)
La curva ROC è un’importante metrica di valutazione della classificazione. Ci dice quanto bene il modello ha previsto accuratamente. La curva ROC mostra la sensibilità del classificatore tracciando il tasso di veri positivi al tasso di falsi positivi. Se il classificatore è eccezionale, il tasso di veri positivi aumenterà, e l’area sotto la curva sarà vicina a uno. Se il classificatore è simile all’indovinare casuale, il tasso di veri positivi aumenterà linearmente con il tasso di falsi positivi. Migliore è la misura dell’AUC, migliore è il modello.
Curva del profilo di precisione cumulativa
Il CAP di un modello rappresenta il numero cumulativo di risultati positivi lungo l’asse delle y rispetto al corrispondente numero cumulativo di parametri classificatori lungo l’asse delle x. Il CAP si distingue dalla caratteristica operativa del ricevitore (ROC), che traccia il tasso di vero-positivo contro il tasso di falso-positivo. La curva CAP è usata raramente rispetto alla curva ROC.
Considera un modello che predice se un cliente acquisterà un prodotto. Se un cliente viene selezionato a caso, c’è una probabilità del 50% che compri il prodotto. Il numero cumulativo di elementi per i quali il cliente acquista salirebbe linearmente verso un valore massimo corrispondente al numero totale di clienti. Questa distribuzione è chiamata CAP “casuale”. È la linea blu nel diagramma qui sopra. Una previsione perfetta, d’altra parte, determina esattamente quale cliente comprerà il prodotto, in modo tale che il cliente massimo che compra la proprietà sarà raggiunto con un numero minimo di selezione del cliente tra gli elementi. Questo produce una linea ripida sulla curva del PAC che rimane piatta una volta raggiunto il massimo, che è il PAC “perfetto”. È anche chiamata la linea “ideale” ed è la linea grigia nella figura sopra.
Alla fine, un modello dovrebbe prevedere dove massimizza le previsioni corrette e si avvicina alla linea del modello perfetto.