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.