Ускорьте рабочий процесс выбора модели

Выбор модели является важным компонентом конвейера разработки модели науки о данных. После разработки функций специалисту по данным необходимо выбрать модель с лучшим набором гиперпараметров, которая лучше всего подходит для обучающего набора данных. Существуют различные библиотеки Auto-ML, которые автоматизируют компонент выбора модели.

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

Что такое перекрестная проверка поиска по сетке и рандомизированного поиска?

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

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

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

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

  1. Инициализировать несколько оценщиков классификатора
  2. Подготовить конвейер 1-го классификатора.
  3. Подготовьте словарь гиперпараметров для каждого оценщика, каждый из которых имеет ключ в качестве «классификатора» и значение в качестве объекта оценщика. Ключи гиперпараметров должны начинаться со слова классификатора, разделенного знаком «__» (двойное подчеркивание).
  4. Перечислите словарь гиперпараметров.
  5. Обучите модель GridSearchCV с помощью конвейера и списка словаря параметров.

Выполнение:

Я использовал образец набора данных двоичной классификации, имеющий ~ 5000 экземпляров и 29 независимых функций. Чтобы обучить надежную модель машинного обучения, я инициализировал 7 оценщиков машинного обучения, включая:

  • Случайный лес
  • Классификатор опорных векторов
  • Логистическая регрессия
  • Древо решений
  • k-Ближайшие соседи
  • Наивный байесовский
  • Повышение градиента

и дополнительно подготовили соответствующий им словарь гиперпараметров с именем переменной param_i.

Пакет Scikit-learn поставляется с реализацией GridSearchCV. Я передал 1-й оценщик с конвейером и списком словаря параметров модели GridSearchCV.

GridSearchCV требуется 120 секунд для обучения 176 моделей для 7 оценщиков. Классификатор опорных векторов с C=10, class_weight=None работает лучше всего с оценкой ROC AUC перекрестной проверки 0,984 и оценкой AUC теста ROC 0,979.

Модель RandomizedSearchCV тренирует один и тот же набор моделей за 9 секунд. Тот же самый классификатор опорных векторов показал лучшие результаты.

Вывод:

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

Использованная литература:

[1] Документация Scikit-learn: https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GridSearchCV.html

Понравилась статья? Станьте средним участником, чтобы продолжить обучение без ограничений. Если вы воспользуетесь следующей ссылкой, я получу небольшую часть вашего членского взноса без каких-либо дополнительных затрат.



Спасибо за чтение