Ricordate il teorema No Free Lunch? No, non riguarda il cibo (ancora). Ma se avete fame, fate uno spuntino prima di leggere questo post – non voglio che sbaviate sulla vostra tastiera.

Vi ricordo che nessun algoritmo è ottimale sull’insieme di tutte le situazioni possibili. Gli algoritmi di apprendimento automatico sono strumenti delicati che si mettono a punto in base all’insieme di problemi, specialmente nell’apprendimento automatico supervisionato.

Oggi vedremo come funzionano gli algoritmi di classificazione popolari che ci aiutano, per esempio, a scegliere e ordinare pomodori meravigliosi e succosi.

Come funziona la classificazione

Ogni giorno prevediamo se una cosa può essere riferita a una particolare classe. Per fare un esempio, la classificazione ci aiuta a prendere decisioni quando raccogliamo pomodori in un supermercato (“verde”, “perfetto”, “marcio”). In termini di apprendimento automatico, assegniamo un’etichetta di una delle classi ad ogni pomodoro che teniamo in mano.

L’efficienza del vostro concorso di raccolta di pomodori (alcuni lo chiamerebbero un modello di classificazione) dipende dall’accuratezza dei suoi risultati. Più spesso andrete al supermercato voi stessi (invece di mandare i vostri genitori o la vostra dolce metà), più diventerete bravi a scegliere pomodori freschi e gustosi.

I computer fanno lo stesso! Perché un modello di classificazione impari a predire accuratamente i risultati, ha bisogno di molti esempi di allenamento.

4 tipi di classificazione

4 tipi di compiti di classificazione nell'apprendimento automatico

Binario

La classificazione binaria significa che ci sono due classi con cui lavorare che si relazionano tra loro come vero e falso. Immaginate di avere davanti a voi un’enorme scatola con pomodori gialli e rossi. Ma la vostra ricetta di pasta all’italiana dice che avete bisogno solo di quelli rossi.

Cosa fate? Ovviamente, si usa la codifica delle etichette e, in questo caso, si assegna 1 a “rosso” e 0 a “non rosso”. Ordinare i pomodori non è mai stato così facile.

Classificazione binaria

Multiclass

Cosa vedi in questa foto?

Pomodori

Pomodori rossi. Pomodori ciliegia. Pomodori cocktail. Pomodori Heirloom.

Non c’è bianco e nero qui, “normale” e “anormale” come nella classificazione binaria. Diamo il benvenuto a tutti i tipi di verdure (o bacche) meravigliose sulla nostra tavola.

Quello che probabilmente non sai, se non sei un fan della cucina di pomodori, è che non tutti i pomodori sono ugualmente buoni per lo stesso piatto. I pomodori rossi a bistecca sono perfetti per la salsa, ma non si mettono in salamoia. I pomodori ciliegia funzionano per le insalate ma non per la pasta. Quindi è importante sapere con cosa si ha a che fare.

La classificazione a più classi ci aiuta a ordinare tutti i pomodori dalla scatola, indipendentemente da quante classi ci siano.

Classificazione a più classi

Multi-label

La classificazione a più etichette si applica quando un input può appartenere a più di una classe, come una persona che è cittadina di due paesi.

Per lavorare con questo tipo di classificazione, è necessario costruire un modello che possa prevedere più output.

Hai bisogno di una classificazione multi-label per il riconoscimento degli oggetti nelle foto. Per esempio, quando è necessario identificare non solo i pomodori, ma anche diversi altri tipi di oggetti nella stessa immagine: mele, zucchine, cipolle, ecc.

Nota importante per tutti gli amanti del pomodoro: Non potete semplicemente prendere un algoritmo di classificazione binaria o multiclasse e applicarlo direttamente alla classificazione multi-label. Ma puoi usare:

Classificazione multietichetta

Puoi anche provare a usare un algoritmo separato per ogni classe per predire le etichette per ogni categoria.

Imbalanced

Lavoriamo con la classificazione Imbalanced quando gli esempi in ogni classe sono distribuiti in modo disuguale.

La classificazione Imbalanced è usata per software di rilevamento frodi e diagnosi medica. Trovare rari e squisiti pomodori coltivati biologicamente che sono accidentalmente rovesciati in un grande mucchio di pomodori da supermercato è un esempio di classificazione sbilanciata offerto da Gints, il nostro fantastico editore (se hai altri esempi, twittali).

Classificazione squilibrata

Ti consiglio di visitare il fantastico blog di Machine Learning Mastery dove puoi leggere i diversi tipi di classificazione e studiare molti altri materiali sull’apprendimento automatico.

Passi per costruire un modello di classificazione

Una volta che sai con che tipo di compito di classificazione hai a che fare, è il momento di costruire un modello.

  1. Seleziona il classificatore. Devi scegliere uno degli algoritmi di ML che applicherai ai tuoi dati.
  2. Allenamento. Devi preparare un set di dati di allenamento con risultati etichettati (più esempi ci sono, meglio è).
  3. Prevedere l’output. Usa il modello per ottenere dei risultati.
  4. Valutate il modello del classificatore. E’ una buona idea preparare un set di validazione di dati che non hai usato nell’addestramento per controllare i risultati.

Diamo ora un’occhiata agli algoritmi di classificazione più usati.

Gli algoritmi di classificazione più popolari

algoritmi di classificazione comuni

Scikit-Learn è una delle migliori librerie ML per Python. Quindi, se volete costruire il vostro modello, dategli un’occhiata. Fornisce accesso a classificatori ampiamente utilizzati.

Regressione logistica

La regressione logistica è usata per la classificazione binaria.

Questo algoritmo impiega una funzione logistica per modellare la probabilità che si verifichi un risultato. È più utile quando si vuole capire come diverse variabili indipendenti influenzano una singola variabile di risultato.

Domanda di esempio: I livelli di precipitazione e la composizione del suolo porteranno alla prosperità o alla morte prematura dei pomodori?

La regressione logistica ha dei limiti; tutti i predittori devono essere indipendenti e non devono esserci valori mancanti. Questo algoritmo fallirà quando non c’è una separazione lineare dei valori.

Naive Bayes

L’algoritmo Naive Bayes è basato sul teorema di Bayes. È possibile applicare questo algoritmo per la classificazione binaria e multiclasse e classificare i dati in base ai risultati storici.

Esempio di compito: devo separare i pomodori marci da quelli freschi in base al loro aspetto.

I vantaggi di Naive Bayes sono che questi algoritmi sono veloci da costruire: non richiedono un ampio set di allenamento e sono anche veloci rispetto ad altri metodi. Tuttavia, poiché le prestazioni degli algoritmi bayesiani dipendono dall’accuratezza dei suoi presupposti forti, i risultati possono potenzialmente rivelarsi molto cattivi.

Utilizzando il teorema di Bayes, è possibile dire come il verificarsi di un evento impatta la probabilità di un altro evento.

k-Nearest Neighbors

kNN sta per “k-nearest neighbor” ed è uno degli algoritmi di classificazione più semplici.

L’algoritmo assegna gli oggetti alla classe cui appartiene la maggior parte dei suoi vicini più vicini nello spazio multidimensionale delle caratteristiche. Il numero k è il numero di oggetti vicini nello spazio delle caratteristiche che sono confrontati con l’oggetto classificato.

Esempio: Voglio predire la specie del pomodoro dalle specie di pomodori simili ad esso.

Per classificare gli input utilizzando i vicini k-nearest, è necessario eseguire una serie di azioni:

  • Calcolare la distanza da ciascuno degli oggetti del campione di allenamento;
  • Selezionare k oggetti del campione di allenamento, la cui distanza è minima;
  • La classe dell’oggetto da classificare è la classe che ricorre più spesso tra i vicini k-nearest.

Albero di decisione

Gli alberi di decisione sono probabilmente il modo più intuitivo per visualizzare un processo decisionale. Per predire un’etichetta di classe di input, si parte dalla radice dell’albero. Dovete dividere lo spazio di possibilità in sottoinsiemi più piccoli basati su una regola di decisione che avete per ogni nodo.

Ecco un esempio:

esempio di albero di decisione

Continuate a dividere lo spazio di possibilità fino a raggiungere il fondo dell’albero. Ogni nodo di decisione ha due o più rami. Le foglie nel modello qui sopra contengono la decisione se una persona è o non è adatta.

Esempio: Hai un cesto di pomodori diversi e vuoi scegliere quello giusto per migliorare il tuo piatto.

Tipi di alberi decisionali

Ci sono due tipi di alberi. Sono basati sulla natura della variabile di destinazione:

  • Albero decisionale della variabile categorica.
  • Albero decisionale della variabile continua.

Quindi, gli alberi decisionali funzionano abbastanza bene sia con dati numerici che categorici. Un altro vantaggio dell’uso degli alberi decisionali è che richiedono poca preparazione dei dati.

Tuttavia, gli alberi decisionali possono diventare troppo complicati, il che porta all’overfitting. Uno svantaggio significativo di questi algoritmi è che piccole variazioni nei dati di addestramento li rendono instabili e portano ad alberi completamente nuovi.

Random Forest

I classificatori random forest usano diversi alberi di decisione su vari sottocampioni di dataset. Il risultato medio viene preso come predizione del modello, il che migliora l’accuratezza predittiva del modello in generale e combatte l’overfitting.

Di conseguenza, le foreste casuali possono essere utilizzate per risolvere problemi complessi di apprendimento automatico senza compromettere l’accuratezza dei risultati. Tuttavia, richiedono più tempo per formare una previsione e sono più difficili da implementare.

Leggi di più su come funzionano le foreste casuali nel blog Towards Data Science.

Support Vector Machine

Le macchine vettoriali di supporto usano un iperpiano in uno spazio N-dimensionale per classificare i punti dati. N qui è il numero di caratteristiche. Può essere, fondamentalmente, qualsiasi numero, ma più è grande, più diventa difficile costruire un modello.

Si può immaginare l’iperpiano come una linea (per uno spazio bidimensionale). Una volta superato lo spazio tridimensionale, diventa difficile per noi visualizzare il modello.

I punti di dati che cadono su lati diversi dell’iperpiano sono attribuiti a classi diverse.

Esempio: Un sistema automatico che ordina i pomodori in base alla loro forma, peso e colore.

L’iperpiano che scegliamo influenza direttamente la precisione dei risultati. Quindi, cerchiamo il piano che ha la massima distanza tra i punti dati di entrambe le classi.

Le SVM mostrano risultati accurati con una potenza di calcolo minima quando si hanno molte caratteristiche.

Sommando

Come potete vedere, l’apprendimento automatico può essere semplice come raccogliere le verdure nel negozio. Ma ci sono molti dettagli da tenere a mente se non si vuole rovinare tutto. Restate sintonizzati sul nostro blog, Twitter e Medium per altre interessanti letture sul machine learning.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.