Home
topics
random forest
La foresta casuale è un algoritmo di apprendimento automatico di uso comune, registrato da Leo Breiman e Adele Cutler, che combina l'output di più decision trees per raggiungere un unico risultato. La sua facilità d'uso e la sua flessibilità ne hanno favorito l'adozione, in quanto gestisce sia i problemi di classificazione che quelli di regressione.
Poiché il modello di foresta casuale è composto da più alberi decisionali, sarebbe utile iniziare a descrivere brevemente l'algoritmo dell'albero decisionale. Gli alberi decisionali iniziano con una domanda di base, come ad esempio: "Dovrei fare surf?" Da lì, puoi porre una serie di domande per determinare una risposta, come ad esempio: "È un'onda di lungo periodo?" o "Il vento soffia al largo?". Queste domande costituiscono i nodi decisionali dell'albero, che servono a suddividere i dati. Ogni domanda aiuta l'individuo a prendere una decisione finale, che viene indicata dal nodo foglia. Le osservazioni che soddisfano i criteri seguiranno il percorso "Sì", mentre quelle che non lo soddisfano seguiranno il percorso alternativo. Gli alberi decisionali cercano di trovare la migliore suddivisione dei dati e sono in genere addestrati attraverso l'algoritmo Classification and Regression Tree (CART). Per valutare la qualità della suddivisione, si possono utilizzare metriche come l'impurità Gini, il guadagno di informazioni o l'errore quadratico medio (MSE).
Questo decision tree è un esempio di problema di classificazione, in cui le etichette delle classi sono "surf" e "don't surf".
Mentre i decision trees sono comuni algoritmi di apprendimento supervisionato, possono essere soggetti a problemi, come distorsioni e sovradattamento. Tuttavia, quando più decision trees formano un insieme nell'algoritmo foresta casuale, prevedono risultati più precisi, in particolare quando i singoli alberi non sono correlati tra loro.
I metodi di apprendimento d'insieme sono costituiti da un insieme di classificatori, ad esempio strutture ad albero decisionali, e le relative previsioni vengono aggregate per individuare il risultato più popolare. I metodi d'insieme più noti sono il bagging, noto anche come aggregazione bootstrap, e il boosting. Nel 1996, Leo Breiman(link esterno a ibm.com) ha introdotto il metodo del bagging; in questo metodo, un campione casuale di dati in un set di addestramento viene selezionato con sostituzione, il che significa che i singoli punti dati possono essere scelti più di una volta. Dopo aver generato diversi campioni di dati, questi modelli vengono addestrati in modo indipendente e, a seconda del tipo di attività, ossia regressione o classificazione, la media o la maggior parte di tali previsioni producono una stima più accurata. Questo approccio è comunemente usato per ridurre la varianza all'interno di un set di dati rumoroso.
L'algoritmo della foresta casuale è un'estensione del metodo di bagging in quanto utilizza sia il bagging, sia la casualità delle funzioni per creare una foresta non correlata di alberi decisionali. La feature randomness, nota anche come feature bagging o "metodo del subspazio casuale" (link esterno a ibm.com), genera un sottoinsieme casuale di funzioni, che garantisce una bassa correlazione tra alberi decisionali. Questa è una differenza fondamentale tra alberi decisionali e foreste casuali. Mentre gli alberi decisionali considerano tutte le possibili suddivisioni delle funzioni, le foreste casuali selezionano solo un sottoinsieme di tali funzioni.
Se torniamo all'esempio "dovrei fare surf?", le domande che potrei porre per determinare la previsione potrebbero non essere così complete come l'insieme di domande di un'altra persona. Tenendo conto di tutta la potenziale variabilità dei dati, possiamo ridurre il rischio di overfitting, bias e varianza complessiva, ottenendo previsioni più precise.
Leggi perché IBM è stata nominata leader nel report IDC MarketScape: Worldwide AI Governance Platforms 2023.
Gli algoritmi delle foreste casuali hanno tre iperparametri principali, che devono essere impostati prima dell'addestramento. Tra questi rientrano la dimensione del nodo, il numero di alberi e il numero di funzioni campionate. Da lì, il classificatore della foresta casuale può essere utilizzato per risolvere problemi di regression o classificazione.
L'algoritmo foresta casuale è costituito da una raccolta di decision trees e ogni albero dell'insieme è composto da un campione di dati tratto da un set di addestramento con sostituzione, chiamato Bootstrapping. Di quel campione di allenamento, un terzo viene accantonato come dati di test, noti come campione out-of-bag (oob), su cui torneremo più avanti. Un altro esempio di casualità viene poi immesso attraverso il feature bagging, aggiungendo maggiore diversità al set di dati e riducendo la correlazione tra decision trees. A seconda del tipo di problema, la determinazione della previsione varierà. Per un'attività di regressione, verrà calcolata la media dei singoli decision trees e per un'attività di classificazione, un voto di maggioranza (ovvero la variabile categorica più frequente) produrrà la classe prevista. Infine, il campione oob viene quindi utilizzato per la convalida incrociata, finalizzando tale previsione.
Ci sono tanti vantaggi e sfide chiave che l'algoritmo della foresta casuale presenta quando viene utilizzato per problemi di classificazione o regression. Alcuni di questi includono:
L'algoritmo della foresta casuale è stato applicato in diversi settori, consentendo loro di prendere decisioni aziendali migliori. Alcuni casi d'uso includono:
IBM SPSS Modeler utilizza l'analytics predittiva per aiutarti a individuare modelli di dati, ottenere previsioni accurate e migliorare il processo decisionale.
Scopri come le organizzazioni di tutto il mondo utilizzano SPSS® Modeler per la preparazione e il rilevamento dei dati, l'analitica predittiva, la gestione e l'implementazione di modelli e il machine learning per monetizzare le risorse di dati.
Scopri come una rete neurale attentamente progettata con una struttura a foresta casuale può avere una migliore capacità di generalizzazione.
Crea un modello di foresta casuale e ottimizzalo con l'ottimizzazione degli iperparametri utilizzando scikit-learn.