il metodo Random Forest: La “foresta magica” della statistica

Cerca:

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
Il metodo Random-Forest

Se ti sei mai chiesto come un algoritmo possa prevedere se un paziente ha una malattia, se un cliente acquisterà un prodotto o quale sia il prezzo di una casa, oggi ti presento uno dei protagonisti del mondo della statistica e del machine learning: il Random Forest.

 Questo articolo vuole essere una guida semplice e assolutamente introduttiva per capire cosa sia il Random Forest e perché è così potente.


🌲 Cos’è il Random Forest?

Immagina di essere in una foresta piena di alberi decisionali, ognuno dei quali ti dà un suggerimento diverso su una decisione da prendere. Alcuni alberi si basano su un aspetto, altri su un altro. Il Random Forest non è altro che un insieme di alberi decisionali che, lavorando insieme, arrivano a una previsione più affidabile.

In pratica, se vuoi sapere se un cliente acquisterà il tuo prodotto, ogni albero esaminerà vari aspetti (età, abitudini di acquisto, reddito, ecc.) e farà la sua previsione. La risposta finale? Viene presa tramite voto a maggioranza: se la maggioranza degli alberi dice “Sì, acquisterà”, allora probabilmente è così!

E se devi prevedere un valore numerico (come il prezzo di una casa), il risultato finale sarà la media delle previsioni dei singoli alberi.

Definizione ( più tecnica)

Random Forest è un algoritmo di apprendimento automatico “supervisionato” (cioè che apprende da dati etichettati) che viene utilizzato sia per problemi di classificazione (assegnare un’etichetta a un dato) che di regressione (prevedere un valore numerico). Appartiene alla famiglia dei metodi “ensemble”, il che significa che combina le previsioni di più modelli per ottenere una previsione più accurata e robusta. Nel caso specifico di Random Forest, questi modelli sono alberi decisionali.


💡 Perché il Random Forest funziona così bene?

La magia del Random Forest sta nella casualità. Ecco come funziona:

  1. Creazione di alberi diversi: Ogni albero viene costruito usando un sottoinsieme casuale dei dati a disposizione (si chiama bootstrap). Questo permette di ridurre il rischio che tutti gli alberi arrivino alle stesse conclusioni, evitando così l’overfitting (quando un modello si adatta troppo ai dati di partenza).
  2. Selezione casuale delle variabili: Ogni albero, a ogni nodo, sceglie solo alcune delle variabili disponibili. Questo rende ogni albero “indipendente” dagli altri e migliora l’accuratezza complessiva.
  3. Decisione finale combinata: Come un gruppo di esperti che discutono e votano, i singoli alberi “collaborano” per dare una risposta più robusta.

In altre parole, l’unione fa la forza: più alberi abbiamo, più la previsione sarà affidabile!

Ma come funziona?

Immagina di dover decidere se andare o meno a un concerto all’aperto. Potresti considerare diversi fattori:

  • Tempo: Pioverà?
  • Band: Ti piace la band che suona?
  • Amici: Ci vanno anche i tuoi amici?

Ognuna di queste domande porta a una “biforcazione”, una decisione che influenza la tua scelta finale. Questo è il principio di un albero decisionale. Un Random Forest non utilizza un solo albero, ma una “foresta” di molti alberi decisionali, ognuno dei quali viene addestrato su un sottoinsieme casuale dei dati di training e considera solo un sottoinsieme casuale delle variabili disponibili. Questo processo si chiama “bagging” (bootstrap aggregating).

I passaggi principali di Random Forest sono:

  1. Bootstrapping: Vengono creati multipli campioni di dati di training, ciascuno ottenuto campionando casualmente con reinserimento (cioè uno stesso dato può comparire più volte nello stesso campione) dal dataset originale. Questo crea diversi dataset di training, leggermente differenti tra loro.
  2. Costruzione degli alberi decisionali: Per ogni campione di bootstrap, viene costruito un albero decisionale. Durante la costruzione di ogni albero, ad ogni nodo, invece di considerare tutte le variabili per la divisione, ne viene considerato solo un sottoinsieme casuale. Questo introduce ulteriore casualità e decorrela gli alberi tra loro.
  3. Aggregazione delle previsioni: Una volta costruiti tutti gli alberi, quando si deve fare una previsione su un nuovo dato, ogni albero produce una sua previsione (una classe per la classificazione, un valore per la regressione). Le previsioni finali vengono ottenute aggregando le previsioni dei singoli alberi: per la classificazione si usa il voto a maggioranza (la classe più votata dagli alberi è la previsione finale), per la regressione si usa la media delle previsioni degli alberi.

Vantaggi

  • Riduce l’overfitting: L’overfitting si verifica quando un modello si adatta troppo bene ai dati di training, memorizzandoli, e quindi generalizza male a nuovi dati. La combinazione di bagging e selezione casuale delle variabili rende Random Forest meno soggetto all’overfitting rispetto a un singolo albero decisionale.
  • Maggiore accuratezza: Combinando le previsioni di molti alberi, si ottiene una previsione più robusta e accurata rispetto a quella di un singolo albero.
  • Gestisce bene dati complessi: Random Forest può gestire dataset con molte variabili e relazioni non lineari tra le variabili.
  • Fornisce importanza delle variabili: Random Forest può fornire una stima dell’importanza di ogni variabile nel processo di previsione, il che può essere utile per comprendere quali fattori influenzano maggiormente il risultato.

Esempio della previsione dell’acquisto di un prodotto online con dati concreti

Scenario: Vogliamo prevedere se un cliente acquisterà o meno un nuovo paio di scarpe sportive sul nostro sito di e-commerce.

Dati a disposizione (Dataset di esempio):

Creeremo un dataset semplificato per illustrare il concetto. In un contesto reale, avremmo molte più variabili e molti più dati.

ID Cliente Età Sesso Spesa Totale Precedente (€) Categoria Preferita Provenienza Acquisto (0/1)
1 25 M 150 Abbigliamento Sportivo Nord 1
2 30 F 50 Accessori Centro 0
3 40 M 300 Abbigliamento Sportivo Nord 1
4 22 F 20 Casual Sud 0
5 35 M 200 Scarpe Nord 1
6 28 F 100 Abbigliamento Centro 0
7 45 M 400 Abbigliamento Sportivo Sud 1
8 27 M 75 Scarpe Nord 0
9 32 F 120 Accessori Centro 0
10 38 M 250 Abbigliamento Sportivo Nord 1
11 29 F 90 Abbigliamento Sud 0
12 31 M 180 Scarpe Centro 1
  • ID Cliente: Identificativo univoco del cliente.
  • Età: Età del cliente.
  • Sesso: Sesso del cliente (M/F).
  • Spesa Totale Precedente (€): Valore totale degli acquisti precedenti sul sito.
  • Categoria Preferita: Categoria di prodotti preferita dal cliente.
  • Provenienza: Area geografica del cliente.
  • Acquisto (0/1): 1 se il cliente ha acquistato le scarpe sportive, 0 altrimenti (questa è la variabile che vogliamo prevedere).

Come Random Forest utilizza questi dati:

  1. Bootstrapping: Random Forest crea diversi campioni di dati partendo da questo dataset. Ad esempio, un campione potrebbe contenere i clienti 1, 3, 5, 7, 9 e 10 (con possibili ripetizioni dello stesso cliente), un altro i clienti 2, 4, 6, 8, 11 e 12, e così via.

  2. Costruzione degli alberi decisionali: Per ogni campione di dati, viene costruito un albero decisionale. Ecco un esempio di come potrebbe essere un albero (semplificato):

    • Nodo Radice: Spesa Totale Precedente > 150€?
      • Se Sì:
        • Nodo Figlio: Categoria Preferita = Abbigliamento Sportivo?
          • Se Sì: Prevedi “Acquisto = 1” (Alta probabilità di acquisto).
          • Se No: Prevedi “Acquisto = 0” (Bassa probabilità di acquisto).
      • Se No:
        • Nodo Figlio: Età > 30?
          • Se Sì: Prevedi “Acquisto = 0”.
          • Se No: Prevedi “Acquisto = 0”.

    Un altro albero potrebbe utilizzare altre variabili e altre soglie di divisione. Ad esempio, potrebbe considerare la “Provenienza” come variabile principale.

  3. Previsione su un nuovo cliente: Supponiamo di avere un nuovo cliente con le seguenti caratteristiche:

    • Età: 33
    • Sesso: M
    • Spesa Totale Precedente: 220€
    • Categoria Preferita: Scarpe
    • Provenienza: Nord

    Ogni albero della foresta prenderebbe una decisione su questo cliente. Alcuni alberi potrebbero prevedere “Acquisto = 1” (basandosi sulla spesa precedente), altri “Acquisto = 0” (basandosi sulla categoria preferita).

  4. Aggregazione delle previsioni: Alla fine, si contano le previsioni di tutti gli alberi. Se la maggior parte degli alberi prevede “Acquisto = 1”, allora la previsione finale del Random Forest sarà “Acquisto = 1”.

Vantaggi con i dati:

Con questo esempio concreto, possiamo vedere come:

  • Diversi alberi considerano diverse combinazioni di variabili: Alcuni potrebbero dare più peso alla spesa precedente, altri all’età o alla categoria preferita.
  • La casualità aiuta a generalizzare: Poiché gli alberi sono costruiti su campioni diversi e considerano sottoinsiemi di variabili, il modello è meno soggetto all’overfitting sui dati di training e generalizza meglio a nuovi clienti.
Forse potrebbe interessarti anche:  Modello meteorologico utilizzando Catene di Markov e Random Forest

📈 Quando si usa il Random Forest?

Il Random Forest è estremamente versatile e viene utilizzato in tanti campi:

  • Medicina: Diagnosi di malattie basata sui dati dei pazienti.
  • Marketing: Prevedere se un cliente comprerà un prodotto o abbandonerà il carrello online.
  • Finanza: Valutazione del rischio di credito.
  • Immobiliare: Previsione dei prezzi delle case.
  • Agricoltura: Analisi della resa dei raccolti in base al clima e al suolo.
Pubblicità