Cos’è un modello Random Forest

Cos’è un modello Random Forest

2 Giugno 2021 ai 1
modello Random Forest

Modello Random Forest: una facile introduzione all’addestramento, alla classificazione e alla regressione.  

In questo post, vi spiegheremo che cosa è il modello della foresta casuale, vedere i suoi punti di forza, come è costruito e per cosa può essere utilizzato.

Passeremo attraverso la teoria e l’intuizione della Foresta Casuale, vedendo la quantità minima di matematica necessaria per capire come funziona il tutto, senza addentrarci nei dettagli più complessi. Infine, prima di iniziare, ecco alcune risorse aggiuntive per far decollare la tua carriera nell’apprendimento automatico.

1.   Introduzione

Nel mondo del Machine Learning, i modelli Random Forest sono una sorta di modelli non parametrici che possono essere utilizzati sia per la regressione che per la classificazione. Sono uno dei metodi d’insieme più diffusi, appartenenti alla specifica categoria dei metodi di bagging.

L’ Apprendimento ensemble prevedono l’utilizzo di vari modelli d’insieme per migliorare le prestazioni di ognuno di loro preso individualmente. Questi metodi possono essere descritti come tecniche che utilizzano un gruppo di modelli deboli (quelli che in media ottengono risultati solo leggermente migliori di un modello casuale) insieme, al fine di crearne uno più forte e aggregato. Nel nostro caso, le foreste casuali sono un insieme di molti alberi decisionali individuali.

Uno dei principali svantaggi degli alberi decisionali è che sono molto inclini a un adattamento eccessivo: funzionano bene sui dati di addestramento, ma non sono così flessibili per fare previsioni su campioni invisibili. Sebbene ci siano soluzioni alternative per questo, come ridurre gli alberi, questo riduce il loro potere predittivo. Generalmente sono modelli con bias medio e varianza alta, ma sono semplici e di facile interpretazione.

I modelli Random Forest combinano la semplicità degli alberi decisionali com la flessibilità e la potenza di un modello di insieme. In una foresta di alberi, dimentichiamo l’alta varianza di un albero specifico e siamo meno preoccupati per ogni singolo elemento, quindi possiamo coltivare alberi più belli e più grandi che hanno più potere predittivo di uno ridotto. Sebbene i modelli Random Forest non offrano la stessa capacità di interpretazione di un singolo albero, le loro prestazioni sono di gran lunga migliori e non dobbiamo preoccuparci così tanto della regolazione perfetta dei parametri della foresta come facciamo con i singoli alberi. Ok, ho capito, una foresta casuale è una raccolta di alberi singoli. Ma perché il nome Random? Dov’è la casualità? Scopriamolo imparando come viene costruito un modello Random Forest.

2. Addestramento e costruzione di un modello Random Forest

La costruzione della foresta casuale ha 3 fasi principali. Analizzeremo ogni uno di essi e chiariremo ciascuno dei concetti e dei passaggi. Andiamo!

2.1 Creazione di un set di dati bootstrap per ogni modello Random Forest

Quando creiamo un albero decisionale individuale, utilizziamo un set di dati di addestramento e tutte le osservazioni. Questo significa che se non stiamo attenti, l’albero può adattarsi molto bene a questi dati di addestramento e generalizzarsi male a nuove osservazioni invisibili. Per risolvere questo problema, impediamo all’albero di crescere molto, di solito a costo di ridurne le prestazioni.

Per costruire una foresta casuale dobbiamo addestrare N alberi decisionali. Addestriamo gli alberi utilizzando sempre gli stessi dati? Usiamo l’intero set di dati? No.

È qui che entra in gioco la prima caratteristica casuale. Per addestrare ogni singolo albero, selezioniamo un campione casuale dell’intero set di dati, come mostrato nella figura seguente.

Osservando questa cifra si possono dedurre varie cose. Prima di tutto, la dimensione dei dati utilizzati per addestrare ogni singolo albero non deve essere la dimensione dell’intero set di dati. Inoltre, un gruppo di dati può essere presente più di una volta nei dati utilizzati per addestrare un singolo albero (come nell’albero nº 2).

Questo è chiamato campionamento con sostituzione o bootstrap: ogni punto dati viene scelto casualmente dall’intero set di dati e un punto dati può essere scelto più di una volta.

Utilizzando diversi campioni di dati per addestrare ogni singolo albero riduciamo uno dei problemi principali che hanno: sono molto legati ai loro dati di addestramento. Se addestriamo una foresta con molti alberi e ognuno di loro è stato addestrato con dati diversi, risolviamo questo problema. Sono tutti molto affezionati ai loro dati di allenamento, ma la foresta non ama nessun punto dati specifico. Questo ci consente di coltivare alberi singoli più grandi, poiché non ci interessa più tanto l’overfitting di un singolo albero. Se utilizziamo una porzione molto piccola dell’intero set di dati per addestrare ogni singolo albero, aumentiamo la casualità della foresta (riducendo l’over-fitting) ma di solito a scapito di una prestazione inferiore.

In pratica, per impostazione predefinita, la maggior parte delle implementazioni di Random Forest (come quella di Scikit-Learn) seleziona il campione dei dati di addestramento utilizzato per ogni albero in modo che abbia le stesse dimensioni del set di dati originale (tuttavia non è lo stesso set di dati, ricorda che stiamo selezionando campioni casuali).

Questo generalmente fornisce un buon compromesso bias-varianza.

2.2 Addestra una foresta di alberi usando questi set di dati casuali e aggiungi un po’ più di casualità con la selezione delle caratteristiche.

Se ricordi bene, per costruire un albero decisionale individuale, ad ogni nodo abbiamo valutato una certa metrica (come l’indice di Gini o guadagno di informazioni) e abbiamo scelto la caratteristica o la variabile dei dati per andare nel nodo che ha minimizzato / massimizzato questa metrica.

Questo ha funzionato abbastanza bene quando si allenava un solo albero, ma ora ne vogliamo un’intera foresta! Come lo facciamo? I modelli di insieme, come Random Forest, funzionano meglio se i singoli modelli (i singoli alberi nel nostro caso) non sono correlati. In Random Forest ciò si ottiene selezionando casualmente alcune caratteristiche da valutare in ogni nodo.

Come puoi vedere dall’immagine precedente, ad ogni nodo valutiamo solo un sottoinsieme di tutte le caratteristiche iniziali. Per il nodo radice prendiamo in considerazione E, A e F (e F vince). Nel Nodo 1 consideriamo C, G e D (e G vince). Infine, nel Nodo 2 consideriamo solo A, B e G (e A vince). Continueremo a farlo finché non avremo costruito l’intero albero.

In questo modo, evitiamo di includere funzionalità che hanno un potere predittivo molto elevato in ogni albero, creando molti alberi non correlati. Non usiamo solo dati casuali, ma anche caratteristiche casuali durante la costruzione di ogni albero. Maggiore è la diversità degli alberi, meglio è: riduciamo la varianza e otteniamo un modello dalle prestazioni migliori.

2.3 Ripeti l’operazione per gli N alberi per creare la nostra fantastica foresta.

Abbiamo imparato come costruire un unico albero decisionale. Ora, lo ripetiamo per gli N alberi, selezionando in modo casuale su ogni nodo di ciascuno degli alberi quali variabili entrano nel concorso per essere scelte come caratteristica su cui dividere.

In conclusione, l’intero processo:

  1. Creare un set di dati con bootstrap per ogni albero.
  2. Creare un albero decisionale utilizzando il set di dati corrispondente, ma in ogni nodo utilizzare un sotto-campione casuale di variabili o caratteristiche su cui suddividere.
  3. Ripeti tutti e tre questi passaggi centinaia di volte per costruire una foresta enorme con ampia varietà di alberi. Questa varietà è ciò che rende una foresta casuale migliore di un singolo albero decisionale.

Una volta costruita la nostra foresta, siamo pronti per usarla per fare previsioni fantastiche. Vediamo come!

4.   Fare previsioni utilizzando un modello Random Forest

Fare previsioni con una foresta casuale è molto semplice. Dobbiamo solo prendere ciascuno dei nostri alberi individuali, fare una previsione attraverso di essi, quindi ottenere una previsione da ogni albero (sommando a N predizioni) e quindi ottenere una previsione complessiva e aggregata.

Il bootstrap dei dati e l’utilizzo di un’aggregazione per fare una previsione sono chiamati Bagging e il modo in cui viene effettuata questa previsione dipende dal tipo di problema che stiamo affrontando.

Per i problemi di regressione, la decisione aggregata è la media delle decisioni di ogni singolo albero decisionale. Per i problemi di classificazione, la previsione finale è la previsione più frequente eseguita dalla eseguita dalla foresta.

L’immagine precedente illustra questa procedura molto semplice. Per il problema di classificazione vogliamo prevedere se un certo paziente è malato o sano. Per questo passiamo la sua cartella clinica e altre informazioni attraverso ogni albero della foresta casuale e otteniamo N predizioni (400 nel nostro caso). Nel nostro esempio 355 alberi dicono che il paziente è sano e 45 dicono che il paziente è malato, quindi la foresta decide che il paziente è sano.

Per il problema della regressione vogliamo prevedere il prezzo di una certa casa. Trasmettiamo le caratteristiche di questa nuova casa attraverso i nostri N alberi, ottenendo una previsione numerica da ciascuno di essi. Quindi, calcoliamo la media di queste previsioni e otteniamo il valore finale di 322,750 $.

Semplice vero? Facciamo una previsione con ogni singolo albero e poi aggreghiamo queste previsioni utilizzando la media (media) o la modalità (valore più frequente).

4. Conclusione

In questo post abbiamo visto che cosa è una Foresta casuale, come supera i problemi principali degli Alberi decisionali, come vengono addestrati e utilizzati per fare previsioni. Sono modelli di apprendimento automatico molto flessibili e potenti che sono molto utilizzati in applicazioni commerciali e industriali, insieme a modelli di boosting e reti neurali artificiali.

 

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *