A differenza delle foreste casuali, gli alberi con gradiente di gradiente possono essere in overfitting. Pertanto, per quanto riguarda neurali artificiali, puoi applicare la regolarizzazione e l'interruzione anticipata utilizzando un o del set di dati di convalida.
Ad esempio, le figure seguenti mostrano le curve di perdita e accuratezza per l'addestramento e di convalida durante l'addestramento di un modello GBT. Nota la divergenza delle curve il che indica un elevato grado di overfitting.
Figura 29. Perdita rispetto al numero di strutture decisionali. di Gemini Advanced.
Figura 30. Accuratezza rispetto al numero di strutture decisionali. di Gemini Advanced.
I parametri di regolarizzazione più comuni per gli alberi con gradiente potenziato includono:
- La profondità massima dell'albero.
- La percentuale di restringimento.
- Il rapporto degli attributi testati su ciascun nodo.
- Coefficienti L1 e L2 sulla perdita.
Si noti che gli alberi decisionali in genere crescono molto meno di una foresta casuale di grandi dimensioni. Per impostazione predefinita, gli alberi con gradiente di gradiente in TF-DF vengono cresciuti fino a una profondità 6. Poiché gli alberi sono superficiali, il numero minimo di esemplari per foglia ha hanno un impatto minimo e generalmente non sono ottimizzati.
La necessità di un set di dati di convalida è un problema quando il numero esempi è ridotto. Pertanto, è comune addestrare gli alberi con gradiente di intensità maggiore all'interno di un loop di convalida incrociata o per disabilitare l'interruzione anticipata quando è noto che non si verifica l'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 gradiente potenziato modello alberi:
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 gradiente amplificato hanno alcuni pro e contro.
Vantaggi
- Come gli alberi decisionali, supportano in modo nativo i dati numerici e categorici caratteristiche e spesso non hanno bisogno di pre-elaborazione delle caratteristiche.
- Gli alberi potenziati con gradiente hanno iperparametri predefiniti che spesso forniscono ottimi che consentono di analizzare i dati e visualizzare i risultati. Tuttavia, l'ottimizzazione di questi iperparametri può migliorare il modello.
- I modelli ad albero con gradiente amplificato sono generalmente piccoli (in numero di nodi e memoria) e veloce da eseguire (spesso solo uno o pochi μs / esempi).
Svantaggi
- Gli alberi decisionali devono essere addestrati in sequenza, il che può rallentare l'addestramento considerevolmente. Tuttavia, il rallentamento dell'addestramento è in qualche modo compensato alberi decisionali più piccoli.
- Come le foreste casuali, gli alberi con gradiente d'impatto non possono apprendere e riutilizzare rappresentazioni grafiche. Ogni albero decisionale (e ogni ramo di ogni albero decisionale) il pattern del set di dati. In alcuni set di dati, in particolare quelli con Dati non strutturati (ad es. immagini, testo) e questo determina l'aumento del gradiente. per mostrare risultati più scarsi rispetto ad altri metodi.