Busca aleatória
# Call GridSearchCV
grid_search = GridSearchCV(clf, param_grid)
# Fit the model
grid_search.fit(X, y)
No trecho de código acima, do exercício anterior, você deve ter notado que a primeira linha rodou rapidamente, enquanto a chamada de .fit() levou vários segundos para executar.
Isso acontece porque .fit() é o que de fato realiza a busca em grade e, no nosso caso, a grade tinha muitas combinações diferentes. Conforme a grade de hiperparâmetros fica maior, a busca em grade se torna mais lenta. Para contornar esse problema, em vez de testar todas as combinações possíveis, podemos pular aleatoriamente pela grade e experimentar diferentes combinações. Existe uma pequena chance de deixarmos passar a combinação ideal, mas economizamos muito tempo ou conseguimos ajustar mais hiperparâmetros no mesmo período.
No scikit-learn, você pode fazer isso usando RandomizedSearchCV. Ele tem a mesma API de GridSearchCV, com a diferença de que você precisa especificar uma distribuição de parâmetros da qual ele fará amostragens, em vez de valores específicos de hiperparâmetros. Vamos testar agora! A distribuição de parâmetros já foi configurada para você, junto com um classificador random forest chamado clf.
Este exercicio faz parte do curso
Análise de Marketing: Prevendo Churn de Clientes em Python
exercicio interativo prático
Tente este exercicio completando este código de exemplo.
# Import RandomizedSearchCV