135
правок
Изменения
Нет описания правки
== Гиперпараметры Гиперпараметр ==
Для подбора гиперпараметров необходимо разделить датасет на три части:
* тренировочный набор данных (англ. ''training set''), для обучения модели* валидационный набор данных (англ. ''validation set''), для расчета ошибки и выбора наилучшей модели* тестовый набор данных (англ. ''test set''), для тестирования выбранной модели
Зачем нам нужен и валидационный, и тестовый набор? Дело в том, что модель может переучиться на валидационном наборе данных. Для выявления переобучения используется тестовый набор данных.
warm_start=False, average=False)
== Grid search Поиск по сетке ==
=== Общая информация ===
'''Поиск по сетке''' (англ. ''Grid search '') принимает на вход модель и различные значения гиперпараметров (сетку гиперпараметров). Далее, для каждого возможного сочетания значений гиперпараметров, метод считает ошибку и в конце выбирает сочетание, при котором ошибка минимальна.
=== Поиск по сетке в Sklearn Grid search: использование ===
Пример использования <code>GridSearch</code> из библиотеки scikit-learn:
scoring='accuracy', verbose=0)
=== Поиск по сетке в Sklearn Grid search: важные атрибуты ===
* <code>best_estimator_</code> — лучшая модель
Out: array([5, 6, 7, ..., 7, 8, 9], dtype=object)
=== Реализация Grid search поиска по сетке в библеотеках библиотеках ===
* scikit-learn<ref>[https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GridSearchCV.html scikit-learn]</ref>
* Katib<ref>[https://github.com/kubeflow/katib Katib]</ref>
* Talos<ref>[https://autonomio.github.io/docs_talos/#grid-search Talos]</ref>
== Random grid search Случайный поиск по сетке ==
=== Основная информация ===
Вместо полного перебора, '''случайный поиск по сетке''' (англ. ''Random grid search Grid Search'') работает с некоторыми, случайным образом выбранными, комбинациями. На основе полученных результатов, происходит сужение области поиска.
Когда random grid search случайный поиск по сетке будет гораздо полезнее, чем grid searchпросто поиск по сетке? В ситуации, когда гиперпараметров много, но сильно влияющих на конечную производительность алгоритма — мало.
=== Реализация Random grid случайного поиска по сетке ===
* Ray<ref>[https://ray.readthedocs.io/en/latest/tune-searchalg.html#variant-generation-grid-search-random-search Ray]</ref>
* Hyperopt<ref>[https://hyperopt.github.io/hyperopt/#algorithms Hyperopt]</ref>
== SMBO Методы, основанные на байесовской оптимизации ==
=== Основная информация ===
Когда используют SMBO? Когда оптимизация целевой функции будет стоить очень "дорого". Главная идея SMBO — замена целевой функции "суррогатной" функцией.
* Random Forest Regressions
=== TPE Древовидная структура Парзена ===
==== Основная информация ====
Как было написано выше, методы SMBO отличаются тем, как они строят вероятностную модель <math> {p(y|x)} </math>. В случае TPE, используется следующая функция:
# Возвращается значение: <math> argmin_{param} \frac{g(param)}{l(param)} </math>
=== SMAC Последовательная конфигурация алгоритма на основе модели ===
==== Основная информация ====
'''Последовательная конфигурация алгоритма на основе модели''' (англ. ''Sequential Model-based Algorithm Configuration, SMAC '') использует '''регрессию случайного леса''' (англ. ''Random Forest regression '') и расширяет подходы SMBO:
* Использует дискретные и условные пространства параметров.