Подбор гиперпараметров в Python
Alex Scriven
Data Scientist
В природе генетическая эволюция происходит следующим образом:
Ту же идею можно применить к настройке гиперпараметров:
Это информированный поиск с рядом преимуществ:
Для генетической настройки гиперпараметров удобно использовать TPOT:
Считайте TPOT своим ассистентом по Data Science. TPOT — инструмент автоматического машинного обучения на Python, который оптимизирует пайплайны машинного обучения с помощью генетического программирования.
Пайплайны включают не только модель (или несколько моделей), но и работу с признаками и другими аспектами процесса. Кроме того, TPOT возвращает готовый Python-код пайплайна!
Основные аргументы классификатора TPOT:
generations: количество итераций обучения.population_size: количество моделей, сохраняемых после каждой итерации.offspring_size: количество моделей, создаваемых на каждой итерации.mutation_rate: доля пайплайнов, к которым применяется случайность.crossover_rate: доля пайплайнов для скрещивания на каждой итерации.scoring: функция для определения лучших моделей.cv: стратегия кросс-валидации.Простой пример:
from tpot import TPOTClassifier tpot = TPOTClassifier(generations=3, population_size=5, verbosity=2, offspring_size=10, scoring='accuracy', cv=5)tpot.fit(X_train, y_train) print(tpot.score(X_test, y_test))
Для mutation_rate и crossover_rate оставим значения по умолчанию — без глубоких знаний генетического программирования менять их не рекомендуется.
Обратите внимание: никаких алгоритм-специфичных гиперпараметров?
Подбор гиперпараметров в Python