Найти тему
Властелин машин

Подбор этапов предобработки данных

Рассмотрим, как оптимизировать выбранную модель, подбирая не только ее гиперпараметры, но и разные стадии ее предобработки. Это можно осуществить все в тех же классах GridSearchCV и RandomizedSearchCV из библиотеки Scikit-learn. Фактически нам понадобится создать pipeline и научиться передавать его свойства в объект-переборщик. Сначала создадим демонстрационный датафрейм:

Разделим данные на тренировочную и валидационную выборки:

-2

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

-3

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

-4

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

-5

Теперь из свойств best_score_, best_params_, best_estimator_ и cv_results_ можно получить лучшую оценку на кросс-валидации, оптимальные параметры, оценщика и результаты кросс валидации для всех итераций:

-6

-7