Cos'è una Foresta casuale?

Foresta casuale è un algoritmo di machine learning supervisionato. È uno degli algoritmi più usati grazie alla sua accuratezza, semplicità e flessibilità. Il fatto che possa essere usato per compiti di classificazione e regressione, unito alla sua natura non lineare, lo rende altamente adattabile a una gamma di dati e situazioni.

Diagramma della foresta casuale

Il termine "foresta decisionale casuale" è stato proposto per la prima volta nel 1995 da Tin Kam Ho. Ho ha sviluppato una formula per usare dati casuali per creare previsioni. Poi nel 2006, Leo Breiman e Adele Cutler hanno esteso l'algoritmo e creato le foreste casuali come le conosciamo oggi. Ciò significa che questa tecnologia, e la matematica e la scienza dietro di essa, sono ancora relativamente nuove.

Si chiama "foresta" perché fa crescere una foresta di alberi di decisione. I dati di questi alberi vengono poi fusi insieme per assicurare le previsioni più accurate. Mentre un albero decisionale da solo dispone di un risultato e una gamma ristretta di gruppi, la foresta assicura un risultato più accurato con un numero maggiore di gruppi e decisioni. Ha l'ulteriore vantaggio di aggiungere casualità al modello trovando la caratteristica migliore tra un sottoinsieme casuale di caratteristiche. Nel complesso, questi benefici creano un modello con un'ampia diversità che molti data scientist privilegiano.

Cos'è un albero decisionale?

Un albero decisionale è qualcosa che probabilmente usi ogni giorno nella vita. È come se chiedessi ai tuoi amici consigli su quale divano comprare. Gli amici ti chiederanno cosa è importante per te. La dimensione? Il colore? Tessuto o pelle? Sulla base di queste decisioni, puoi rintracciare il divano perfetto in base alle tue scelte. Un albero decisionale fondamentalmente pone una serie di domande vere o false che portano ad una certa risposta.

Ogni "prova" (pelle o tessuto?) si chiama nodo. Ogni ramo rappresenta il risultato di quella scelta (tessuto). Ogni nodo foglia è un'etichetta di quella decisione. Ovviamente negli scenari reali, divide le osservazioni in modo che interi gruppi siano diversi, con conseguenti sottogruppi simili tra loro ma diversi dagli altri gruppi.

La differenza tra alberi decisionali e foreste casuali

Una foresta casuale è un gruppo di alberi decisionali. Tuttavia, ci sono alcune differenze tra i due. Un albero decisionale tende a creare regole, che usa per prendere decisioni. Una foresta casuale sceglierà casualmente delle caratteristiche e farà delle osservazioni, costruirà una foresta di alberi decisionali e poi farà la media dei risultati.

La teoria è che un gran numero di alberi non correlati creerà previsioni più accurate di un singolo albero decisionale. Questo perché il volume di alberi lavora insieme per proteggersi a vicenda dagli errori individuali e dall'overfitting.

Affinché una foresta casuale funzioni bene, ha bisogno di tre cose:

  • Un segnale identificabile in modo che i modelli non stiano solo tirando a indovinare.
  • Le previsioni fatte dagli alberi devono avere bassi livelli di correlazione con gli altri alberi.
  • Caratteristiche che hanno un certo livello di potere predittivo: GI=GO.
Visualizzazioni/grafici con Spotfire
Visualizzazioni/grafici con Spotfire
Dai un'occhiata a questa demo per vedere quanto Spotfire sia in grado di rendere facile la visualizzazione dei tuoi dati sotto ogni aspetto.

Come si usa un algoritmo Foresta casuale nel mondo degli affari?

Esistono molte applicazioni di foresta casuale in contesti aziendali. Per esempio, un singolo albero decisionale potrebbe classificare un set di dati relativi al vino, separando i vari vini in vini leggeri o pesanti.

La foresta casuale crea molti alberi, rendendo le previsioni del risultato finale molto più sofisticate. Può prendere i vini e avere più alberi, confrontando prezzi, tannini, acidità, contenuto alcolico, zucchero, disponibilità e tutta una serie di altre caratteristiche. Poi, facendo la media dei risultati, può fare previsioni sui (probabilmente) migliori vini in generale, basandosi su un enorme numero di criteri.

In un'azienda, un algoritmo di foresta casuale potrebbe essere usato in uno scenario in cui c'è una serie di dati di input e un insieme complesso di circostanze. Per esempio, individuare quando un cliente sta per lasciare un'azienda. L'abbandono dei clienti è complesso e di solito coinvolge una serie di fattori: il costo dei prodotti, la soddisfazione del prodotto finale, l'efficienza dell'assistenza clienti, la facilità di pagamento, la durata del contratto, le caratteristiche extra offerte, così come i dati demografici come il sesso, l'età e la posizione. Un algoritmo foresta casuale crea alberi decisionali per tutti questi fattori e può prevedere accuratamente quali clienti dell'organizzazione sono ad alto rischio di abbandono.

Un altro esempio complesso sarebbe cercare di prevedere quali clienti avranno la spesa maggiore in un anno. Viene analizzata una gamma completa di variabili e attributi e possono essere fatte previsioni sulla clientela a cui l'ufficio marketing deve puntare quell'anno.

Bagging in foreste decisionali

Il bagging, altrimenti noto come aggregazione bootstrap, permette ai singoli alberi decisionali di campionare casualmente dal set di dati e sostituire i dati, creando risultati molto diversi nei singoli alberi. Questo significa che invece di includere tutti i dati disponibili, ogni albero prende solo alcuni dei dati. Questi alberi singoli prendono quindi decisioni basate sui dati a loro disposizione e prevedono i risultati basandosi solo su questi punti dati.

Ciò significa che in ogni foresta casuale, sono presenti alberi addestrati su dati diversi e hanno usato caratteristiche diverse per prendere decisioni. Questo fornisce un buffer per gli alberi, proteggendoli da errori e previsioni errate.

Il processo di bagging utilizza solo circa due terzi dei dati, quindi il terzo rimanente può essere usato come set di prova.

Vantaggi della foresta casuale

Importanza relativa facile da misurare

È semplice misurare l'importanza di una caratteristica guardando i nodi che usano quella caratteristica per ridurre l'impurità in tutti gli alberi di quella foresta. È facile vedere la differenza prima e dopo la permutazione della variabile e questo dà una misura dell'importanza di quella variabile.

Versatile

Poiché una foresta casuale può essere usata sia per compiti di classificazione che di regressione, è molto versatile. Può facilmente gestire le caratteristiche binarie e numeriche così come quelle categoriche, senza bisogno di trasformazione o ridimensionamento. A differenza di quasi tutti gli altri modelli, è incredibilmente efficiente con tutti i tipi di dati.

Nessun overfitting

Finché ci sono abbastanza alberi nella foresta, c'è poco o nessun rischio di overfitting. Anche gli alberi di decisione possono finire in overfitting. Le foreste casuali lo impediscono costruendo alberi di dimensioni diverse dai sottoinsiemi e combinando i risultati.

Altamente precisa

L'utilizzo di un certo numero di alberi con differenze significative tra i sottogruppi rende le foreste casuali uno strumento di previsione molto accurato.

Riduce il tempo speso nella gestione dei dati

Con l'elaborazione tradizionale dei dati, gran parte del tempo prezioso viene speso per la pulizia dei dati. Una foresta casuale lo riduce al minimo, poiché tratta bene i dati mancanti. I test fatti confrontando le previsioni risultanti da dati completi e incompleti hanno mostrato livelli di resa quasi identici. I dati fuori scala e le caratteristiche non lineari vengono essenzialmente scartati.

Le tecniche di foresta casuale lavorano anche per bilanciare gli errori in popolazioni e altri insiemi di dati sbilanciati. Lo fa minimizzando il tasso di errore, quindi una classe più grande avrà un tasso di errore più basso e una classe più piccola avrà un tasso più grande.

Velocità di addestramento rapida

Poiché le foreste casuali utilizzano un sottoinsieme di caratteristiche, possono esaminare rapidamente centinaia di caratteristiche diverse. Questo significa che anche la velocità di previsione è più rapida di altri modelli, poiché le foreste generate possono essere salvate e riutilizzate in futuro.

Sfide della foresta casuale

Risultati più lenti

Poiché l'algoritmo sta costruendo molti alberi, aumenta la sofisticazione e la precisione delle previsioni. Tuttavia, rallenta la velocità del processo, poiché sta costruendo centinaia o migliaia di alberi. Questo lo rende inefficace per le previsioni in tempo reale.

Soluzione: è possibile usare il campionamento out-of-bag (OOB), dove solo due terzi dei dati sono usati per fare previsioni. Il processo della foresta casuale è anche parallelizzabile, quindi il processo può essere suddiviso su molte macchine, funzionando in un tempo molto più veloce di quello che sarebbe in un sistema singolo.

Incapace di estrapolare

Una previsione della foresta casuale si basa su una media di etichette osservate in precedenza. La sua gamma è limitata dalle etichette più basse e più alte nei dati di formazione. Mentre questo è un problema solo in uno scenario in cui gli input di formazione e di previsione hanno diversa gamma e distribuzioni, questo spostamento delle covariate è un problema che indica la necessità in alcune situazioni di usare un modello diverso.

Bassa interpretabilità

I modelli di foresta casuale sono l'ultima scatola nera. Non sono spiegabili, quindi è difficile capire come o perché sono arrivati a una certa decisione. Questa impenetrabilità significa che il modello deve essere semplicemente ritenuto attendibile così com'è e i risultati accettati così come sono.

Alternative alla foresta casuale

Reti neurali (NN)

Una rete neurale è una serie di algoritmi che lavorano insieme per identificare le relazioni nei dati. È progettata per cercare di replicare come funziona il cervello umano, cambiando e adattandosi sempre per adattarsi ai dati in arrivo. Ha vantaggi significativi rispetto alla foresta casuale, in quanto può lavorare con dati diversi da quelli in formato tabella, come l'audio e le immagini. Può anche essere regolato finemente con molti iperparametri che possono essere modificati per adattarsi ai dati e al risultato richiesto.

Tuttavia, se i dati con cui si lavora sono solo tabulari, è meglio attenersi alla foresta casuale, poiché è più semplice e dà ancora buoni risultati. Le reti neurali possono essere ad alta intensità di lavoro e di calcolo, e per molti calcoli il dettaglio granulare potrebbe semplicemente non essere necessario. Per semplici dati tabulari, sia le reti neurali sia le foreste casuali hanno prestazioni simili in termini di previsioni.

Extreme Gradient Boosting (XGBoost)

A quanto si sostiene, eXtreme Gradient Boosting è più accurato delle foreste casuali e più potente. Unisce una foresta casuale e il gradient boosting (GBM) per creare una serie di risultati molto più accurati. XGBoost fa passi più lenti, prevedendo in modo sequenziale piuttosto che indipendente. Utilizza i modelli nei residui, rafforzando il modello. Questo significa che l'errore previsto è inferiore alle previsioni della foresta casuale.

Modelli lineari

I modelli di previsione lineare sono una delle tecniche di machine learning più semplici. Sono ampiamente utilizzati e, se eseguiti sul giusto set di dati, sono un potente strumento di previsione. Sono anche facili da interpretare e non hanno l'effetto scatola nera di una foresta casuale. Tuttavia, sono significativamente meno agili di una foresta casuale, poiché usano solo dati lineari. Se i dati non sono lineari, le foreste casuali daranno le migliori previsioni.

Modelli a grappolo

I cinque principali metodi di clustering includono il clustering fuzzy, il clustering basato sulla densità, i metodi di partizionamento, il clustering basato sul modello e il clustering gerarchico. Tutti, in qualche forma, funzionano raggruppando un gruppo di oggetti in gruppi simili o cluster. È una tecnica usata in molti campi della scienza dei dati e fa parte del data mining, del riconoscimento di pattern e del machine learning. Pur essendo possibile usare il clustering all'interno di una foresta casuale, è una tecnica a sé stante.

I modelli a cluster sono eccellenti nell'adattarsi a nuovi esempi, generalizzando le dimensioni e le forme dei cluster, e i loro risultati forniscono preziose intuizioni sui dati.

Tuttavia, il clustering non affronta bene gli outlier e la distribuzione non gaussiana. Il clustering può avere problemi di scala quando si elabora un gran numero di campioni. Infine, il numero di caratteristiche può essere elevato, anche più del numero di campioni.

Macchina a vettori di supporto (SVM)

Le macchine a vettori di supporto analizzano i dati, che vengono poi utilizzati per l'analisi della regressione e la classificazione. È un metodo di previsione solido e costruisce in modo affidabile modelli che categorizzano i punti dati. Questi modelli si basano sull'idea di distanza tra i punti, anche se ciò può non essere significativo in tutti i casi. Mentre una foresta casuale dice la probabilità di appartenere a una classe in un problema di classificazione, la macchina vettoriale di supporto fornisce una distanza da un confine, quindi richiede comunque una conversione per renderla una probabilità.

Rete bayesiana

Una rete bayesiana è un modello grafico che mostra variabili, dipendenze e probabilità. Sono usate per costruire modelli dai dati, prevedere i risultati, rilevare anomalie, fornire ragionamenti, eseguire diagnosi e assistere nel processo decisionale. Le reti bayesiane sono generative e modellano la distribuzione di probabilità da variabili casuali date. Sono più adatte per interrogazioni complesse su variabili casuali.

Le foreste casuali sono modelli descrittivi e sono generalmente utilizzate per la classificazione. Se la causalità è di interesse, allora le reti bayesiane possono essere più adatte delle foreste casuali. Se il gruppo di dati è grande, le foreste casuali sono preferibili.

Prova TIBCO Spotfire - Prova gratuita
Prova TIBCO Spotfire - Prova gratuita
Spotfire ha strumenti di foresta casuale per abilitare il machine learning ad albero decisionale per la classificazione e la regressione. Provalo gratuitamente oggi stesso!

Il futuro della foresta casuale

Altamente efficace, adattabile e agile, la foresta casuale è il modello di machine learning supervisionato preferito da molti data scientist. Offre una serie di vantaggi che molte alternative non offrono e fornisce previsioni e classificazioni accurate. Tuttavia, è in gran parte inspiegabile e può essere un po' una scatola nera riguardo al modo in cui si ottengono i risultati.

In futuro, è possibile che la combinazione della foresta casuale classica con altre strategie possa rendere le previsioni più accurate e ottimizzare ulteriormente i risultati. Inoltre, il salto verso il machine learning spiegabile sta ora diventando più di una realtà e può aiutare a scoprire alcuni dei misteri delle previsioni della foresta casuale.