Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Prevenzione dell'Overfitting negli Alberi Decisionali | Albero Decisionale
Classificazione con Python

Prevenzione dell'Overfitting negli Alberi Decisionali

Scorri per mostrare il menu

Prima di procedere con l'implementazione di un Decision Tree utilizzando Python, è importante affrontare un argomento fondamentale: overfitting - la principale sfida associata ai Decision Tree.

meme+friends

Di seguito è riportato un esempio di come il Decision Tree si adatti al dataset. Si noti come il modello si adatti ai dati di addestramento, catturandone schemi e particolarità:

DecisionBoundaryTree

Sebbene il modello adatti perfettamente il set di addestramento senza classificare erroneamente alcun esempio, il problema è che i confini di decisione sono troppo complessi. Di conseguenza, l'accuratezza sul test (o sulla cross-validazione) sarà significativamente inferiore rispetto a quella del set di addestramento, indicando che il modello overfitta.

La ragione di ciò è che il modello effettuerà tante suddivisioni quante sono necessarie per adattarsi perfettamente ai dati di addestramento.

Fortunatamente, l'albero decisionale è altamente configurabile, quindi è possibile regolare i suoi iperparametri per minimizzare l'overfitting.

Profondità massima dell'albero

La profondità di un nodo è la distanza (verticale) dal nodo alla radice dell'albero.

ProfonditàAlbero

È possibile limitare la profondità massima di un albero decisionale, rendendolo più piccolo e meno incline all'overfitting. Per farlo, si trasformano i nodi decisionali alla profondità massima in nodi foglia.

AnimazioneProfonditàAlbero

Ecco anche una gif che mostra come il confine decisionale cambia con diversi valori di profondità massima:

DecisionBoundaryTreeAnimation

Numero minimo di campioni

Un altro modo per vincolare l'albero è impostare il numero minimo di campioni sui nodi foglia. Questo renderà il modello più semplice e più robusto agli outlier.

TreeDepthAnimationLeaf

È possibile osservare come questo iperparametro influenzi il confine decisionale:

DecisionBoundaryTreeLeaf

Entrambi questi iperparametri sono disponibili nell'implementazione dell'Albero Decisionale di scikit-learn.
Per impostazione predefinita, l'albero non ha vincoli: max_depth è impostato su None, quindi non c'è limite alla profondità, e min_samples_leaf è impostato su 1.

question mark

Scegli l'affermazione ERRATA.

Seleziona la risposta corretta

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 3. Capitolo 3

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Sezione 3. Capitolo 3
some-alt