Overfitting, regularização e parada antecipada

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

Por exemplo, as figuras a seguir mostram curvas de perda e acurácia para treinamento e de validação ao treinar um modelo de GBT. Veja como as curvas são divergentes o que sugere um alto grau de overfitting.

Os gráficos de perda de treinamento e de validação em comparação com o número de
  árvores de decisão. A perda do treinamento diminui gradualmente conforme o número
  de árvores de decisão aumenta. No entanto, a perda de validação só diminui
  até cerca de 40 árvores de decisão. Com mais de 40 árvores de decisão,
  e a perda de validação realmente 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. .

 

Os gráficos de acurácia do treinamento e de validação em comparação com o número de
  árvores de decisão. A acurácia do treinamento aumenta gradualmente conforme o número
  das árvores de decisão aumenta, atingindo um pico de quase 1,0, em 400,
  árvores de decisão. A precisão da validação aumenta para cerca de 0,86 para 40
  árvores de decisão e cai gradualmente para cerca de 0, 83 na 400
  árvores.

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

 

Parâmetros 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ó.
  • coeficientes L1 e L2 na perda.

Observe que as árvores de decisão geralmente crescem em uma área muito mais rasa do que florestas aleatórias de modelos de machine learning. Por padrão, as árvores otimizadas com gradiente na TF-DF crescem até a profundidade 6. Como as árvores são rasas, o número mínimo de exemplos por folha tem 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 é pequeno. Portanto, é comum treinar árvores otimizadas com gradiente dentro de um loop de validação cruzada ou para desativar a parada antecipada quando o modelo por não apresentar overfitting.

Exemplo de uso

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

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 com aumento de gradiente têm alguns prós e contras.

Vantagens

  • Assim como as árvores de decisão, elas têm suporte nativo a valores atributos e muitas vezes não precisam de pré-processamento de atributos.
  • As árvores com aumento de gradiente têm hiperparâmetros padrão que, em geral, oferecem resultados. No entanto, ajustar esses hiperparâmetros pode para melhorar o modelo.
  • Modelos de árvore com aumento de gradiente geralmente são pequenos (em número de nós e memória) e rápida de executar (geralmente com apenas um ou alguns μs / exemplos).

Desvantagens

  • As árvores de decisão precisam ser treinadas sequencialmente, o que pode retardar o treinamento. consideravelmente. No entanto, a lentidão do treinamento é um pouco compensada pelo o número de árvores de decisão menores.
  • Como as florestas aleatórias, as árvores otimizadas com gradiente não podem aprender e reutilizar representações de vetor. 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, especialmente aqueles com dados não estruturados (por exemplo, imagens e texto), o que aumenta o gradiente para mostrar resultados mais fracos do que outros métodos.