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.