Випадковий пошук
# Call GridSearchCV
grid_search = GridSearchCV(clf, param_grid)
# Fit the model
grid_search.fit(X, y)
У наведеному вище фрагменті коду з попередньої вправи ви могли помітити, що перший рядок виконувався майже миттєво, тоді як виклик .fit() займав кілька секунд.
Це тому, що саме .fit() фактично виконує перебір сітки, і в нашому випадку сітка містила багато різних комбінацій. Чим більшою стає сітка гіперпараметрів, тим повільнішим є grid search. Щоб розв'язати цю проблему, замість перевірки кожної комбінації значень ми можемо випадково переходити по сітці та пробувати різні варіанти. Є невелика ймовірність пропустити найкращу комбінацію, зате ми суттєво заощадимо час або зможемо налаштувати більше гіперпараметрів за той самий час.
У scikit-learn це можна зробити за допомогою RandomizedSearchCV. Його API такий самий, як у GridSearchCV, за винятком того, що потрібно вказати розподіл параметрів, з якого він вибиратиме випадкові значення, а не фіксовані значення гіперпараметрів. Спробуймо! Розподіл параметрів уже підготовлено для вас, так само як і класифікатор випадкового лісу clf.
Ця вправа є частиною курсу
Маркетингова аналітика: прогнозування відтоку клієнтів у Python
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# Import RandomizedSearchCV