Вопрос или проблема
Я работаю с реальными данными пациентов. У меня есть набор данных с информацией о 10 миллионах пациентов, собранный за разный период времени (от 5 до 20 лет).
- Что я предсказываю, так это бинарный риск (или, возможно, вероятность этого риска),
- Большинство признаков постоянны (семейная история, курит (да/нет)…), но,
- У меня есть некоторые временные признаки (например, вес, уровень холестерина, уровень глюкозы…),
- (Кроме того, эти признаки были собраны в разные моменты времени, т.е. для некоторых пациентов у нас есть полугодовая информация, для других пациентов – 2 измерения за 15 лет)
- Пока я предсказывал свою цель, считая свои признаки статичными (путем усреднения значений или используя самые последние), используя XGBoost Classifier или другие классификаторы.
- Могу ли я попробовать использовать временные ряды в этом случае? Или лучше придерживаться ML классификаторов и попробовать учитывать прогресс значений другим способом?
- У кого-то была похожая проблема?
С уважением!
Просто извлеките признаки из временных данных и добавьте их в свои столбцы, чтобы использовать их для предсказания. Это самый простой подход.
Другой вариант – использовать любой метод встраивания для преобразования временных данных в векторы и использовать эти векторы вместе с другими признаками (то, что вы называете статическими признаками). Автокодировщики, основанные на графах временные встраивания или трансформеры (из области NLP) могут быть использованы для таких встраиваний. В общем, вы можете провести небольшое исследование, чтобы выяснить, какие методы доступны для встраивания временных рядов.
Простой (но не лучший) вариант – иметь отдельные столбцы: один для старых данных, один для новых данных и один для разницы между новыми и старыми. Я говорю, что это простой вариант, так как его можно использовать в случаях, когда у вас только 2 временные отметки, можно использовать в случаях, когда у вас больше двух, и можно использовать, когда у вас только один случай (новые = старые; разница = 0). Затем запустите модель классификатора, такую как XGBoost.
Ответ или решение
Для решения вашей задачи, связанной с предсказанием бинарного риска на основе временных и статических признаков, стоит рассмотреть несколько подходов, так как ваш набор данных действительно обладает уникальными характеристиками.
Подход 1: Статистические методы с извлечением признаков
Первый и, возможно, наиболее простой вариант — это извлечение значимых признаков из временных данных и добавление их к статическим признакам для обучения модели. Например, можно рассмотреть следующие метрики для временных признаков:
- Средние значения временных признаков (например, средний уровень глюкозы за все время).
- Последние значения признаков на момент последних измерений.
- Изменение во времени (разность между последним и первым значениями признака).
- Скользящие средние или стандартные отклонения за определенные временные окна.
Эти признаки затем могут быть использованы в классическом классификаторе, таком как XGBoost.
Подход 2: Векторизация временных рядов
Другой продвинутый метод включает использование векторизации временных рядов для преобразования временных данных в компактные представления. Для этого можно использовать:
- Автокодировщики: позволяют захватывать значимые характеристики временных признаков и создавать их низкоразмерные представления.
- Графовые методы: подходы, которые могут помочь визуализировать временные ряды в виде графов и проводить анализ.
- Трансформеры: применяемые в области обработки естественного языка, также могут быть адаптированы для работы с временными данными, чтобы учитывать последовательность и контекст изменений признаков.
Подход 3: Разделение временных признаков
Если у вас ограниченное количество временных точек (например, только два), можно создать отдельные колонки для старых и новых данных, а также для их разности. Это может выглядеть следующим образом:
старые_значения_веса
новые_значения_веса
разница_веса
Такой подход позволяет учитывать прогресс изменения признаков и может быть применен как для случаев с двумя временными точками, так и для более обширных наборов данных, желательно вместе с дополнительными признаками, которые уже существуют.
Какой подход выбрать?
-
Если вы ищете простоту и уже имеете модель, которая хорошо работает с статическими признаками, начните с первого подхода и постепенно добавляйте новые фичи, наблюдая за тем, как это сказывается на производительности модели.
-
Если вас интересует более глубокий анализ и потенциал улучшения результата, рассмотрите использование методов векторизации временных рядов.
-
Важно помнить, что в конечном итоге следует оценивать каждый из методов на валидационных поднаборах данных, чтобы понять, какой из них лучше предсказывает целевую переменную.
Заключение
Ваш подход к описанию данных является важным этапом в построении модели. Простое использование статических признаков может не всегда давать полное представление о временной динамике. Для этого вам стоит исследовать возможности применения методов обработки временных рядов и извлечения значимых признаков, чтобы улучшить качество предсказаний и лучше понять, как динамика изменений влияет на вашу целевую переменную.