51
правка
Изменения
Grid search done
Дело в том, что модель может переучиться на валидационном наборе данных. Для выявления переобучения используется тестовый набор данных.
Рассмотрим модель KNeighborsClassifier из библиотеки sklearn. Все “параметры” данной модели, с точки зрения машинного обучения, являются гиперпараметрами, так как задаются до начала обучения.
[[Файл:KNeighborsClassifier_model.png|800pxcenter|thumb|left| Все “параметры” данной модели, с точки зрения машинного обучения, являются гиперпараметрами, так как задаются до начала обучения.1000px]]
== Техники настройки гиперпараметров ==
=== Grid search ===
Пример использования Grid search из библиотеки scikit-learn:
# Создание экземпляра класса SGDClassifier (из sklearn)
# Создание сетки гиперпараметров. В данном случае будем подбирать коэффициент регуляризации, шаг градиентного спуска, количество итераций и параметр скорости обучения.
# Создание экземпляра класса кросс-валидации.# Создание экземпляра GridSearch (из sklearn). Первый параметр - модель, второй - сетка гиперпараметров, третий - функционал ошибки (используемый для контроля качества моделей по технику технике кросс-валидации), четвертый - кросс-# # # валидация (можно задать количество фолдов, а можно передать экземпляр класса кросс - валидации)
# Запуск поиска по сетке.
* best_estimator_ - лучшая модель
* best_score_ - ошибка, полученная на лучшей модели.
* best_params_ - гиперпараметры лучшей модели<br>
* cv_results_ - результаты всех моделей.<br>
* доступ к массиву определенного параметра:<br>
==== Реализация Grid search в библеотеках====
* Katib
* scikit-learn
=== Random grid search ===
==== Основная информация ====
Вместо полного перебора, Random grid search работает с некоторыми, случайным образом выбранными, комбинациями. На основе полученных результатов,происходит сужение области поиска. Random grid search будет гораздо полезнее, чем grid search в ситуации, когда гиперпараметров много, но сильно влияющих на конечную производительность алгоритма - мало.
==== Реализация Random grid ====
* hyperopt