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.
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.
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.
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:
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.
- 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
).
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.
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.