ComeçarComece de graça

RandomSearchCV no Scikit Learn

Vamos praticar a construção de um objeto RandomizedSearchCV usando Scikit Learn.

A grade de hiperparâmetros deve incluir max_depth (todos os valores entre 5 e 25, inclusive) e max_features ('auto' e 'sqrt').

As opções desejadas para o objeto RandomizedSearchCV são:

  • Um Estimator RandomForestClassifier com n_estimators igual a 80.
  • Validação cruzada com 3 folds (cv)
  • Usar roc_auc para pontuar os modelos
  • Usar 4 núcleos para processamento em paralelo (n_jobs)
  • Garantir que você faça refit do melhor modelo e retorne as pontuações de treinamento
  • Amostrar apenas 5 modelos por eficiência (n_iter)

Os conjuntos de dados X_train e y_train já estão carregados para você.

Lembre-se: para extrair os hiperparâmetros escolhidos, eles estão em cv_results_, com uma coluna por hiperparâmetro. Por exemplo, a coluna do hiperparâmetro criterion seria param_criterion.

Este exercício faz parte do curso

Ajuste de Hiperparâmetros em Python

Ver curso

Instruções do exercício

  • Crie uma grade de hiperparâmetros conforme especificado no contexto acima.
  • Crie um objeto RandomizedSearchCV conforme descrito no contexto acima.
  • Ajuste o objeto RandomizedSearchCV aos dados de treinamento.
  • Faça indexação em cv_results_ para imprimir os valores escolhidos pelo processo de modelagem para ambos os hiperparâmetros (max_depth e max_features).

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# Create the parameter grid
param_grid = {'max_depth': list(range(____,26)), 'max_features': [____ , ____]} 

# Create a random search object
random_rf_class = RandomizedSearchCV(
    estimator = ____(n_estimators=____),
    param_distributions = ____, n_iter = ____,
    scoring=____, n_jobs=____, cv = ____, refit=____, return_train_score = ____ )

# Fit to the training data
____.fit(X_train, y_train)

# Print the values used for both hyperparameters
print(random_rf_class.cv_results_[____])
print(random_rf_class.cv_results_[____])
Editar e executar o código