Overfitting, regularização e parada antecipada

Ao contrário das florestas aleatórias, as árvores otimizadas com gradiente podem overfitting. Portanto, quanto a redes neurais, é possível aplicar a regularização e a parada antecipada usando um conjunto de dados de validação.

Por exemplo, as figuras a seguir mostram curvas de perda e acurácia para conjuntos de treinamento e validação ao treinar um modelo de GBT. Observe o grau de divergência das curvas, o que sugere um alto grau de overfitting.

Representa a perda de treinamento e perda de validação em comparação com o número de
  árvores de decisão. A perda de treinamento diminui gradualmente à medida que o número
 de árvores de decisão aumenta. No entanto, a perda de validação diminui apenas
  até cerca de 40 árvores de decisão. Com mais de 40 árvores de decisão,
  a perda de validação aumenta. Com 400 árvores de decisão, a
  lacuna entre a perda de treinamento e a perda de validação é
  enorme.

Figura 29. Perda x número de árvores de decisão.

 

Gráficos de acurácia do treinamento e precisão da validação em comparação com o número de
  árvores de decisão. A precisão do treinamento aumenta gradualmente à medida que o número
  de árvores de decisão aumenta, alcançando um pico de quase 1,0 a 400
  árvores de decisão. A precisão da validação aumenta para cerca de 0,86 em 40
 árvores de decisão, depois diminui gradualmente para 0,83 a 400
 árvores de decisão.

Figura 30. Acurácia x número de árvores de decisão.

 

Os parâmetros mais comuns de regularização para árvores otimizadas com gradiente incluem:

  • É a profundidade máxima da árvore.
  • A taxa de redução.
  • A proporção de atributos testados em cada nó.
  • Coeficiente L1 e L2 na perda.

Observe que as árvores de decisão geralmente ficam muito mais superficiais do que os modelos aleatórios de floresta. Por padrão, as árvores de árvores otimizadas com gradiente no TF-DF apresentam a profundidade 6. Como as árvores são rasas, o número mínimo de exemplos por folha tem pouco impacto e geralmente não é ajustado.

A necessidade de um conjunto de dados de validação é um problema quando o número de exemplos de treinamento é pequeno. Portanto, é comum treinar árvores otimizadas com gradiente dentro de um loop de validação cruzada ou desativar a parada antecipada quando o modelo não tem overfitting.

Exemplo de uso

No capítulo anterior, treinamos uma floresta aleatória com um conjunto de dados pequeno. Neste exemplo, simplesmente substituiremos o modelo aleatório de floresta por um modelo de árvores otimizadas com gradiente:

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.

Uso e limitações

As árvores otimizadas com gradiente têm alguns prós e contras.

Vantagens

  • Assim como as árvores de decisão, elas são nativamente compatíveis com atributos numéricos e categóricos e, em geral, não precisam de pré-processamento de atributos.
  • As árvores otimizadas com gradiente têm hiperparâmetros padrão que geram bons resultados. No entanto, ajustar esses hiperparâmetros pode melhorar significativamente o modelo.
  • Os modelos de árvores otimizadas com gradiente geralmente são pequenos (em número de nós e na memória) e rápidos para execução (geralmente apenas um ou alguns μs / exemplos).

Desvantagens

  • As árvores de decisão precisam ser treinadas em sequência, o que pode atrasar consideravelmente o treinamento. No entanto, a lentidão do treinamento é um pouco deslocada porque as árvores de decisão estão menores.
  • Assim como as florestas aleatórias, as árvores otimizadas com gradiente não podem aprender e reutilizar representações internas. Cada árvore de decisão (e cada ramificação de cada árvore de decisão) precisa reaprender o padrão do conjunto de dados. Em alguns conjuntos de dados, principalmente em conjuntos de dados com dados não estruturados (por exemplo, imagens, texto), as árvores aprimoradas por gradiente têm resultados mais fracos do que outros métodos.