No curso "Regressão: aprimorando os resultados com XGBoost", é utilizada na aula 3, item 04 a validação cruzada. No exercício a instrutora utiliza o seguinte código baixo:
params = {'objective': 'reg:squarederror'}
cv_resultados = xgb.cv(dtrain=dtreino, params=params, nfold=5, num_boost_round=1000,
early_stopping_rounds=10, metrics='rmse', as_pandas=True, seed=4789)
cv_resultados
Notar que se vai haver validação cruzada em em X folds, para ser possível fazer a validação, o conjunto utilizado no parâmetro dtrain NÃO deveria ser somente o dtreino, mas o dtreino + dteste, ou seja, a matriz D para o conjunto todo de dados, pois, a partir desse conjunto, é que haverá a divisão em X folds.
*Importante observar que esse procedimento é repetido em outras partes do curso.
Observar que na aula 4, item 02 pode-se observar no código abaixo:
from sklearn.model_selection import GridSearchCV
import numpy as np
param_grid = {
'colsample_bytree': [0.6, 1], # Define quantas colunas, featuras serão consideradas
'subsample': [0.5, 0.8, 1], # Número de linhas (amostras) que serão utilizadas
'max_depth': [3, 5, 10],
'learning_rate': [0.1,0.2,0.3]
}
gbm = xgb.XGBRegressor(enable_categorical=True)
grid = GridSearchCV(
estimator = gbm,
param_grid = param_grid,
scoring = 'neg_mean_squared_error',
cv = 5,
verbose = 1
)
grid.fit(X, y)
print('Melhores hiperparâmetros encontrados: ', grid.best_params_)
print('Menor RMSE encontrado: ', np.sqrt(np.abs(grid.best_score_)))
Nota-se no código acima que aqui também tem validação cruzada e são utilizados todos os dados e não somente os de treinamento.