Как алгоритмы выбора признаков реагируют на дрейф данных

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

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

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

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

Мы сосредоточимся на сравнении двух хорошо известных методов фильтрации: рекурсивного выбора признаков (RFE) и Boruta. Мы используем библиотеку shap-hypetune, поскольку она обеспечивает эффективную и интуитивно понятную реализацию обеих интересующих нас методологий. Это также позволяет использовать важность функции SHAP вместо древовидной, чтобы сделать процесс ранжирования более стабильным и менее предвзятым к обучающим данным.

ЭКСПЕРИМЕНТАЛЬНАЯ УСТАНОВКА

Наш эксперимент предполагает использование синтетических данных. Во-первых, мы генерируем три искусственных синусоидальных ряда. Затем мы объединяем сигналы, просто суммируя их, чтобы получить цель, которую мы пытаемся предсказать. Наконец, мы добавляем случайный шум к нашей серии входных данных в соответствии с временным паттерном. Другими словами, мы начинаем практически с нулевого шума и со временем увеличиваем его. Результат этой процедуры понятен при построении данных:

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

Вместе со значимым синусоидальным рядом мы добавляем некоторые случайные признаки. Они важны для оценки эффективности наших стратегий выбора функций, поскольку они должны быть помечены как «бесполезные» для нашей задачи прогнозирования. Если мы построим скользящую автокорреляцию между функциями и целью, мы сможем наблюдать, как корреляции имеют тенденцию уменьшаться со временем. Это не удивительно, но подтверждает негативное влияние шума на отношения данных. Как и ожидалось, характеристики шума имеют почти нулевую корреляцию с целью.

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

ПОЛУЧЕННЫЕ РЕЗУЛЬТАТЫ

Учитывая эти данные и знание лежащей в основе системной динамики, мы готовы к моделированию и сравнительному анализу двух предложенных методологий выбора функций. Мы упорядочиваем данные в 15 раз, используя стандартный подход к разбиению временных рядов. Мы проводим постоянно расширяющееся обучение наших алгоритмов на имеющихся в нашем распоряжении данных. Таким образом, в то время как обучающие данные становятся больше, синусоидальный ряд становится более шумным при каждом разделении. Чем больше прогрессирует расщепление, тем больше на наши алгоритмы оказывается давление, чтобы обнаружить истинные закономерности.

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

И наоборот, Boruta SHAP может правильно идентифицировать только важные сигналы в каждом разделении. Это очень впечатляющий результат, демонстрирующий силу Boruta SHAP как алгоритма выбора признаков даже в сложных контекстах прогнозирования.

КРАТКОЕ СОДЕРЖАНИЕ

В этом посте мы протестировали две разные методологии выбора признаков в экстремальном контексте дрейфа данных. Мы протестировали Recursive Feature Selection и Boruta (оба используют SHAP в качестве меры важности функций). В то время как рекурсивный выбор признаков показал некоторые трудности в обнаружении истинных значимых предикторов с увеличением шума в данных, Борута проделал отличную работу. Он всегда выявлял истинные системные шаблоны, даже когда дрейф данных становится более заметным, защищая свое первенство «алгоритма выбора великих функций».

ПРОВЕРЬТЕ МОЙ РЕПО GITHUB

Оставайтесь на связи: Linkedin