Busca em grade
A otimização de hiperparâmetros pode ser feita pelo sklearn, fornecendo vários parâmetros de entrada, cada um dos quais pode ser gerado usando diversas funções do numpy. Um método de ajuste, que avalia exaustivamente todas as combinações de hiperparâmetros especificadas via param_grid, é a busca em grade (grid search). Neste exercício, você vai usar busca em grade para explorar os hiperparâmetros de um classificador de random forest, usando como função de avaliação a AUC da curva ROC.
X_train, y_train, X_test, y_test estão disponíveis no seu workspace. pandas como pd, numpy como np e sklearn também estão disponíveis. Além disso, GridSearchCV() de sklearn.model_selection está disponível.
Este exercício faz parte do curso
Prevendo CTR com Machine Learning em Python
Instruções do exercício
- Crie a lista de valores para cada hiperparâmetro em
n_estimatorsemax_depth. - Crie um classificador de random forest.
- Configure uma busca em grade para iterar por todas as combinações de hiperparâmetros.
- Imprima a melhor pontuação de AUC usando
.best_score_e o melhor estimador que levou a essa pontuação usando.best_estimator_.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# Create list of hyperparameters
n_estimators = [10, 50]
max_depth = [5, 20]
param_grid = {'n_estimators': ____, 'max_depth': ____}
# Use Grid search CV to find best parameters
print("starting RF grid search.. ")
rf = ____()
clf = ____(estimator = rf, param_grid = ____, scoring = 'roc_auc')
clf.fit(X_train, y_train)
print("Best Score: ")
print(clf.____)
print("Best Estimator: ")
print(clf.____)