Olá boa tarde, tudo bem?
Fiquei com uma dúvida sobre a seleção dos melhores hiperparâmetros. Segue o código abaixo:
from sklearn.model_selection import GridSearchCV
params = { 'learning_rate': [0.1, 0.2, 0.3], 'max_depth': [0, 2, 4, 6, 10], 'colsample_bytree': [0.1, 0.5, 1], 'n_estimators': [10, 25, 50] }
modelo_xgb = xgb.XGBClassifier()
grid_search_cv = GridSearchCV(estimator=modelo_xgb, param_grid=params, cv=4, scoring='accuracy', verbose=1)
grid_search_cv.fit(X, y)
print(f'Melhores parâmetros: {grid_search_cv.best_params_}') print(f'Acurácia: {grid_search_cv.best_score_}')
Saída: Fitting 4 folds for each of 135 candidates, totalling 540 fits Melhores parâmetros: {'colsample_bytree': 0.5, 'learning_rate': 0.1, 'max_depth': 0, 'n_estimators': 10} Acurácia: 0.8446005267778753
Usando o GridSearchCV eu obtive parâmetros diferentes do da professora, e ao ajustar depois com esses hiperpâmetros que obtive o resultado foi uma acurácia menor, de 0.80, mas ai eu copiei o código da aula e usei depois os mesmos hiperparâmetros que a professora, e deu uma acurácia maior de 0.85. Além disso com os hiperparâmetros que eu obtive pelo GridSearchCV, posteriormente em todas as outras métricas de avaliação eu obtive resultados inferiores aos da professora, como a curva ROC, relatório de métricas e matriz de confusão.
Minha dúvida é: Se com os mesmos hiperparâmetos que a professora obteve com o GridSearchCV o resultado foi até melhor, como eu posso ter certeza que os que eu obtive são os corretos para resolver os problemas em futuros projetos?