Le foreste casuali sono una raccolta di più alberi decisionali che vengono addestrati indipendentemente l'uno dall'altro . Quindi non c'è idea dell'allenamento dipendente in sequenza (come nel caso degli algoritmi di potenziamento ). Di conseguenza, come indicato in un'altra risposta, è possibile eseguire un allenamento parallelo degli alberi.
Potresti sapere da dove proviene il "random" nella foresta casuale: ci sono due modi in cui la casualità viene iniettata nel processo di apprendimento degli alberi. Il primo è la selezione casuale di punti dati utilizzati per l'addestramento di ciascuno degli alberi, e il secondo è la selezione casuale di funzioni utilizzate nella costruzione di ciascun albero. Dato che un singolo albero decisionale tende generalmente a sovrautilizzare i dati, l'iniezione della casualità in questo modo si traduce in un gruppo di alberi in cui ognuno di essi ha una buona precisione (e possibilmente un eccesso di capacità) su un sottoinsieme diverso dei dati di addestramento disponibili . Pertanto, quando prendiamo la media delle previsioni fatte da tutti gli alberi, osserveremmo una riduzione del sovradimensionamento (rispetto al caso della formazione di un singolo albero decisionale su tutti i dati disponibili ).
Per capire meglio questo, ecco uno schizzo approssimativo del processo di addestramento, supponendo che tutti i punti dati siano memorizzati in un set indicato da e il numero di alberi nella foresta è :MN
- i = 0
- Prelevare un campione boostrap di (cioè campionare con la sostituzione e con le stesse dimensioni di ) che è indicato da .MMSio
- Formare -esimo albero, indicato , utilizzando come dati di input.
ioTioSio
- il processo di addestramento è uguale all'addestramento di un albero decisionale, tranne con la differenza che in ciascun nodo dell'albero viene utilizzata solo una selezione casuale di funzioni per la divisione in quel nodo.
- i = i + 1
- se vai al passaggio 2, altrimenti tutti gli alberi sono stati addestrati, quindi l'addestramento casuale nella foresta è terminato.i < N
Nota che ho descritto l'algoritmo come un algoritmo sequenziale, ma poiché l'allenamento degli alberi non dipende l'uno dall'altro, puoi anche farlo in parallelo. Ora per la fase di previsione, prima fai una previsione per ogni albero (cioè , , ..., ) nella foresta e poi:T1T2TN
Se viene utilizzato per un'attività di regressione, prendere la media delle previsioni come previsione finale della foresta casuale.
Se viene utilizzato per un'attività di classificazione, utilizzare la strategia di voto morbido : prendere la media delle probabilità previste dagli alberi per ogni classe, quindi dichiarare la classe con la probabilità media più alta come previsione finale della foresta casuale.
Inoltre, vale la pena ricordare che è possibile addestrare gli alberi in modo dipendente in sequenza ed è esattamente ciò che fa l'algoritmo degli alberi a gradiente , che è un metodo completamente diverso dalle foreste casuali.