Ultralytics YOLO27: Iscriviti alla lista d'attesa.
Licenza YOLO
Torna al glossario di Ultralytics

Random Forest

Una random forest calcola la media di numerosi alberi decisionali, ciascuno costruito su un campione bootstrap con suddivisioni casuali delle feature, per eseguire classificazione e regressione.

La foresta casuale è un algoritmo di apprendimento supervisionato che addestra molti alberi decisionali su variazioni casuali degli stessi dati e combina le loro predizioni, tramite voto o media delle probabilità di classe per la classificazione e tramite media per la regressione. Leo Breiman descrisse il metodo nel suo articolo del 2001 Random Forests, basandosi sulla sua precedente tecnica di bagging. Un singolo albero profondo memorizza le righe di addestramento, perciò le sue predizioni cambiano anche con piccole variazioni dei dati. Fare la media di centinaia di alberi, ognuno dei quali commette errori diversi, annulla gran parte di tale varianza e rende la foresta casuale uno dei modelli predefiniti più affidabili per i dati tabellari. Non richiede normalizzazione delle feature, gestisce le interazioni non lineari tra le feature e il suo errore di test si stabilizza man mano che si aggiungono alberi.

Come funziona la foresta casuale#

La foresta casuale introduce due fonti di casualità nell'addestramento degli alberi, perché un ensemble è utile solo quando i suoi componenti commettono errori diversi, e poi combina gli alberi:

  • Aggregazione bootstrap (bagging): ogni albero viene addestrato su un campione bootstrap, un insieme di righe estratte con reinserimento dai dati di addestramento e di uguale dimensione. Alcune righe compaiono più volte, mentre circa il 37% delle righe (una frazione pari a 1/e) resta escluso da ogni singolo campione.
  • Sottoinsiemi casuali di feature: a ogni suddivisione, l'albero considera solo un sottoinsieme casuale delle feature. Il classificatore di Scikit-learn usa per impostazione predefinita la radice quadrata del numero di feature; quindi, con un set di dati di 100 feature, valuta 10 candidate per suddivisione. Il regressore, invece, considera per impostazione predefinita tutte le feature. Una feature dominante, quindi, non può trovarsi in cima a ogni albero, il che riduce la correlazione tra gli alberi.
  • Aggregazione: il metodo originale di Breiman usa il voto a maggioranza degli alberi. L'implementazione di Scikit-learn calcola invece la media delle probabilità di classe di tutti gli alberi, mentre le foreste di regressione calcolano la media delle predizioni numeriche degli alberi.

Gli alberi crescono in profondità e non vengono potati, perciò ognuno ha bias basso e varianza elevata. Calcolare la media di molti alberi non correlati riduce la varianza mantenendo basso il bias: un compromesso favorevole nel trade-off bias-varianza. Poiché gli alberi sono indipendenti, possono anche essere addestrati in parallelo sui core della CPU.

Errore out-of-bag e importanza delle feature#

Le righe mai viste da un albero fungono da set di test integrato. Il punteggio out-of-bag (OOB) calcola la predizione per ogni riga di addestramento usando solo gli alberi i cui campioni bootstrap l'hanno esclusa; in questo modo stima l'accuratezza su dati mai visti senza dover tenere da parte un set di validazione separato. Le foreste riportano anche l'importanza delle feature. L'importanza predefinita basata sull'impurità misura quanto ciascuna feature riduce l'impurità in tutte le suddivisioni e favorisce quelle con molti valori distinti; quando si classificano le feature, l'importanza per permutazione, cioè il calo del punteggio dopo aver rimescolato una feature, è quindi una scelta più affidabile.

Questo esempio confronta un albero sviluppato completamente con una foresta casuale di scikit-learn sul set di dati sul cancro al seno incluso, usando la convalida incrociata a 5 fold, e poi legge il punteggio OOB della foresta:

from sklearn.datasets import load_breast_cancer
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import cross_val_score
from sklearn.tree import DecisionTreeClassifier

# 569 tumors described by 30 numeric features, labeled malignant or benign
X, y = load_breast_cancer(return_X_y=True)

# One fully grown tree vs. a forest of 300 trees on bootstrap samples
tree = DecisionTreeClassifier(random_state=0)
forest = RandomForestClassifier(n_estimators=300, oob_score=True, random_state=0)

# Compare 5-fold cross-validated accuracy
print(f"Single tree: {cross_val_score(tree, X, y, cv=5).mean():.3f}")
print(f"Forest:      {cross_val_score(forest, X, y, cv=5).mean():.3f}")

# Out-of-bag score: each row is predicted only by trees that never trained on it
forest.fit(X, y)
print(f"OOB score:   {forest.oob_score_:.3f}")

Lo script stampa 0.917 per il singolo albero, 0.963 per la foresta e un punteggio OOB di 0.965. La foresta riduce il tasso di errore dell'albero dall'8.3% al 3.7% e la stima OOB si discosta di 0.002 dall'accuratezza convalidata in modo incrociato, in una sola esecuzione di addestramento.

Applicazioni nel mondo reale#

  • Rischio di credito e rilevamento delle frodi: le banche valutano richieste di prestito e transazioni a partire da dati tabellari come reddito, anzianità del conto e abitudini di spesa; l'output probabilistico della foresta determina la soglia decisionale.
  • Previsione del rischio sanitario: i modelli clinici prevedono esiti come la riammissione ospedaliera dai dati dei pazienti; l'importanza per permutazione mostra quali misurazioni influiscono su ciascuna predizione.
  • Analisi di immagini satellitari: le foreste casuali sono da tempo una scelta comune per la mappatura della copertura del suolo, classificando ogni pixel o appezzamento in base ai valori delle bande spettrali e agli indici di vegetazione.
  • Modellazione della resa delle colture: un rilevatore YOLO26 conta frutti o piante nelle immagini dei campi, con un rilevamento per oggetto; i conteggi per appezzamento vengono poi aggiunti alle misurazioni del suolo e del meteo come colonne di una foresta casuale che prevede la resa.
  • Singolo albero decisionale: un albero è facile da leggere come insieme di regole if-then, ma piccole variazioni nei dati possono produrne uno completamente diverso. Una foresta sacrifica questa leggibilità per ottenere una varianza molto più bassa.
  • Gradient boosting: XGBoost, LightGBM e CatBoost costruiscono in successione alberi poco profondi, ognuno dei quali corregge gli errori di quelli precedenti. Dopo la messa a punto, il boosting spesso ottiene punteggi più alti nei benchmark tabellari; gli alberi indipendenti di una foresta casuale, invece, vengono addestrati in parallelo e offrono buoni risultati con le impostazioni predefinite.
  • Modelli fondazionali per dati tabellari: i Transformer preaddestrati eseguono predizioni su una nuova tabella con un solo passaggio in avanti, senza addestrare un modello per ogni set di dati, e ora competono con gli ensemble di alberi ottimizzati sui set di dati tabellari piccoli.
  • Alberi estremamente randomizzati: per ogni feature candidata, gli alberi extra estraggono una soglia casuale invece di cercare quella migliore, quindi scelgono la migliore tra le suddivisioni casuali. Per impostazione predefinita, Scikit-learn li addestra sull'intero set di dati senza campionamento bootstrap; evitando la ricerca della soglia, l'addestramento è più rapido rispetto a quello di una foresta casuale della stessa dimensione.

Esplora le soluzioni

La visione artificiale nello sport

La visione artificiale nello sport

Scopri come Ultralytics YOLO alimenta la computer vision nello sport con il tracciamento di giocatori e palloni, l'analisi delle prestazioni, gli approfondimenti per gli allenatori e la riabilitazione degli atleti.
Scopri di più
Computer vision per immagini aeree

Computer vision per immagini aeree

Trasforma immagini aeree e riprese da drone in informazioni utili in tempo reale per agricoltura, acquacoltura, conservazione e analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Applica la visione artificiale nel settore aerospaziale con Ultralytics YOLO per l'ispezione degli aeromobili, il rilevamento di FOD sulle piste, le operazioni di terra aeroportuali e il rilevamento di difetti nei materiali compositi.
Scopri di più
Visione artificiale nella sicurezza

Visione artificiale nella sicurezza

Proteggi ogni sito con i modelli Ultralytics YOLO. L'IA visiva alimenta il monitoraggio perimetrale, il rilevamento delle minacce, il riconoscimento delle targhe e la sicurezza sul lavoro.
Scopri di più
Visione artificiale nella robotica

Visione artificiale nella robotica

Dai più potenza alle macchine intelligenti con i modelli Ultralytics YOLO. Nell'ambito della robotica, l'IA visiva alimenta la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Visione artificiale nella logistica

Visione artificiale nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. L'IA per la visione consente l'ispezione dei pacchi, la selezione, il tracciamento dei veicoli e il monitoraggio della sicurezza nei magazzini in tempo reale.
Scopri di più
Visione artificiale nel commercio al dettaglio

Visione artificiale nel commercio al dettaglio

Ripensa il commercio al dettaglio con i modelli Ultralytics YOLO. L'IA per la visione consente di tracciare le scorte, monitorare gli scaffali, gestire le code e ottenere informazioni più approfondite sui clienti.
Scopri di più
Visione artificiale in ambito sanitario

Visione artificiale in ambito sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. In ambito sanitario, l'IA per la visione consente di elaborare più rapidamente le immagini mediche, migliorare la diagnostica e monitorare i pazienti.
Scopri di più
Computer vision nella produzione

Computer vision nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La visione basata sull'IA migliora il controllo qualità, il rilevamento dei difetti, la conformità ai requisiti sui DPI e l'automazione delle linee di assemblaggio.
Scopri di più
Computer vision nel settore automobilistico

Computer vision nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La visione basata sull'IA migliora la sicurezza stradale, i sistemi di assistenza alla guida e l'automazione dei veicoli, per strade più intelligenti.
Scopri di più
Visione artificiale in agricoltura

Visione artificiale in agricoltura

Porta l'IA visiva nell'agricoltura intelligente con i modelli Ultralytics YOLO. Gestisci il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per ottenere raccolti più abbondanti e intelligenti.
Scopri di più

Costruiamo insieme il futuro dell'IA!

Inizia il tuo percorso verso il futuro del machine learning