Random forest

Indice dei contenuti

    Una random forest combina molti alberi di decisione addestrati su campioni bootstrap dei dati. A ogni split considera solo un sottoinsieme casuale di feature, riducendo la correlazione tra alberi.

    Il risultato aggrega voti o medie degli alberi, riducendo la varianza rispetto a un singolo albero.

    Le random forest sono robuste e performanti su molti dati tabellari, ma meno interpretabili di un albero singolo. L’errore out-of-bag fornisce una stima interna dell’errore senza una validazione separata completa.

    Idea di base

    Un singolo albero decisionale è molto flessibile: può adattarsi bene ai dati di addestramento, ma tende ad avere alta varianza. La random forest riduce questo problema costruendo molti alberi diversi e combinandoli. La diversità nasce da due fonti:

    1. ogni albero vede un campione bootstrap diverso;
    2. a ogni nodo viene considerato solo un sottoinsieme casuale delle variabili disponibili.

    Il metodo è quindi una forma di bagging specializzata per alberi decisionali. Il bootstrap riduce la sensibilità al singolo campione; la selezione casuale delle feature riduce la somiglianza tra alberi, soprattutto quando poche variabili molto forti dominerebbero tutti gli split.

    Aggregazione delle previsioni

    In classificazione, se B è il numero di alberi e h_b(x) è la classe predetta dall’albero b, la previsione della foresta è spesso il voto di maggioranza:

    \hat y(x)= \operatorname{mode} \left\{ h_1(x),\dots,h_B(x) \right\}.

    In regressione, invece, si usa la media delle previsioni:

    \hat y(x)= \dfrac{1}{B}\sum_{b=1}^B h_b(x).

    La media riduce la varianza se gli alberi non sono perfettamente correlati. Per questo la casualizzazione delle feature è essenziale: molti alberi identici non migliorerebbero la stabilità della stima.

    Campioni bootstrap e out-of-bag

    Ogni albero viene addestrato su un campione ottenuto estraendo con reinserimento dal dataset originale. In media, circa il 63% delle osservazioni compare almeno una volta nel campione bootstrap di un albero; le restanti osservazioni sono out-of-bag per quell’albero.

    Per ogni osservazione si possono aggregare le previsioni degli alberi che non l’hanno vista in addestramento. Questo produce una stima interna dell’errore, detta errore out-of-bag:

    \operatorname{Err}_{\text{OOB}} = \dfrac{1}{n} \sum_{i=1}^n L\!\left(y_i,\hat y_i^{\text{OOB}}\right),

    dove L è una funzione di perdita. L’OOB è utile per diagnosticare il modello senza creare subito un validation set separato, ma non sostituisce sempre una validazione incrociata o un test set indipendente quando il rischio di leakage o selezione del modello è alto.

    Iperparametri principali

    Gli iperparametri più importanti sono:

    1. numero di alberi B;
    2. numero di feature candidate a ogni split;
    3. profondità massima degli alberi;
    4. numero minimo di osservazioni in una foglia;
    5. criterio di split, per esempio impurità di Gini, entropia o errore quadratico.

    Aumentare il numero di alberi riduce l’instabilità ma aumenta costo computazionale e memoria. Alberi troppo profondi possono essere molto variabili, ma l’aggregazione tende a compensare. Alberi troppo vincolati, invece, possono introdurre bias e ridurre la capacità del modello.

    Importanza delle variabili

    Le random forest forniscono misure pratiche di importanza delle feature. Una misura comune valuta la riduzione media dell’impurità prodotta dagli split su una variabile; un’altra, spesso più robusta, permuta i valori di una feature e misura quanto peggiora l’errore predittivo.

    Queste misure non vanno lette come causalità. Una variabile può apparire importante perché è correlata con una causa reale, perché sostituisce un’altra feature ridondante o perché codifica indirettamente una struttura del dataset.

    Vantaggi e limiti

    Le random forest funzionano bene su molti dati tabellari, gestiscono relazioni non lineari e interazioni senza specificarle esplicitamente, richiedono poca pre-elaborazione e sono relativamente robuste agli outlier. Sono spesso una base solida prima di modelli più complessi come gradient boosting.

    I limiti principali sono interpretabilità ridotta rispetto a un albero singolo, modelli grandi, predizioni meno lisce in regressione e difficoltà di extrapolazione fuori dall’intervallo osservato. Inoltre, con classi sbilanciate, metriche come accuratezza o OOB grezzo possono essere ingannevoli: conviene affiancare matrice di confusione, AUC o metriche tarate sul costo degli errori.

    Errori comuni

    Un errore frequente è considerare la random forest immune dall’overfitting. È più robusta di un singolo albero, ma può comunque sovradattarsi se la validazione è contaminata, se le feature includono informazioni future o se gli iperparametri vengono scelti guardando ripetutamente il test set.

    Un altro errore è usare l’importanza delle variabili come spiegazione causale. La random forest è un modello predittivo: per rispondere a domande causali servono disegno sperimentale, controllo dei confondenti e assunzioni esplicite.

    Ultimo aggiornamento: