НачатьНачать бесплатно

Случайный поиск

# 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
Редактировать и запускать код