Overfitting e potatura

Utilizzando l'algoritmo descritto sopra, possiamo addestrare un albero decisionale che classifichi perfettamente gli esempi di addestramento, supponendo che siano separabili. Tuttavia, se il set di dati contiene rumore, questo albero si adatterà eccessivamente ai dati e mostrerà una scarsa accuratezza del test.

La figura seguente mostra un set di dati con rumore con una relazione lineare tra un elemento 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 un rendimento scadente.

La pendenza generale è pari a +1, ma poiché il set di dati è molto rumoroso, a volte i singoli punti dati sono molto lontani dalla linea di adattamento migliore.

Figura 12. Un set di dati con rumore.

 

Per limitare l'overfitting di un albero decisionale, applica uno o entrambi i seguenti criteri di regolarizzazione durante l'addestramento dell'albero decisionale:

  • Imposta una profondità massima:impedisce alle strutture ad albero di decisione di superare una profondità massima, ad esempio 10.
  • Imposta un numero minimo di esempi nel nodo a foglia:un nodo a foglia con meno di un determinato numero di esempi non verrà preso in considerazione per la suddivisione.

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

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

Figura 13. Numero minimo di esempi diverso per ogni entità.

Puoi anche eseguire la regolarizzazione dopo l'addestramento rimuovendo (potando) selettivamente determinati rami, ovvero convertendo determinati nodi non foglia in foglie. Una soluzione comune per selezionare i rami da rimuovere è utilizzare un set di dati di convalida. In altre parole, 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 verifichiamo se l'accuratezza della convalida della struttura decisionale può essere migliorata se il nodo verde non foglia viene trasformato in una foglia, ovvero se vengono potati 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 un nodo foglia.

Figura 14. Potatura di una condizione e dei relativi elementi secondari in un nodo a foglia.

 

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

Un grafico che mostra un modello sovraadattato irregolare rispetto a un modello ideale con linea retta

Figura 15. Utilizzo del 20% del set di dati per potare la struttura decisionale.

 

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

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

  • Applica un numero minimo di esempi per riga.
  • Applica una profondità massima per limitare la crescita dell'albero decisionale.
  • Pota l'albero decisionale.
Codice YDF
In YDF, gli algoritmi di apprendimento sono preconfigurati con valori predefiniti per tutti gli iperparametri di potatura. Ad esempio, di seguito sono riportati i valori predefiniti per due iperparametri di potatura:
  • 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 disattivare 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 dell'albero), spesso con l'ottimizzazione automatica degli iperparametri. Gli alberi decisionali sono generalmente abbastanza rapidi da addestrare per utilizzare l'ottimizzazione degli iperparametri con la convalida incrociata. Ad esempio, in un set di dati con "n" esempi:

  • Dividi gli esempi di addestramento in p 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}.
    • Valuta, per ogni gruppo, la qualità di un albero decisionale addestrato sugli altri gruppi p-1.
    • Calcola 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 discusso i modi in cui gli alberi decisionali limitano il fenomeno di overfitting. Nonostante questi metodi, il sottoadattamento e il sovraadattamento sono i principali punti deboli degli alberi decisionali. Le foreste di alberi decisionali introducono nuovi metodi per limitare il fenomeno di overfitting, che vedremo più avanti.

Interpretazione diretta dell'albero decisionale

Gli alberi decisionali sono facilmente interpretabili. Detto questo, la modifica anche di alcuni esempi può cambiare completamente la struttura e quindi l'interpretazione dell'albero decisionale.

A causa del modo in cui vengono costruiti gli alberi decisionali, suddividendo gli esempi di addestramento, è possibile utilizzare un albero decisionale per interpretare il set di dati stesso (al contrario del modello). Ogni foglia rappresenta un determinato angolo del set di dati.

Codice YDF
In YDF, puoi esaminare gli alberi con la funzione model.describe(). Puoi anche accedere e tracciare singoli alberi con model.get_tree(). Per ulteriori dettagli, consulta il tutorial sull'ispezione del modello di YDF.

Tuttavia, anche l'interpretazione indiretta è informativa.