Sobes.tech
Middle — Senior

O que é early stopping em boosting e como validá-lo corretamente?

sobes.tech IA

Resposta da IA

Paragem precoce é um método para evitar o sobreajuste em algoritmos de boosting (por exemplo, XGBoost, LightGBM). A ideia é parar o treino quando a qualidade do modelo no conjunto de validação deixa de melhorar.

Como funciona:

  • Os dados são divididos em conjuntos de treino e validação.
  • Durante o treino, após cada iteração (adição de um novo algoritmo base), avalia-se a métrica no conjunto de validação.
  • Se a métrica não melhorar durante um número definido de iterações (parâmetro early_stopping_rounds), o treino é interrompido.

Validação correta:

  • O conjunto de validação deve ser independente do de treino.
  • A métrica deve refletir a tarefa (por exemplo, AUC para classificação).
  • Use validação cruzada com paragem precoce, se possível, para obter uma avaliação mais fiável.

Exemplo no LightGBM:

import lightgbm as lgb

train_data = lgb.Dataset(X_train, label=y_train)
valid_data = lgb.Dataset(X_valid, label=y_valid)

params = {'objective': 'binary', 'metric': 'auc'}

model = lgb.train(params, train_data, valid_sets=[valid_data], early_stopping_rounds=10)

Assim, o modelo irá parar se, durante 10 iterações, a qualidade na validação não melhorar.