Случайный поиск
# Call GridSearchCV
grid_search = GridSearchCV(clf, param_grid)
# Fit the model
grid_search.fit(X, y)
В приведённом выше фрагменте кода из предыдущего упражнения вы могли заметить, что первая строка выполняется почти мгновенно, тогда как вызов .fit() занимает несколько секунд.
Причина в том, что именно .fit() запускает перебор параметров, и в нашем случае сетка содержала множество различных комбинаций. Чем больше сетка гиперпараметров, тем медленнее работает поиск. Чтобы решить эту проблему, вместо перебора всех возможных комбинаций можно случайным образом выбирать различные точки в пространстве параметров. Существует небольшой риск пропустить наилучшую комбинацию, однако это позволяет существенно сократить время поиска или подобрать больше гиперпараметров за то же время.
В scikit-learn для этого предусмотрен класс RandomizedSearchCV. Его API аналогичен GridSearchCV, однако вместо конкретных значений гиперпараметров необходимо задать распределение, из которого будет производиться выборка. Давайте попробуем! Распределение параметров уже подготовлено, а также задан классификатор случайного леса clf.
Это упражнение является частью курса
Маркетинговая аналитика: прогнозирование оттока клиентов на Python
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Import RandomizedSearchCV