Статическая ML модель или временной ряд? Как моделировать/предсказывать бинарную целевую переменную, когда у меня есть временные характеристики, но большинство признаков постоянны?

Вопрос или проблема

Я работаю с реальными данными пациентов. У меня есть набор данных с информацией о 10 миллионах пациентов, собранный за разный период времени (от 5 до 20 лет).

  • Что я предсказываю, так это бинарный риск (или, возможно, вероятность этого риска),
  • Большинство признаков постоянны (семейная история, курит (да/нет)…), но,
  • У меня есть некоторые временные признаки (например, вес, уровень холестерина, уровень глюкозы…),
  • (Кроме того, эти признаки были собраны в разные моменты времени, т.е. для некоторых пациентов у нас есть полугодовая информация, для других пациентов – 2 измерения за 15 лет)
  • Пока я предсказывал свою цель, считая свои признаки статичными (путем усреднения значений или используя самые последние), используя XGBoost Classifier или другие классификаторы.
  • Могу ли я попробовать использовать временные ряды в этом случае? Или лучше придерживаться ML классификаторов и попробовать учитывать прогресс значений другим способом?
  • У кого-то была похожая проблема?

С уважением!

Просто извлеките признаки из временных данных и добавьте их в свои столбцы, чтобы использовать их для предсказания. Это самый простой подход.

Другой вариант – использовать любой метод встраивания для преобразования временных данных в векторы и использовать эти векторы вместе с другими признаками (то, что вы называете статическими признаками). Автокодировщики, основанные на графах временные встраивания или трансформеры (из области NLP) могут быть использованы для таких встраиваний. В общем, вы можете провести небольшое исследование, чтобы выяснить, какие методы доступны для встраивания временных рядов.

Простой (но не лучший) вариант – иметь отдельные столбцы: один для старых данных, один для новых данных и один для разницы между новыми и старыми. Я говорю, что это простой вариант, так как его можно использовать в случаях, когда у вас только 2 временные отметки, можно использовать в случаях, когда у вас больше двух, и можно использовать, когда у вас только один случай (новые = старые; разница = 0). Затем запустите модель классификатора, такую как XGBoost.

Ответ или решение

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

Подход 1: Статистические методы с извлечением признаков

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

  1. Средние значения временных признаков (например, средний уровень глюкозы за все время).
  2. Последние значения признаков на момент последних измерений.
  3. Изменение во времени (разность между последним и первым значениями признака).
  4. Скользящие средние или стандартные отклонения за определенные временные окна.

Эти признаки затем могут быть использованы в классическом классификаторе, таком как XGBoost.

Подход 2: Векторизация временных рядов

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

  • Автокодировщики: позволяют захватывать значимые характеристики временных признаков и создавать их низкоразмерные представления.
  • Графовые методы: подходы, которые могут помочь визуализировать временные ряды в виде графов и проводить анализ.
  • Трансформеры: применяемые в области обработки естественного языка, также могут быть адаптированы для работы с временными данными, чтобы учитывать последовательность и контекст изменений признаков.

Подход 3: Разделение временных признаков

Если у вас ограниченное количество временных точек (например, только два), можно создать отдельные колонки для старых и новых данных, а также для их разности. Это может выглядеть следующим образом:

  • старые_значения_веса
  • новые_значения_веса
  • разница_веса

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

Какой подход выбрать?

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

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

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

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...