Overfitting e potatura

Utilizzando l'algoritmo descritto sopra, possiamo addestrare un albero decisionale che classificherà perfettamente gli esempi di addestramento, supponendo che questi siano separabili. Tuttavia, se il set di dati contiene rumore, l'albero si adatta in modo eccessivo ai dati e mostra una scarsa precisione del test.

La figura seguente mostra un set di dati con rumore lineare tra una caratteristica x e l'etichetta y. La figura mostra anche un albero decisionale addestrato su questo set di dati senza alcun tipo di regolarizzazione. Questo modello prevede correttamente tutti gli esempi di addestramento (la previsione del modello corrisponde agli esempi di addestramento). Tuttavia, su un nuovo set di dati contenente lo stesso pattern lineare e un'istanza di rumore diversa, il modello avrebbe prestazioni scarse.

La pendenza generale è +1, ma poiché il set di dati è così rumoroso, a volte i singoli punti dati sono distanti dalla linea migliore.

Figura 12. Un set di dati con rumore.

 

Per limitare l'overfitting di una struttura decisionale, applica uno o entrambi i seguenti criteri di regolarizzazione durante l'addestramento della struttura decisionale:

  • Imposta una profondità massima: impedisce che gli alberi decisionali superino la profondità massima, ad esempio 10.
  • Imposta un numero minimo di esempi nella foglia: una foglia con un numero di esempi inferiore a un certo numero non verrà considerata per la suddivisione.

La figura seguente illustra l'effetto di un numero minimo diverso di esempi per foglia. Il modello acquisisce meno rumore.

Tre grafici, ciascuno che mostra gli effetti di un valore diverso per il numero minimo di esempi per foglia. I diversi valori sono 2, 5 e 10.

Figura 13. Numero minimo diverso di esempi per foglia.

Puoi anche regolarizzare dopo l'addestramento rimuovendo (eliminando) selettivamente determinati rami, ovvero convertendo alcuni nodi non foglia in foglie. Una soluzione comune per selezionare i rami da rimuovere è utilizzare un set di dati di convalida. Ciò significa che se la rimozione di un ramo migliora la qualità del modello nel set di dati di convalida, il ramo viene rimosso.

Il seguente disegno illustra questa idea. Qui testiamo se la precisione di convalida dell'albero decisionale sarebbe migliorata se il nodo verde non foglia fosse trasformato in una foglia, ovvero eliminando i nodi arancioni.

Due alberi decisionali. Un albero decisionale contiene 9 nodi, mentre l'altro è stato ridotto a soli 6 nodi trasformando una delle condizioni in una foglia.

Figura 14. Potatura di una patologia e dei suoi figli in una foglia.

 

La figura seguente illustra l'effetto dell'utilizzo del 20% del set di dati come convalida per eliminare l'albero decisionale:

Un diagramma che mostra un modello irregolare e troppo attrezzato rispetto a un modello
ideale di una linea retta

Figura 15. Utilizzare il 20% del set di dati per eliminare l'albero decisionale.

 

Tieni presente che l'uso di un set di dati di convalida riduce il numero di esempi disponibili per l'addestramento iniziale dell'albero decisionale.

Molti creatori di modelli applicano più criteri. Ad esempio, puoi eseguire tutte le seguenti operazioni:

  • Applica un numero minimo di esempi per foglia.
  • Applica una profondità massima per limitare la crescita della struttura decisionale.
  • Elimina l'albero decisionale.
Codice YDF
In YDF, gli algoritmi di apprendimento sono preconfigurati con valori predefiniti per tutti gli iperparametri di eliminazione. Ad esempio, ecco i valori predefiniti per due iperparametri di eliminazione:
  • Il numero minimo di esempi è 5 (min_examples = 5)
  • Il 10% del set di dati di addestramento viene conservato per la convalida (validation_ratio = 0.1).
Puoi disabilitare l'eliminazione con il set di dati di convalida impostando validation_ratio=0.0.

Questi criteri introducono nuovi iperparametri che devono essere ottimizzati (ad es. la profondità massima degli alberi), spesso con l'ottimizzazione automatizzata degli iperparametri. Gli alberi decisionali sono sufficientemente veloci per l'addestramento all'uso dell'ottimizzazione degli iperparametri con convalida incrociata. Ad esempio, su un set di dati con esempi "n":

  • Dividi gli esempi di addestramento in gruppi non sovrapposti. Ad esempio: p=10.
  • Per tutti i possibili valori degli iperparametri; ad esempio profondità massima in {3,5,6,7,8,9}, esempi minimi in {5,8,10,20}.
    • Valutare, su ogni gruppo, la qualità di un albero decisionale addestrato sugli altri gruppi p-1.
    • Ottieni la media della valutazione tra i gruppi.
  • Seleziona il valore dell'iperparametro con la migliore valutazione media.
  • Addestra un albero decisionale finale utilizzando tutti gli esempi "n" con gli iperparametri selezionati.

In questa sezione abbiamo parlato dei modi in cui gli alberi decisionali limitano l'overfitting. Nonostante questi metodi, l'underfitting e l'overfitting sono i principali punti deboli degli alberi decisionali. Le foreste decisionali introducono nuovi metodi per limitare l'overfitting, come vedremo più avanti.

Interpretazione dell'albero decisionale diretto

Gli alberi decisionali sono facilmente interpretabili. Detto questo, anche pochi esempi possono cambiare completamente la struttura, e di conseguenza l'interpretazione, dell'albero decisionale.

A causa del modo in cui vengono create le strutture decisionali, eseguendo il partizionamento degli esempi di addestramento, è possibile utilizzare un albero decisionale per interpretare il set di dati stesso (anziché il modello). Ogni foglia rappresenta un angolo particolare del set di dati.

Codice YDF
In YDF puoi osservare gli alberi con la funzione model.describe(). Puoi anche accedere a un singolo albero e tracciarlo con model.get_tree(). Per ulteriori dettagli, consulta il tutorial sull'ispezione dei modelli di YDF.

Tuttavia, l'interpretazione indiretta è anche informativa.