Vai al contenuto principale
Machine Learning

Apprendimento automatico supervisionato

Scopri cos'è l'apprendimento automatico supervisionato, come si confronta con quello non supervisionato e come funzionano alcuni algoritmi essenziali di apprendimento supervisionato
Moez Ali's photo
Moez Ali
Aggiornato · 8 min leggi

Scopri con l'IA

ChatGPTClaudePerplexity

Crea il tuo account gratuito

Pratica and corso your progress.

Continua Con Google
Continuando, accetti i nostri Termini di utilizzo, la nostra Informativa sulla privacy e che i tuoi dati siano conservati negli Stati Uniti.

Introduzione

L'apprendimento automatico supervisionato è un tipo di apprendimento automatico che impara la relazione tra input e output. Gli input sono noti come feature o "variabili X" e l'output è generalmente indicato come target o "variabile y". Il tipo di dati che contiene sia le feature sia il target è noto come dati etichettati. È la differenza chiave tra apprendimento supervisionato e non supervisionato, due tipologie di machine learning molto diffuse. In questo tutorial imparerai:

  • Cos'è l'apprendimento automatico supervisionato
  • Apprendimento supervisionato vs. non supervisionato
  • Apprendimento semi-supervisionato
  • Algoritmi di apprendimento supervisionato:
    • Regressione lineare
    • Albero decisionale
    • K-nearest neighbors
    • Random forest
    • Naive Bayes
  • Esempio di codice Python per l'apprendimento supervisionato

Cos'è l'apprendimento automatico supervisionato?

L'apprendimento automatico supervisionato impara schemi e relazioni tra dati di input e di output. È definito dal suo uso di dati etichettati. Un dato etichettato è un dataset che contiene molti esempi di Feature e Target. L'apprendimento supervisionato utilizza algoritmi che imparano la relazione tra Feature e Target a partire dal dataset. Questo processo è detto Training o Fitting. 

Esistono due tipi di algoritmi di apprendimento supervisionato:

  1. Classificazione
  2. Regressione

Apprendimento automatico supervisionato

Fonte immagine: https://www.mathworks.com/help/stats/machine-learning-in-matlab.html

Classificazione

La classificazione è un tipo di apprendimento supervisionato in cui gli algoritmi imparano dai dati a prevedere un risultato o un evento futuro. Per esempio:

Una banca può avere un dataset di clienti contenente cronologia creditizia, prestiti, dettagli sugli investimenti, ecc. e potrebbe voler sapere se un cliente andrà in default. Nei dati storici avremo Feature e Target. 

  • Le Feature saranno attributi di un cliente come cronologia creditizia, prestiti, investimenti, ecc.
  • Il Target rappresenterà se un determinato cliente è andato in default in passato (di solito indicato con 1 o 0 / True o False / Sì o No). 

Gli algoritmi di classificazione vengono utilizzati per prevedere esiti discreti; se l'esito può assumere due valori possibili come True o False, Default o No Default, Sì o No, si parla di classificazione binaria. Quando l'esito contiene più di due valori possibili, si parla di classificazione multiclasse. Esistono molti algoritmi di machine learning utilizzabili per compiti di classificazione. Alcuni di questi sono:

  • Regressione logistica
  • Classificatore ad albero decisionale
  • Classificatore K-nearest neighbor
  • Classificatore random forest
  • Reti neurali

Regressione

Regressione

La regressione è un tipo di apprendimento supervisionato in cui gli algoritmi imparano dai dati a prevedere valori continui come vendite, stipendio, peso o temperatura. Per esempio:

Dato un dataset contenente feature di una casa come dimensione del lotto, numero di camere da letto, numero di bagni, quartiere, ecc., e il prezzo della casa, un algoritmo di regressione può essere addestrato per imparare la relazione tra le feature e il prezzo dell'immobile.

Esistono molti algoritmi di machine learning utilizzabili per compiti di regressione. Alcuni di questi sono:

  • Regressione lineare
  • Regressore ad albero decisionale
  • Regressore K-nearest neighbor
  • Regressore random forest
  • Reti neurali

Fonte immagine: https://static.javatpoint.com/tutorial/machine-learning/images/regression-vs-classification-in-machine-learning.png

Apprendimento supervisionato vs. non supervisionato

Tipo di dati

La principale differenza tra apprendimento supervisionato e apprendimento automatico non supervisionato è che l'apprendimento supervisionato utilizza dati etichettati. I dati etichettati sono dati che contengono sia le Feature (variabili X) sia il Target (variabile y). 

Nell'apprendimento supervisionato, l'algoritmo impara iterativamente a prevedere la variabile target date le feature e si corregge per fornire la risposta corretta al fine di "imparare" dal dataset di training. Questo processo è detto Training o Fitting. I modelli supervisionati in genere producono risultati più accurati rispetto a quelli non supervisionati, ma richiedono un intervento umano iniziale per identificare correttamente i dati. Se le etichette nel dataset non sono corrette, gli algoritmi supervisionati impareranno le informazioni sbagliate.

I modelli non supervisionati, invece, lavorano in modo autonomo per identificare la struttura intrinseca di dati non etichettati. È importante tenere a mente che la validazione delle variabili di output richiede comunque un certo livello di coinvolgimento umano. Per esempio, un modello non supervisionato può determinare che i clienti che fanno acquisti online tendono a comprare più articoli della stessa categoria nello stesso momento. Tuttavia, un analista umano dovrebbe verificare che abbia senso che un motore di raccomandazione abbini l'Articolo X con l'Articolo Y. 

Casi d'uso

Due casi d'uso rilevanti per l'apprendimento supervisionato sono la classificazione e la regressione. In entrambi i compiti un algoritmo supervisionato impara dai dati di training a prevedere qualcosa. Se la variabile prevista è discreta come "Sì" o "No", 1 o 0, "Frode" o "Nessuna frode", allora serve un algoritmo di classificazione. Se la variabile prevista è continua come vendite, costo, stipendio, temperatura, ecc., allora serve un algoritmo di regressione.

Il clustering e il rilevamento di anomalie sono due casi d'uso importanti nell'apprendimento non supervisionato. Per saperne di più sul clustering, dai un'occhiata a questo articolo. Se vuoi approfondire l'apprendimento non supervisionato, scopri questo interessante corso di DataCamp. Imparerai a raggruppare, trasformare, visualizzare ed estrarre insight da dataset non etichettati usando scikit-learn e scipy.

Obiettivi

L'obiettivo dell'apprendimento supervisionato è prevedere risultati su nuovi dati basandosi su un modello che ha imparato da un dataset di training etichettato. Il tipo di risultati che puoi aspettarti è noto in anticipo sotto forma di dati etichettati. L'obiettivo di un algoritmo non supervisionato è ricavare insight da grandi quantità di dati senza etichette esplicite. Anche gli algoritmi non supervisionati imparano dal dataset di training, ma i dati di training non contengono etichette.

Complessità

L'apprendimento automatico supervisionato è più semplice rispetto a quello non supervisionato. I modelli non supervisionati in genere richiedono un ampio set di training per ottenere i risultati desiderati, rendendoli computazionalmente complessi.

Supervisionato vs Non supervisionato

Fonte immagine: https://www.sharpsightlabs.com/blog/supervised-vs-unsupervised-learning/

Apprendimento semi-supervisionato

L'apprendimento semi-supervisionato è un tipo relativamente nuovo e meno diffuso di machine learning che, durante l'addestramento, combina una grande quantità di dati non etichettati con una piccola quantità di dati etichettati. L'apprendimento semi-supervisionato si colloca tra l'apprendimento supervisionato (con dati di training etichettati) e quello non supervisionato (dati di training non etichettati). 

L'apprendimento semi-supervisionato offre molte applicazioni reali. In molti settori c'è scarsità di dati etichettati. Poiché coinvolgono annotatori umani, attrezzature specializzate o studi costosi e dispendiosi in termini di tempo, le etichette (variabile target) possono essere difficili da ottenere.

L'apprendimento semi-supervisionato ha due tipologie:

  1. apprendimento transduttivo
  2. apprendimento induttivo

Semi-supervisionato

Fonte immagine: https://www.enjoyalgorithms.com/blogs/supervised-unsupervised-and-semisupervised-learning

Algoritmi di apprendimento supervisionato

In questa sezione vedremo alcuni algoritmi comuni per l'apprendimento supervisionato:

Regressione lineare

La regressione lineare è uno degli algoritmi di machine learning più semplici disponibili; viene utilizzata per imparare a prevedere un valore continuo (variabile dipendente) in base alle feature (variabili indipendenti) nel dataset di training. Il valore della variabile dipendente, che rappresenta l'effetto, è influenzato dalle variazioni della variabile indipendente.

Se ricordi la "retta di regressione" dei tempi della scuola, è esattamente ciò che è la regressione lineare. Prevedere il peso di una persona in base alla sua altezza è un esempio semplice di questo concetto.

Regressione lineare

Fonte immagine: http://primo.ai/index.php?title=Linear_Regression

PRO

CONTRO

Semplice, facile da capire e interpretare

Facile da overfittare

Funziona molto bene per dati linearmente separabili

Presuppone linearità tra feature e variabile target.

Regressione logistica

La regressione logistica è un caso particolare della regressione lineare in cui la variabile target (y) è discreta/categorica, ad esempio 1 o 0, True o False, Sì o No, Default o No Default.  Si usa il logaritmo degli odds come variabile dipendente. Usando una funzione logit, la regressione logistica fa previsioni sulla probabilità che si verifichi un evento binario.

Regressione logistica

Per approfondire l'argomento, dai un'occhiata a questo ottimo articolo di DataCamp: Understanding Logistic Regression in Python Tutorial.

PRO

CONTRO

Semplice, facile da capire e interpretare

Overfitting

Ben calibrata per le probabilità in output

Fa fatica a catturare relazioni complesse

Albero decisionale

Gli algoritmi ad albero decisionale sono un tipo di modello strutturato ad albero di probabilità che separa iterativamente i dati per classificare o fare previsioni in base ai risultati del set di domande precedente. Il modello analizza i dati e fornisce risposte alle domande per aiutarti a prendere decisioni più informate.

Potresti, per esempio, usare un albero decisionale in cui le risposte Sì o No servono per scegliere una determinata specie di uccello in base a elementi come il piumaggio, la capacità di volare o nuotare, il tipo di becco, e così via.

Albero decisionale

Fonte immagine: https://aigraduate.com/decision-tree-visualisation---quick-ml-tutorial-for-beginners/

PRO

CONTRO

Molto intuitivo e facile da spiegare

Instabile: un piccolo cambiamento nei dati di training può causare grandi differenze nelle previsioni.

Gli alberi decisionali non richiedono molta preparazione dei dati come alcuni modelli lineari.

Soggetti a overfitting

Per saperne di più sul Machine Learning con modelli basati su alberi in Python, dai un'occhiata a questo corso interessante di DataCamp. In questo corso imparerai a usare modelli basati su alberi e ensemble per regressione e classificazione con scikit-learn.

K-nearest neighbors

K-nearest neighbors è un metodo statistico che valuta la vicinanza di un punto dati a un altro per decidere se i due punti possono essere raggruppati insieme. La vicinanza dei punti dati rappresenta il grado in cui sono simili tra loro.

Per esempio, supponiamo di avere un grafico con due gruppi distinti di punti dati posizionati vicino tra loro e chiamati rispettivamente Gruppo A e Gruppo B. Ciascuno di questi gruppi sarebbe rappresentato da un insieme di punti sul grafico. Quando aggiungiamo un nuovo punto, l'appartenenza di quell'istanza dipenderà da quale gruppo è più vicino al nuovo punto.

K-nearest neighbors

Fonte: https://towardsdatascience.com/getting-acquainted-with-k-nearest-neighbors-ba0a9ecf354f

PRO

CONTRO

Non fa assunzioni sui dati

Richiede molto tempo per l'addestramento

Intuitivo e semplice

KNN funziona bene con un numero ridotto di feature ma, man mano che il numero di feature cresce, fatica a prevedere con precisione.

Random forest

La random forest è un altro esempio di algoritmo basato su alberi, proprio come gli alberi decisionali. A differenza dell'albero decisionale, che consiste di un singolo albero, la random forest utilizza più alberi decisionali per prendere decisioni, creando di fatto una foresta di alberi.

Lo fa combinando diversi modelli per produrre previsioni e può essere usata sia per classificazione sia per regressione.

Random forest

Fonte: https://blog.tensorflow.org/2021/05/introducing-tensorflow-decision-forests.html

PRO

CONTRO

Le random forest gestiscono facilmente relazioni non lineari nei dati.

Difficili da interpretare a causa dei molteplici alberi.

Le random forest effettuano implicitamente la selezione delle feature

Le random forest sono computazionalmente costose per dataset di grandi dimensioni.

Naive Bayes

Il teorema di Bayes è una formula matematica utilizzata per calcolare le probabilità condizionate, e Naive Bayes è un'applicazione di quella formula. La probabilità che un esito si verifichi dato che un altro evento è già avvenuto è detta probabilità condizionata.

Prevede che le probabilità per ciascuna classe appartengano a una specifica classe e che la classe con la probabilità più alta sia considerata la più probabile.

Naive Bayes

Fonte immagine: https://www.kdnuggets.com/2019/10/introduction-artificial-neural-networks.html

PRO

CONTRO

L'algoritmo è molto veloce.

Assume che tutte le feature siano indipendenti.

È semplice e facile da implementare

L'algoritmo incontra il "problema della frequenza zero", per cui assegna probabilità zero a una variabile categoriale se la sua categoria non era presente nel dataset di training.

Esempio di codice Python per l'apprendimento supervisionato

In questa parte useremo scikit-learn in Python per addestrare un modello di regressione logistica (classificazione) su un dataset fittizio. Trovi il Notebook completo qui.

```

# create fake binary classification dataset with 1000 rows and 10 features

from sklearn.datasets import make_classification

X, y = make_classification(n_samples = 1000, n_features = 10, n_classes = 2)




# check shape of X and y

X.shape, y.shape




# train test split

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=42)




# import and initialize logistic regression model

from sklearn.linear_model import LogisticRegression

lr = LogisticRegression()




# fit logistic regression model

lr.fit(X_train, y_train)




# generate hard predictions on test set

y_pred = lr.predict(X_test)

y_pred




# evaluate accuracy score of the model

from sklearn.metrics import accuracy_score

accuracy_score(y_test, y_pred)

```

Se vuoi imparare l'apprendimento supervisionato in R, dai un'occhiata a questo corso di DataCamp: Supervised Learning in R. In questo corso imparerai le basi del machine learning per la classificazione nel linguaggio R.

Conclusione

Negli ultimi anni il machine learning ha cambiato radicalmente il modo in cui facciamo business. Un'innovazione radicale che distingue il machine learning da altre strategie di automazione è l'abbandono della programmazione basata su regole. Grazie alle tecniche di apprendimento supervisionato, gli ingegneri possono sfruttare i dati senza addestrare esplicitamente le macchine a risolvere i problemi in un modo specifico.

Nell'apprendimento supervisionato, la soluzione attesa a un problema potrebbe non essere nota per i dati futuri, ma può essere nota e catturata in un dataset storico; il compito degli algoritmi di apprendimento supervisionato è imparare quella relazione dai dati storici per prevedere un esito, un evento o un valore in futuro.

In questo articolo abbiamo costruito una comprensione di base di cosa sia l'apprendimento supervisionato e di come differisca da quello non supervisionato. Abbiamo anche rivisto alcuni algoritmi comuni nell'apprendimento supervisionato. Tuttavia, ci sono molte cose di cui non abbiamo parlato, come la valutazione dei modelli, la cross-validation o l'ottimizzazione degli iperparametri. Se vuoi approfondire uno di questi argomenti e potenziare ulteriormente le tue competenze, dai un'occhiata a questi corsi interessanti:

Domande frequenti

Quali sono due tipi comuni di apprendimento supervisionato?

Classificazione e regressione sono due tipi comuni di apprendimento supervisionato. La classificazione si usa per prevedere esiti discreti come "Promosso" o "Bocciato", "True" o "False", "Default" o "No Default". La regressione, invece, si usa per prevedere quantità o valori continui come vendite, stipendio, costo, ecc.

Qual è la differenza principale tra apprendimento supervisionato e non supervisionato?

La differenza principale tra apprendimento supervisionato e non supervisionato riguarda i dati. Per l'apprendimento supervisionato devi avere dati etichettati, mentre per quello non supervisionato non servono dati etichettati.

La previsione di serie storiche è apprendimento supervisionato?

Sì, la previsione di serie storiche è apprendimento supervisionato, dove si prevede il valore successivo data una sequenza di numeri. È un compito di apprendimento supervisionato.

Il Natural Language Processing (NLP) è apprendimento supervisionato o non supervisionato?

Può essere entrambe le cose. Dipende da come è formulato il problema. Per esempio, prevedere il tipo di documento testuale è con tutta probabilità un compito supervisionato; d'altra parte, se il caso d'uso è raggruppare documenti simili in base al testo contenuto nel documento, questo caso specifico è noto come Topic Modeling ed è completamente non supervisionato.

Il clustering è apprendimento supervisionato o non supervisionato?

Per i compiti di clustering non servono dati etichettati, quindi è apprendimento non supervisionato.

Esistono algoritmi diversi per l'apprendimento supervisionato e non supervisionato?

Sì, gli algoritmi sono completamente diversi.

Quali sono alcuni algoritmi comuni per l'apprendimento supervisionato?

Regressione lineare, albero decisionale, reti neurali, support vector machine sono alcuni algoritmi comuni per l'apprendimento supervisionato.

Argomenti
Machine Learning

Corsi di Machine Learning

Corso

Capire il Machine Learning

2 ore
313.7K
Un'introduzione all'apprendimento automatico senza bisogno di programmare.
Vedi i dettagliInizia Il Corso

Crea il tuo account gratuito

Pratica and corso your progress.

Continua Con Google
Continuando, accetti i nostri Termini di utilizzo, la nostra Informativa sulla privacy e che i tuoi dati siano conservati negli Stati Uniti.
Mostra altro
Correlato

blog

I 15 migliori server MCP remoti che ogni AI builder dovrebbe conoscere nel 2026

Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Abid Ali Awan's photo

Abid Ali Awan

15 min

blog

Tokenizzazione nel NLP: come funziona, sfide e casi d'uso

Guida al preprocessing NLP nel machine learning. Copriamo spaCy, i transformer di Hugging Face e come funziona la tokenizzazione in casi d'uso reali.
Abid Ali Awan's photo

Abid Ali Awan

10 min

blog

Che cos'è Snowflake? Guida per principianti alla piattaforma dati cloud

Esplora le basi di Snowflake, la piattaforma dati cloud. Scopri la sua architettura, le sue funzionalità e come integrarla nelle tue pipeline di dati.
Tim Lu's photo

Tim Lu

12 min

Mostra altro