Найти в Дзене
Властелин машин

Создание пользовательских преобразователей данных

Рассмотрим, как готовить собственные преобразователи данных (трансформеры) так, чтобы они поддерживались механизмами последовательной обработки, реализованными в библиотеке Scikit-learn. Для демонстрации работы создадим обучающие датафреймы:

Использование трансформатора предполагает его обучение методом fit и запуск методом transform. Они охватывают основной функционал преобразователя и требуют самостоятельной реализации. Такие имена методов нужны для поддержки в инструментах sklearn. Кроме того, для этих же целей реализуйте трансформаторы в виде классов, наследующих TransformerMixin и BaseEstimator из sklearn.base. Это откроет новому классу автоматический доступ к методам fit_transform, get_param, set_param, необходимым для поддержки в пайплайнах, функциях подбора гиперпараметров. Для примера создадим трансформатор преобразования значений категориальных колонок датасета в среднее значение по целевой переменной:

-2

Обучим и применим новый класс к тренировочной выборке:

-3

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

-4

Так как мы соблюли правила создания трансформера, его можно встраивать в пайплайны:

-5

и применим пайплайн к валидационному набору:

-6

-7