Настройка гиперпараметров для алгоритмов машинного обучения классификации

Настройка гиперпараметров для алгоритмов машинного обучения классификации

Алгоритмы машинного обучения имеют гиперпараметры, которые позволяют адаптировать поведение алгоритма к вашему конкретному набору данных.

Гиперпараметры отличаются от параметров, которые являются внутренними коэффициентами или весами для модели, найденной алгоритмом обучения. В отличие от параметров гиперпараметры указываются практикующим специалистом при настройке модели.

Как правило, сложно узнать, какие значения использовать для гиперпараметров данного алгоритма в данном наборе данных, поэтому для различных значений гиперпараметров обычно используются стратегии случайного или сеточного поиска.

Чем больше гиперпараметров алгоритма вам нужно настроить, тем медленнее процесс настройки. Поэтому желательно выбрать минимальное подмножество гиперпараметров модели для поиска или настройки.

Не все гиперпараметры модели одинаково важны. Некоторые гиперпараметры сильно влияют на поведение и, в свою очередь, на производительность алгоритма машинного обучения.

Как специалист по машинному обучению, вы должны знать, на каких гиперпараметрах следует сосредоточиться, чтобы быстро получить хороший результат.

В этом руководстве вы обнаружите те гиперпараметры, которые наиболее важны для некоторых из лучших алгоритмов машинного обучения.

Начните свой проект с моей новой книгой «Мастерство машинного обучения с Python», включая пошаговые инструкции и Исходный код Python файлы для всех примеров.

Давайте начнем.

  • Обновление январь / 2020: Обновлено с учетом изменений в scikit-learn v0.22 API.
Гиперпараметры классификационных алгоритмов машинного обучения

Гиперпараметры классификационных алгоритмов машинного обучения
Фотография Shuttermonkey, некоторые права защищены.

Обзор алгоритмов классификации

Мы более подробно рассмотрим важные гиперпараметры лучших алгоритмов машинного обучения, которые вы можете использовать для классификации.

Мы рассмотрим гиперпараметры, на которых вам нужно сосредоточиться, и предлагаемые значения, которые следует попробовать при настройке модели для вашего набора данных.

Предложения основаны как на советах из учебников по алгоритмам, так и на практических советах практиков, а также на моем собственном опыте.

Мы рассмотрим семь алгоритмов классификации:

  1. Логистическая регрессия
  2. Классификатор хребта
  3. K-Ближайшие соседи (KNN)
  4. Машина опорных векторов (SVM)
  5. Деревья решений в мешках (мешки)
  6. Случайный лес
  7. Стохастическое повышение градиента

Мы рассмотрим эти алгоритмы в контексте их реализации scikit-learn (Python); тем не менее, вы можете использовать те же предложения гиперпараметров с другими платформами, такими как Weka и R.

Для каждого алгоритма также приводится небольшой пример поиска по сетке, который вы можете использовать в качестве отправной точки для вашего собственного проекта прогнозного моделирования классификации.

Примечание: если вы добились успеха с другими значениями гиперпараметров или даже с другими гиперпараметрами, чем те, которые предложены в этом руководстве, дайте мне знать в комментариях ниже. Я бы хотел об этом услышать.

Давайте погрузимся.

Логистическая регрессия

На самом деле логистическая регрессия не требует настройки каких-либо критических гиперпараметров.

Иногда можно увидеть полезные различия в производительности или сходимости разных решателей (решатель).

  • решатель в [‘newton-cg’, ‘lbfgs’, ‘liblinear’, ‘sag’, ‘saga’]

Регуляризация (штраф) иногда может быть полезным.

  • штраф в [‘none’, ‘l1’, ‘l2’, ‘elasticnet’]

Примечание: не все решатели поддерживают все условия регуляризации.

Параметр C контролирует силу наказания, которая также может быть эффективной.

  • C в [100, 10, 1.0, 0.1, 0.01]

Полный список гиперпараметров см .:

В приведенном ниже примере демонстрируется поиск по сетке ключевых гиперпараметров для LogisticRegression в наборе данных синтетической двоичной классификации.

Некоторые комбинации были опущены, чтобы сократить количество предупреждений / ошибок.

Примечание: Ваши результаты могут отличаться из-за стохастической природы алгоритма или процедуры оценки или различий в числовой точности. Подумайте о том, чтобы запустить пример несколько раз и сравнить средний результат.

При выполнении примера печатается лучший результат, а также результаты всех оцененных комбинаций.

Классификатор хребта

Риджевая регрессия - это модель линейной регрессии с ограничениями для прогнозирования числового значения.

Тем не менее, он может быть очень эффективным в применении к классификации.

Возможно, наиболее важным параметром для настройки является сила регуляризации (альфа). Хорошей отправной точкой могут быть значения в диапазоне [0.1 to 1.0]

  • альфа в [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]

Полный список гиперпараметров см.

В приведенном ниже примере демонстрируется поиск по сетке ключевых гиперпараметров для RidgeClassifier в наборе данных синтетической двоичной классификации.

Вас также может заинтересовать