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

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

Во всяком случае, именно так я начал искать методы, использующие данные датчиков для прогнозирования каких-то событий. Короче говоря, я нашел методы классификации временных рядов (TSC). Это зонтичный метод, который содержит более 100 алгоритмов машинного обучения. Алгоритмы исходят из четырех разных областей: 1) на основе расстояния, 2) на основе интервала, 3) на основе шейплета и 4) на основе словаря. Конечно, есть и другие методы, не подпадающие под эти четыре категории, такие как скрытые цепи Маркова.

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

Динамическое искажение времени (DTW):

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

Процедура DTW TSC:

  1. Вычислить расстояние между парами временных рядов.
  2. Используйте 1-NN, чтобы назначить неизвестный класс.
  3. Весь временной ряд используется для классификации.

Например, если у меня есть временной ряд A с классом 0 и временной ряд B с классом 1. У меня есть этот временной ряд C с неизвестным значением класса. Я рассчитаю расстояние DTW между A и C и B и C, назначив временной ряд C для A или B в зависимости от того, какое расстояние будет кратчайшим.

Конечно, у этого метода есть много недостатков. Я расскажу об этом в моем следующем посте.