Overfitting, regolarizzazione e interruzione anticipata

A differenza delle foreste casuali, gli alberi con boosting per gradiente possono essere soggetti a overfitting. Pertanto, come per le reti neurali, puoi applicare la regolarizzazione e l'interruzione anticipata utilizzando un set di dati di convalida.

Ad esempio, le seguenti figure mostrano le curve di perdita e accuratezza per i set di addestramento e convalida durante l'addestramento di un modello GBT. Nota quanto sono divergenti le curve, il che suggerisce un elevato grado di overfitting.

Grafici della perdita di addestramento e della perdita di convalida rispetto al numero di 
  strutture ad albero decisionali. La perdita di addestramento diminuisce gradualmente con l'aumento del numero di alberi decisionali. Tuttavia, la perdita di convalida diminuisce solo fino a circa 40 strutture decisionali. Con più di 40 alberi decisionali,
  la perdita di convalida aumenta effettivamente. Con 400 alberi decisionali, il
  divario tra la perdita di addestramento e la perdita di convalida è
  enorme.

Figura 29. Perdita rispetto al numero di alberi decisionali.

 

Grafici dell'accuratezza di addestramento e dell'accuratezza di convalida rispetto al numero di esborsi
  decisionali. L'accuratezza dell'addestramento aumenta gradualmente con l'aumento del numero di alberi decisionali, raggiungendo un picco di quasi 1,0 con 400 alberi decisionali. L'accuratezza della convalida aumenta a circa 0,86 con 40
  alberi decisionali, poi diminuisce gradualmente a circa 0,83 con 400
  alberi decisionali.

Figura 30. Accuratezza rispetto al numero di alberi decisionali.

 

I parametri di regolarizzazione comuni per gli alberi con boosting del gradiente includono:

  • La profondità massima dell'albero.
  • Il tasso di ritiro.
  • Il rapporto tra gli attributi testati su ciascun nodo.
  • Coefficiente L1 e L2 sulla perdita.

Tieni presente che gli alberi decisionali in genere sono molto meno profondi dei modelli di foresta random. Per impostazione predefinita, gli alberi con boosting per gradiente in TF-DF vengono coltivati fino alla sesta profondità. Poiché gli alberi sono poco profondi, il numero minimo di esempi per foglia ha un impatto ridotto e in genere non viene ottimizzato.

La necessità di un set di dati di convalida è un problema quando il numero di esempi di addestramento è ridotto. Pertanto, è comune addestrare gli alberi con boosting della curva di apprendimento all'interno di un ciclo di convalida incrociata o disattivare l'interruzione anticipata quando si sa che il modello non presenta overfitting.

Esempio di utilizzo

Nel capitolo precedente abbiamo addestrato una foresta casuale su un piccolo set di dati. In questo esempio, sostituiremo semplicemente il modello di foresta casuale con un modello di albero con boosting graduale:

model = tfdf.keras.GradientBoostedTreesModel()

# Part of the training dataset will be used as validation (and removed
# from training).
model.fit(tf_train_dataset)

# The user provides the validation dataset.
model.fit(tf_train_dataset, validation_data=tf_valid_dataset)

# Disable early stopping and the validation dataset. All the examples are
# used for training.
model.fit(
   tf_train_dataset,
   validation_ratio=0.0,
   early_stopping="NONE")
# Note: When "validation_ratio=0", early stopping is automatically disabled,
# so early_stopping="NONE" is redundant here.

Utilizzo e limitazioni

Gli alberi con boosting per gradiente presentano alcuni pro e contro.

Vantaggi

  • Come le reti decisionali, supportano in modo nativo le funzionalità numeriche e categoriche e spesso non richiedono la preelaborazione delle funzionalità.
  • Gli alberi con boosting della curva di apprendimento hanno iperparametri predefiniti che spesso danno ottimi risultati. Tuttavia, l'ottimizzazione di questi iperparametri può migliorare notevolmente il modello.
  • I modelli ad albero con boosting per gradiente sono generalmente piccoli (in termini di numero di nodi e di memoria) e rapidi da eseguire (spesso solo uno o pochi µs / esempi).

Svantaggi

  • Gli alberi decisionali devono essere addestrati in sequenza, il che può rallentare notevolmente l'addestramento. Tuttavia, il rallentamento dell'addestramento è in qualche modo compensato dal fatto che le strutture decisionali sono più piccole.
  • Come le foreste casuali, gli alberi con boosting per gradiente non possono apprendere e riutilizzare le rappresentazioni interne. Ogni albero decisionale (e ogni ramo di ogni albero decisionale) deve relearn il pattern del set di dati. In alcuni set di dati, in particolare quelli con dati non strutturati (ad esempio immagini, testo), questo fa sì che gli alberi con boosting basato sul gradiente mostrino risultati peggiori rispetto ad altri metodi.