L’apprendimento non supervisionato, chiamato anche unsupervised learning, è una delle principali modalità attraverso cui i sistemi di machine learning possono analizzare i dati.
A differenza dell’apprendimento supervisionato, nel quale il modello viene addestrato utilizzando dati già associati a una risposta corretta, nell’apprendimento non supervisionato l'algoritmo lavora generalmente con dati non etichettati e cerca autonomamente strutture, gruppi, relazioni, somiglianze o anomalie.
Questo approccio è particolarmente utile quando disponiamo di grandi quantità di dati ma non abbiamo già una classificazione precisa degli elementi che li compongono.
In questa guida vedremo che cos’è l’apprendimento non supervisionato, come funziona, quali sono i principali algoritmi, quali differenze esistono rispetto all’apprendimento supervisionato e dove viene utilizzato nella pratica.
Che cos’è l’apprendimento non supervisionato?
L'apprendimento non supervisionato è una tecnica di machine learning nella quale un algoritmo analizza un insieme di dati senza ricevere, per ogni elemento, un'etichetta che indichi quale dovrebbe essere la risposta corretta.
L'obiettivo non è quindi semplicemente prevedere una risposta già conosciuta, ma scoprire informazioni e strutture presenti nei dati.
Per esempio, immaginiamo di avere informazioni su migliaia di clienti di un negozio online:
- età;
- frequenza degli acquisti;
- importo medio degli ordini;
- prodotti acquistati;
- numero di visite al sito;
- categorie preferite.
Se non abbiamo già assegnato ogni cliente a una determinata categoria, un algoritmo non supervisionato può analizzare questi dati e individuare gruppi di persone con caratteristiche simili.
Potrebbe, per esempio, emergere un gruppo di clienti che acquista frequentemente prodotti economici, un altro composto da clienti che effettuano pochi acquisti ma di valore elevato e un altro ancora formato da utenti che acquistano soprattutto durante determinati periodi dell'anno.
Questi gruppi non devono essere necessariamente definiti in anticipo da una persona: vengono individuati dall'algoritmo sulla base delle caratteristiche presenti nei dati.
Come funziona l'apprendimento non supervisionato?
Il funzionamento può essere semplificato in alcune fasi.
1. Raccolta dei dati
Il primo passaggio consiste nel raccogliere un insieme di dati sufficientemente significativo.
I dati possono essere:
- numeri;
- immagini;
- testi;
- informazioni sui clienti;
- dati provenienti da sensori;
- registrazioni di attività;
- dati finanziari;
- informazioni provenienti da siti web o applicazioni.
La qualità dei dati è importante perché un algoritmo può individuare solamente strutture che sono effettivamente presenti, almeno in qualche forma, nei dati analizzati.
2. Preparazione dei dati
Prima dell'analisi, i dati possono dover essere puliti e trasformati.
È possibile, per esempio, eliminare:
- valori errati;
- duplicati;
- informazioni incomplete;
- dati non pertinenti.
Può inoltre essere necessario normalizzare o standardizzare alcune variabili, soprattutto quando hanno scale molto differenti.
3. Analisi delle caratteristiche
L'algoritmo esamina le caratteristiche dei dati e cerca relazioni, somiglianze o differenze.
In questa fase non dispone necessariamente di una risposta predefinita.
4. Individuazione delle strutture
A seconda dell'algoritmo utilizzato, il sistema può cercare:
- gruppi di elementi simili;
- caratteristiche nascoste;
- relazioni tra variabili;
- anomalie;
- rappresentazioni più semplici dei dati.
5. Interpretazione dei risultati
Il risultato dell'algoritmo deve poi essere interpretato.
Questo passaggio è importante perché un gruppo individuato matematicamente non corrisponde automaticamente a una categoria reale e significativa.
Per esempio, un algoritmo potrebbe creare tre gruppi di clienti, ma sarà necessario capire perché quei clienti sono stati raggruppati insieme e se la suddivisione ha effettivamente un significato pratico.
Apprendimento supervisionato e non supervisionato: qual è la differenza?
La differenza fondamentale riguarda il tipo di dati utilizzato per l'apprendimento.
Nell'apprendimento supervisionato il modello riceve dati associati a una risposta o etichetta conosciuta.
Nell'apprendimento non supervisionato, invece, il modello lavora generalmente senza una variabile obiettivo già assegnata.
Possiamo immaginare la differenza attraverso un esempio.
Apprendimento supervisionato
Abbiamo fotografie di animali e ogni fotografia è già classificata:
- cane;
- gatto;
- cavallo;
- uccello.
Il modello impara a riconoscere le caratteristiche associate alle categorie.
Apprendimento non supervisionato
Abbiamo invece migliaia di fotografie senza etichette.
L'algoritmo può cercare di individuare gruppi di immagini che presentano caratteristiche simili, senza sapere in anticipo che quei gruppi dovrebbero chiamarsi "cani", "gatti" o "cavalli".
La distinzione è quindi importante:
supervisionato = imparare da esempi già etichettati
non supervisionato = scoprire strutture nei dati senza etichette predefinite
Che cos'è il clustering?
Uno dei compiti più importanti dell'apprendimento non supervisionato è il clustering, cioè il raggruppamento dei dati.
L'obiettivo del clustering è dividere gli elementi di un dataset in gruppi, chiamati cluster, in modo che gli elementi dello stesso gruppo siano relativamente simili tra loro.
Immaginiamo di avere un grande insieme di clienti.
L'algoritmo potrebbe individuare:
Cluster 1
- acquisti frequenti;
- importo medio elevato;
- alta fidelizzazione.
Cluster 2
- acquisti occasionali;
- importo medio basso;
- maggiore interesse per le promozioni.
Cluster 3
- pochi acquisti;
- prodotti appartenenti a una determinata categoria;
- attività concentrata in determinati periodi.
Il vantaggio è che non è necessario stabilire preventivamente tutte queste categorie.
Il K-means
Uno degli algoritmi di clustering più conosciuti è il K-means.
Il suo funzionamento consiste, in maniera semplificata, nel cercare di dividere i dati in un numero prestabilito di gruppi.
La lettera K indica proprio il numero di cluster che si desidera ottenere.
Se impostiamo:
K = 3
l'algoritmo cercherà di organizzare i dati in tre gruppi.
Il K-means utilizza dei centroidi, cioè punti che rappresentano il centro dei gruppi, e cerca di assegnare gli elementi ai cluster in base alla loro distanza. La documentazione di scikit-learn descrive il K-means come un metodo particolarmente adatto a cluster relativamente regolari e specifica anche alcuni suoi limiti, soprattutto quando i gruppi hanno forme molto diverse.
Un aspetto importante è che scegliere il numero corretto di cluster non è sempre semplice.
Clustering gerarchico
Un altro approccio è il clustering gerarchico.
In questo caso i dati possono essere organizzati secondo una struttura ad albero.
Si può partire da singoli elementi e procedere progressivamente alla loro aggregazione in gruppi sempre più grandi.
Il risultato può essere rappresentato attraverso un dendrogramma, che permette di visualizzare la struttura gerarchica dei raggruppamenti.
Questo metodo può essere utile quando interessa comprendere non soltanto quali elementi appartengono allo stesso gruppo, ma anche come i diversi gruppi sono collegati tra loro.
DBSCAN e altri algoritmi di clustering
Il K-means non è l'unico algoritmo disponibile.
Tra gli altri metodi troviamo:
- clustering gerarchico;
- DBSCAN;
- HDBSCAN;
- Mean Shift;
- Spectral Clustering;
- Gaussian Mixture Models;
- Affinity Propagation.
La scelta dell'algoritmo dipende dalle caratteristiche dei dati e dal problema che si vuole risolvere. La documentazione attuale di scikit-learn comprende numerosi metodi di clustering, tra cui K-means, DBSCAN, HDBSCAN, OPTICS, clustering gerarchico e clustering spettrale.
Che cos'è la riduzione della dimensionalità?
Un'altra importante applicazione dell'apprendimento non supervisionato è la riduzione della dimensionalità.
Un dataset può contenere un numero enorme di variabili.
Immaginiamo di analizzare un insieme di dati con:
- 10 caratteristiche;
- 100 caratteristiche;
- 1.000 caratteristiche;
- 10.000 caratteristiche.
Man mano che aumenta il numero delle variabili, l'analisi può diventare più complessa.
La riduzione della dimensionalità cerca di rappresentare i dati utilizzando un numero inferiore di dimensioni, mantenendo per quanto possibile le informazioni più importanti.
La PCA: Principal Component Analysis
Uno degli strumenti più conosciuti per la riduzione della dimensionalità è la PCA, cioè Principal Component Analysis o analisi delle componenti principali.
La PCA cerca combinazioni delle caratteristiche originali capaci di rappresentare una parte importante della variabilità presente nei dati.
In termini semplici, possiamo immaginare di avere un dataset molto complesso.
La PCA cerca di trovare una rappresentazione più compatta che permetta di conservare le informazioni più significative.
Questo può essere utile per:
- semplificare l'analisi;
- visualizzare dati complessi;
- ridurre il numero di variabili;
- velocizzare alcune elaborazioni;
- preparare i dati per altri algoritmi.
Apprendimento non supervisionato e rilevamento delle anomalie
L'apprendimento non supervisionato può essere utilizzato anche per individuare anomalie, cioè elementi che si comportano in modo molto diverso rispetto alla maggior parte dei dati.
Immaginiamo un sistema che registra milioni di operazioni.
La maggior parte delle operazioni potrebbe avere caratteristiche simili, mentre alcune potrebbero presentare comportamenti insoliti.
Un algoritmo può aiutare a individuare questi casi.
Il rilevamento delle anomalie può essere utilizzato in diversi contesti, tra cui:
- sicurezza informatica;
- analisi finanziaria;
- controllo industriale;
- monitoraggio dei sistemi;
- manutenzione predittiva;
- individuazione di comportamenti insoliti.
La documentazione di scikit-learn include infatti sia tecniche di novelty detection sia di outlier detection tra le attività legate all'apprendimento non supervisionato.
Apprendimento non supervisionato e intelligenza artificiale
L'apprendimento non supervisionato rappresenta un importante componente del machine learning, che a sua volta è una delle principali aree dell'intelligenza artificiale.
Possiamo quindi rappresentare il rapporto in questo modo:
Intelligenza artificiale
↓
Machine learning
↓
Apprendimento non supervisionato
All'interno dell'apprendimento non supervisionato troviamo diverse tecniche, tra cui:
- clustering;
- riduzione della dimensionalità;
- rilevamento delle anomalie;
- analisi di strutture nascoste nei dati;
- alcuni metodi di decomposizione e rappresentazione.
Dove viene utilizzato l'apprendimento non supervisionato?
Le applicazioni sono numerose.
Segmentazione dei clienti
Un'azienda può utilizzare il clustering per individuare gruppi di clienti con comportamenti simili.
Questo può aiutare a comprendere meglio il pubblico e a sviluppare strategie differenti per gruppi diversi.
Sistemi di raccomandazione
L'analisi delle somiglianze tra utenti, prodotti o comportamenti può contribuire alla costruzione di sistemi capaci di suggerire contenuti o prodotti.
Analisi delle immagini
Le tecniche non supervisionate possono essere utilizzate per individuare strutture e caratteristiche all'interno di immagini.
Analisi dei testi
Documenti e testi possono essere analizzati per individuare gruppi di contenuti simili oppure argomenti ricorrenti.
Sicurezza informatica
L'individuazione di comportamenti anomali può aiutare a riconoscere attività potenzialmente sospette.
Medicina e ricerca
L'analisi non supervisionata può essere utilizzata per esplorare dataset complessi e individuare gruppi o caratteristiche che meritano ulteriori approfondimenti.
Industria
I dati provenienti da macchinari e sensori possono essere analizzati per individuare comportamenti insoliti o gruppi di condizioni operative.
Apprendimento non supervisionato e Big Data
Uno dei motivi per cui queste tecniche sono particolarmente interessanti è la grande quantità di dati prodotti quotidianamente.
Aziende, dispositivi, applicazioni, sensori e piattaforme digitali possono generare enormi quantità di informazioni.
Spesso però questi dati non sono etichettati.
Etichettare manualmente milioni di elementi può essere costoso e richiedere molto tempo.
L'apprendimento non supervisionato permette invece di esplorare direttamente i dati e cercare strutture potenzialmente interessanti.
Questo non significa che l'intervento umano diventi inutile: l'interpretazione dei risultati rimane fondamentale.
Quali sono i vantaggi dell'apprendimento non supervisionato?
Tra i principali vantaggi possiamo individuare:
Analizza dati non etichettati
Non è sempre necessario possedere un dataset già classificato.
Può scoprire strutture inattese
L'algoritmo può evidenziare raggruppamenti che non erano stati considerati inizialmente.
È utile nell'esplorazione dei dati
Può essere utilizzato per comprendere meglio un dataset prima di costruire modelli più complessi.
Può ridurre la complessità
Tecniche come la PCA possono diminuire il numero delle variabili utilizzate nell'analisi.
Può individuare anomalie
Alcuni metodi possono aiutare a identificare osservazioni insolite.
Quali sono i limiti dell'apprendimento non supervisionato?
L'apprendimento non supervisionato presenta però anche diversi limiti.
I risultati non sono sempre facili da interpretare
Un algoritmo può individuare gruppi matematicamente coerenti ma privi di un significato pratico evidente.
Non esiste sempre una risposta corretta
Nel clustering, per esempio, possono esistere diverse suddivisioni plausibili dello stesso dataset.
La scelta dell'algoritmo è importante
Algoritmi diversi possono produrre risultati differenti.
La qualità dei dati è fondamentale
Dati incompleti, rumorosi o mal rappresentati possono influenzare negativamente i risultati.
Il numero di cluster può essere difficile da stabilire
Nel K-means, per esempio, è necessario decidere quanti gruppi cercare.
Per questo motivo non bisogna considerare l'apprendimento non supervisionato come un sistema che "capisce automaticamente" il significato dei dati.
Come si valuta un modello non supervisionato?
La valutazione è uno degli aspetti più complessi.
Nell'apprendimento supervisionato possiamo spesso confrontare la previsione con una risposta corretta conosciuta.
Nel clustering questo non è sempre possibile.
Per valutare i risultati possono essere utilizzate diverse tecniche e metriche.
Una delle più conosciute è il silhouette score, che può aiutare a valutare quanto gli elementi siano coerenti con il proprio cluster rispetto agli altri cluster. Anche l'inertia viene utilizzata nella valutazione del K-means, pur presentando importanti limiti.
È inoltre importante considerare la stabilità dei cluster e soprattutto la loro interpretabilità nel contesto reale.
Un esempio semplice di apprendimento non supervisionato
Immaginiamo di avere 1.000 clienti e due informazioni per ciascuno:
- numero di acquisti annuali;
- valore medio degli acquisti.
Non abbiamo assegnato alcuna categoria ai clienti.
Inseriamo questi dati in un algoritmo di clustering.
L'algoritmo potrebbe individuare, per esempio:
Gruppo A: molti acquisti e valore medio elevato.
Gruppo B: molti acquisti ma valore medio contenuto.
Gruppo C: pochi acquisti e valore medio elevato.
Gruppo D: pochi acquisti e valore medio contenuto.
A questo punto l'azienda può analizzare questi gruppi e decidere se hanno un significato commerciale.
Il punto fondamentale è che le categorie non erano necessariamente presenti nei dati sotto forma di etichette: sono state individuate attraverso l'analisi delle caratteristiche.
Apprendimento non supervisionato e deep learning
L'apprendimento non supervisionato è collegato anche al deep learning.
Le reti neurali profonde possono essere utilizzate per apprendere rappresentazioni dei dati senza affidarsi necessariamente a etichette manuali.
Tra gli approcci utilizzati troviamo, per esempio:
- autoencoder;
- modelli generativi;
- tecniche di apprendimento delle rappresentazioni;
- alcuni approcci di pre-addestramento.
L'obiettivo può essere quello di ottenere una rappresentazione utile dei dati che possa successivamente essere impiegata in altri compiti.
Apprendimento non supervisionato e dati non etichettati
Uno dei concetti fondamentali da ricordare è quindi quello dei dati non etichettati.
Supponiamo di avere 100.000 immagini.
Nel caso supervisionato potremmo avere:
immagine → gatto
immagine → cane
immagine → automobile
Nell'approccio non supervisionato possiamo invece avere semplicemente:
immagine
immagine
immagine
immagine
L'algoritmo deve analizzare le caratteristiche disponibili e cercare strutture o somiglianze.
Naturalmente, questo non significa che l'algoritmo sappia necessariamente che un gruppo rappresenta "gatti" e un altro "cani". L'interpretazione semantica può richiedere ulteriori informazioni o intervento umano.
Apprendimento non supervisionato, supervisionato e per rinforzo
Le tre principali categorie vengono spesso confrontate.
| Tipo di apprendimento | Dati | Obiettivo |
|---|---|---|
| Supervisionato | Dati etichettati | Prevedere una risposta |
| Non supervisionato | Dati generalmente non etichettati | Scoprire strutture |
| Per rinforzo | Feedback tramite ricompense/costi | Imparare una strategia d'azione |
Questa distinzione aiuta a capire che il machine learning non è un'unica tecnica, ma comprende diversi approcci.
Perché l'apprendimento non supervisionato è importante?
L'enorme quantità di dati disponibile oggi rende sempre più importante la capacità di analizzare informazioni che non sono state preventivamente organizzate o classificate.
L'apprendimento non supervisionato permette di affrontare proprio questo tipo di problema.
Può aiutare a rispondere a domande come:
- Quali elementi sono simili?
- Esistono gruppi naturali nei dati?
- Ci sono comportamenti anomali?
- Quali caratteristiche sono più importanti?
- È possibile semplificare la rappresentazione dei dati?
- Esistono relazioni che non avevamo individuato?
Per questo motivo rappresenta uno degli strumenti fondamentali per l'esplorazione dei dati e per numerose applicazioni di machine learning.
Domande frequenti sull'apprendimento non supervisionato
Che cosa significa apprendimento non supervisionato?
È un approccio di machine learning nel quale l'algoritmo analizza generalmente dati privi di etichette predefinite per individuare strutture, gruppi, relazioni o anomalie.
Qual è un esempio di apprendimento non supervisionato?
Un esempio è il clustering dei clienti di un'azienda. L'algoritmo può individuare gruppi di clienti con comportamenti simili senza che tali gruppi siano stati definiti manualmente.
Qual è la differenza tra apprendimento supervisionato e non supervisionato?
Nel supervisionato il modello impara da dati associati a una risposta conosciuta. Nel non supervisionato cerca invece strutture nei dati senza disporre necessariamente di etichette.
Che cos'è il clustering?
È una tecnica che raggruppa elementi simili all'interno di insiemi chiamati cluster.
Che cos'è il K-means?
È un algoritmo di clustering che cerca di suddividere i dati in un numero prestabilito di gruppi, rappresentati attraverso centroidi.
La PCA è apprendimento non supervisionato?
Sì. La Principal Component Analysis è una tecnica di riduzione della dimensionalità che può essere utilizzata senza disporre di etichette per i dati.
L'apprendimento non supervisionato può individuare anomalie?
Sì. Esistono tecniche di outlier detection e novelty detection utilizzate per individuare osservazioni che si discostano dal comportamento considerato normale.
L'apprendimento non supervisionato è intelligenza artificiale?
È una tecnica appartenente al machine learning, che a sua volta rappresenta una delle principali aree dell'intelligenza artificiale.
L'apprendimento non supervisionato è sempre migliore di quello supervisionato?
No. I due approcci risolvono problemi differenti. La scelta dipende dai dati disponibili e dall'obiettivo dell'analisi.
Quali sono i principali algoritmi non supervisionati?
Tra quelli più conosciuti troviamo K-means, clustering gerarchico, DBSCAN, HDBSCAN, clustering spettrale, Gaussian Mixture Models e PCA per la riduzione della dimensionalità.
Conclusione
L'apprendimento non supervisionato consente ai sistemi di machine learning di analizzare dati senza dipendere necessariamente da etichette già assegnate.
Il suo scopo principale è scoprire strutture, somiglianze, gruppi, relazioni o anomalie presenti nei dati.
Tra le applicazioni più importanti troviamo il clustering, la riduzione della dimensionalità e il rilevamento delle anomalie.
La sua importanza è cresciuta insieme alla disponibilità di grandi quantità di dati non strutturati o non etichettati. Tuttavia, i risultati devono essere interpretati con attenzione: l'algoritmo può trovare una struttura matematica nei dati, ma non è detto che quella struttura rappresenti automaticamente una categoria significativa nel mondo reale.
Per comprendere meglio l'argomento, questo articolo può essere collegato alla tua guida generale sul machine learning:
