воскресенье, 2 июня 2019 г.

Инфраструктура для обучения моделей на R: rsample и recipes

При создании моделей машинного обучения довольно часто концентрируются на настройке гиперпараметров, в то время как предварительная обработка данных и создание новых признаков (feature engineering) может быть гораздо более продуктивных вложением сил и времени. В R настраивать гиперпараметры можно множеством способов, популярным вариантом по историческим причинам является использование пакета caret. Что касается этапа преобразования и создания признаков, то частой ошибкой является его выполнение на всем наборе данных, а это чревато переобучением. Такие операции, как преобразование Бокса-Кокса, биннинг количественных переменных, mean/median target encoding, импутация средним (или более продвинутые методы заполнения пропусков) и даже обычная нормализация являются обучаемыми: их параметры должны оцениваться на обучающей части выборки и применяться и на ней, и на валидационной, и на тестовой выборке. Также целесообразно пробовать разные методы преобразования, импутации и т.д. в составе “конвейера” обучения моделей (модель - это сам алгоритм + предобработка данных), то есть добавлять для этих этапов гиперпараметры, проверяемые в ходе grid search-а.