Na aula 4 do curso "Regressão: aprimorando os resultados com XGBoost" o GridSearchCV não consegue chamar adequadamente o Xgboost, se o scikit-learn e o Xgboost forem carregados em sua versão mais atual!!!
Para o exercício funcionar, é necessário utilizar versões anteriores de ambos :
!pip install scikit-learn==1.2.2
!pip install xgboost==2.0.1
Minha dúvida é o que poderia ser alterado no código, de modo a ser possível trabalhar com as bibliotecas mais recentes do scikit-learn e do xgboost.
Por exemplo, no código abaixo, na aula 4 item 02:
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]
}
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_)))
No código acima, no método grid.fit(X, y) ocorre um erro, se as versões forem as mais atuais do scikit-learn e do Xgboost.
Enfim, o que alterar no código acima para ser possível utilizar o GridSearchCV com XGBoost, ambos em suas versões mais recentes.