Assicurando che i modelli si diversifichino a vicenda
Quindi, in che modo random forest assicura che il comportamento di ogni singolo albero non sia troppo correlato con il comportamento di uno qualsiasi degli altri alberi nel modello? Utilizza i seguenti due metodi:
Bagging (Aggregazione Bootstrap) — Gli alberi delle decisioni sono molto sensibili ai dati su cui sono addestrati — piccole modifiche al set di allenamento possono comportare strutture ad albero significativamente diverse., Random forest sfrutta questo vantaggio consentendo a ciascun singolo albero di campionare casualmente dal set di dati con la sostituzione, con conseguente alberi diversi. Questo processo è noto come insaccamento.
Si noti che con l’insacco non stiamo suddividendo i dati di allenamento in blocchi più piccoli e allenando ogni albero su un blocco diverso. Piuttosto, se abbiamo un campione di dimensione N, stiamo ancora alimentando ogni albero un set di allenamento di dimensione N (se non diversamente specificato). Ma invece dei dati di allenamento originali, prendiamo un campione casuale di dimensione N con sostituzione., Ad esempio, se i nostri dati di allenamento erano allora potremmo dare uno dei nostri alberi la seguente lista . Si noti che entrambe le liste sono di lunghezza sei e che ” 2 “e” 6” sono entrambi ripetuti nei dati di allenamento selezionati casualmente che diamo al nostro albero (perché campioniamo con la sostituzione).
Caratteristica Casualità — In un normale albero decisionale, quando è il momento di dividere un nodo, consideriamo ogni caratteristica possibile e scegliamo quella che produce la maggior separazione tra le osservazioni nel nodo sinistro rispetto a quelle nel nodo destro. Al contrario, ogni albero in una foresta casuale può scegliere solo da un sottoinsieme casuale di caratteristiche. Ciò costringe ancora più variazione tra gli alberi nel modello e alla fine si traduce in una minore correlazione tra gli alberi e una maggiore diversificazione.,
Passiamo attraverso un esempio visivo: nell’immagine sopra, l’albero decisionale tradizionale (in blu) può selezionare tutte e quattro le funzionalità al momento di decidere come dividere il nodo. Decide di andare con la funzione 1 (nero e sottolineato) in quanto divide i dati in gruppi il più separati possibile.
Ora diamo un’occhiata alla nostra foresta casuale. Esamineremo solo due degli alberi della foresta in questo esempio. Quando controlliamo random forest Tree 1, scopriamo che può considerare solo le caratteristiche 2 e 3 (selezionate casualmente) per la sua decisione di divisione dei nodi., Sappiamo dal nostro albero decisionale tradizionale (in blu) che la funzione 1 è la caratteristica migliore per la divisione, ma l’albero 1 non può vedere la funzione 1 quindi è costretto ad andare con la funzione 2 (nero e sottolineato). Albero 2, d’altra parte, può vedere solo Caratteristiche 1 e 3 quindi è in grado di scegliere Caratteristica 1.
Quindi nella nostra foresta casuale, finiamo con alberi che non solo sono addestrati su diversi set di dati (grazie all’insacco) ma usano anche diverse funzionalità per prendere decisioni.,
E questo, mio caro lettore, crea alberi non correlati che si tamponano e si proteggono a vicenda dai loro errori.
Conclusione
Le foreste casuali sono una delle mie preferite. Venendo dal mondo della finanza e degli investimenti, il santo Graal era sempre quello di costruire un gruppo di modelli non correlati, ognuno con un rendimento atteso positivo, e poi metterli insieme in un portafoglio per guadagnare massive alpha (alpha = market beating returns). Molto più facile a dirsi che a farsi!
La foresta casuale è l’equivalente della scienza dei dati. Rivediamo un’ultima volta., Cos’è un classificatore di foresta casuale?
La foresta casuale è un algoritmo di classificazione costituito da molti alberi di decisioni. Utilizza l’insaccamento e la casualità delle caratteristiche quando si costruisce ogni singolo albero per cercare di creare una foresta di alberi non correlata la cui previsione da parte del comitato è più accurata di quella di qualsiasi singolo albero.
Di cosa abbiamo bisogno affinché la nostra foresta casuale effettui previsioni di classe accurate?
- Abbiamo bisogno di funzionalità che abbiano almeno una certa potenza predittiva., Dopo tutto, se mettiamo la spazzatura in poi otterremo spazzatura fuori.
- Gli alberi della foresta e soprattutto le loro previsioni devono essere non correlati (o almeno avere basse correlazioni tra loro). Mentre l’algoritmo stesso tramite la casualità delle caratteristiche cerca di progettare queste basse correlazioni per noi, le funzionalità che selezioniamo e gli iper-parametri che scegliamo influenzeranno anche le correlazioni finali.
Grazie per la lettura. Spero che tu abbia imparato tanto dalla lettura di questo come ho fatto io dalla scrittura. Salute!