Наука о данных, Машинное обучение

Сравнительный анализ временных рядов - бумажный обзор

Анализ извлечения признаков временных рядов для сравнения, кластеризации, классификации и аннотации

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

Но ... какие типы функций вы можете извлечь и как выбрать среди них?

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

В документах показано, как сравнивать временные ряды, извлекая признаки, описывающие поведение ряда, и предлагается конвейер для определения «оптимального» подмножества признаков временных рядов.

Почему это важно?

Есть два основных способа сравнить временные ряды:

  1. Мера сходства, которая определяет, насколько близки (в среднем) два временных ряда по времени, например Динамическое искажение времени. Эти меры обычно лучше всего подходят для коротких выровненных серий равной длины. Они, как правило, плохо масштабируются из-за квадратичного вычисления как количества временных рядов, так и длины ряда, потому что расстояния должны вычисляться между всеми парами.
  2. Определите сходство между рядами с точки зрения характеристик, извлеченных из временных рядов, используя алгоритмы анализа временных рядов. Для экстракторов признаков не требуется, чтобы серии были одинаковой длины. Результатом является интерпретируемая сводка динамических характеристик каждой серии. Затем эти функции можно использовать для машинного обучения.

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

Проблема в том, что существует огромное количество методов для извлечения интерпретируемых признаков из временных рядов. Кроме того, выбор функций часто осуществляется вручную и субъективно.

Какие функции можно извлечь из серий и как выбрать среди них?

Сравнительный анализ временных рядов: эмпирическая структура временных рядов и их методы

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

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

Чтобы решить эту проблему, документ HCTSA…

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

Структура и объем HCTSA

Работа обширна: авторы аннотировали библиотеку из 38 190 одномерных временных рядов и 9613 алгоритмов анализа временных рядов.

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

Библиотека преобразований временных рядов охватывает широкий спектр свойств временных рядов:

  • базовая статистика распределения (например, местоположение, распространение, свойства выброса)
  • линейные корреляции (например, автокорреляции, особенности спектра мощности)
  • стационарность (например, меры скользящего окна, тесты единичного корня)
  • теоретико-информационные и энтропийные меры (например, автоматическая взаимная информация, приблизительная энтропия)
  • методы из литературы по физическому нелинейному анализу временных рядов (например, корреляционная размерность)
  • соответствие линейной и нелинейной модели (например, степень соответствия и параметры авторегрессионных моделей)
  • другие (например, вейвлет-методы)

Для преобразований, требующих значений параметров, преобразование повторяется для нескольких параметров. Одна «операция» считается преобразованием плюс одно значение параметра. Из 9 тысяч операций, оцененных в статье, одно преобразование может быть подсчитано несколько раз, по одному разу для каждого значения параметра. В статье оценивается примерно 1 тыс. Уникальных преобразований.

HCTSA: эмпирическая структура методов анализа временных рядов

Авторы использовали кластеризацию k-medoids для определения четырех широких категорий операций анализа временных рядов:

  1. Линейная корреляция
  2. Стационарность (свойства, изменяющиеся со временем)
  3. Теория информации
  4. Нелинейный анализ временных рядов

Кластерный анализ показал, что подмножество из 200 операций с временными рядами или эмпирический отпечаток поведения ряда может приблизительно соответствовать 8 651 рассматриваемой операции. 200 операций суммируют различные варианты поведения методов анализа временных рядов. Эти операции включают методы, разработанные в различных дисциплинах.

Кроме того, анализ выявил локальную структуру, окружающую каждую целевую операцию. Для данной операции они смогли определить альтернативные операции с аналогичным поведением.

«Сравнивая их эмпирическое поведение, продемонстрированные выше методы можно использовать для подключения новых методов к альтернативам, разработанным в других областях, таким образом, чтобы поощрять междисциплинарное сотрудничество в разработке новых методов анализа временных рядов, которые не просто воспроизводят поведение существующие методы »[1]

HCTSA: эмпирическая структура временных рядов

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

Этот эмпирический отпечаток 200 различных операций анализа временных рядов упрощает конструктивное сравнение научных временных рядов.

Чтобы сгруппировать свою библиотеку из 24k временных рядов, авторы использовали полную кластеризацию связей, чтобы сформировать 2000 кластеров. Из-за широкого диапазона используемых свойств временных рядов кластеры сгруппировали ряды в соответствии с динамикой, даже если их длина различается.

Большинство кластеров сгруппированы по временным рядам, измеренным в одной системе:

Некоторые кластеры содержали серии, созданные разными системами:

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

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

Кодекс HCTSA

Код для сравнительного анализа временных рядов можно найти на GitHub; однако он написан в Matlab. (Вы можете использовать пакет hctsa из python, используя пакет pyopy). Пакет hctsa позволяет извлекать тысячи функций из временных рядов. К программе также прилагается сопроводительная бумага.

Важно отметить, что он выполняется медленно. Сокращение полного набора операций HCTSA даже до 200 из тысяч функций-кандидатов требует больших вычислительных ресурсов. Этот подход неосуществим для некоторых приложений, особенно с большими обучающими данными.

HCTSA также имеет веб-платформу CompEngine. CompEngine представляет собой самоорганизующуюся базу данных временных рядов, которая позволяет пользователям загружать, исследовать и сравнивать тысячи различных типов данных временных рядов. [4]

catch22, C Характеристики анонического временного ряда

Последующий документ catch22: CAnonical Time-series Characteristics (2019) основан на HCTSA, сокращая набор репрезентативных характеристик до 22 характеристик временных рядов, которые:

  1. демонстрируют высокую эффективность классификации по заданному набору задач временных рядов, и
  2. минимально избыточны, и
  3. охватить разнообразие анализа, содержащегося в HCTSA.

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

Характеристики временных рядов catch22 отражают разнообразную и интерпретируемую «сигнатуру» временных рядов, основанную на их свойствах.

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

Преимущества функции catch22

  • Быстрые вычисления (~ 1000 раз быстрее, чем полный набор функций HCTSA в Matlab)
  • Предоставляет низкоразмерную сводку временных рядов
  • Интерпретируемые характеристики, полезные для классификации и кластеризации.

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

Оценка функции Catch22

Авторы оценивают характеристики, оценивая точность классификации дерева решений по набору из 93 задач классификации из Репозитория классификации временных рядов. Производительность с 4791 функцией от HCTSA обеспечивает 77,2% средней сбалансированной по классу точности для всех задач. Производительность с меньшим набором из 22 функций составляет 71,7% средней сбалансированной по классу точности.

Конвейер выбора функций Catch22

Для всех наборов данных каждый признак временного ряда был линейно масштабирован до единицы интервала 0–1. Такое масштабирование может не подходить для некоторых реальных приложений.

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

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

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

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

В конвейере выбора функций было 3 этапа:

  1. Статистическая предварительная фильтрация: отфильтруйте функции, производительность которых была статистически незначимой для данных учебных задач.
  2. Фильтрация производительности: выберите функции, которые лучше всего работают во всех тестах. «Производительность» - это способность различать помеченные классы в 93 задачах классификации с помощью классификатора дерева решений.
  3. Минимизация избыточности. Основные функции были сгруппированы (иерархическая кластеризация с полной связью) в группы в соответствии с оценками производительности по задачам. Из каждого кластера для набора функций был выбран один репрезентативный объект. Репрезентативная функция была выбрана как функция с наивысшим баллом по задачам - если только она не требовала больших вычислительных ресурсов, и в этом случае вручную была выбрана другая высокоточная функция с большей интерпретируемостью и эффективностью.

Компромисс между точностью и интерпретируемостью

Авторы сравнили эффективность классификации с использованием функций catch22 с широким спектром алгоритмов классификации временных рядов, таких как реализованные в sktime.

Классификация временных рядов с признаками catch22, несмотря на значительное уменьшение размерности, приводит к «аналогичным» характеристикам альтернативных методов. Авторы признают, что большинство наборов данных демонстрирует лучшую производительность при использовании существующих алгоритмов, чем catch22.

В документе часто утверждается, что catch22 имеет лишь «небольшое» снижение точности. (Авторы не публиковали характеристики классификаторов с функциями catch22). В одном случае они назвали сокращение с 99,2% до 89,5% «небольшим», но, на мой взгляд, это немало для многих приложений.

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

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

Альтернативные временные ряды Наборы функций

Авторы отметили, что «не существует единого представления, которое лучше всего подходило бы для всех наборов данных временных рядов». Вместо этого «оптимальное представление зависит от структуры набора данных и задаваемых ему вопросов». [3]

Таким образом, функции catch22 могут не быть оптимальными функциями для всех наборов данных и задач временных рядов.

Представление объекта catch22 часто превосходит наборы данных, у которых нет «достоверных различий форм между классами», по сравнению с классификаторами, основанными на показателях расстояния во временной области.

Авторы сравнили производительность функций catch22 с функциями временных рядов, доступными в пакете tsfeatures R. В том же наборе задач классификации tsfeatures функции имели среднюю точность 69,4% по сравнению с точностью 71,7% для catch22.

Реализация

Извлечение функций catch22 было реализовано на C, с оболочками в Python, R, Matlab. Реализацию catch22 с открытым исходным кодом можно найти на GitHub.

Версия C catch22 демонстрирует почти линейную вычислительную сложность, O (N1.16) для длины временного ряда. Для временного ряда с 10 000 наблюдений улов22 может быть вычислен за 0,5 секунды.

Код для конвейера выбора функций, который создал 22 функции, доступен на GitHub по адресу https://github.com/chlubba/op_importance.

Применение к реальным проблемам

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

Функции, проанализированные в документе HCTSA и доступные на GitHub, являются исчерпывающими и информативными. Основная проблема заключается в том, что для большинства приложений существует «слишком много» функций.

Функции catch22 адаптированы для захвата ключевых свойств наборов данных UCR / UEA, которые являются короткими и выровненными по фазе. Метод выбора функций можно повторно запустить для создания сокращенных наборов функций, адаптированных к другим приложениям.

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

Последнее слово

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

использованная литература

[1] Фулчер Б.Д., Литтл М.А., Джонс Н.С. (2013) Сравнительный анализ временных рядов: эмпирическая структура временных рядов и их методы. Интерфейс J R Soc 10 (83): 20130048. ISSN 1742–5662. Https://doi.org/10.1098/rsif.2013.0048

[2] Б.Д. Фулчер и Н. Джонс. hctsa: вычислительная среда для автоматического фенотипирования временных рядов с использованием массивного выделения признаков. Cell Systems 5, 527 (2017).

[3] Ч. Lubba, S.S. Sethi, P. Knaute, S.R. Шульц, Б. Фулчер, Н. Джонс. catch22: Характеристики анонического временного ряда. Интеллектуальный анализ данных и обнаружение знаний 33, 1821 (2019 г.).

[4] Б.Д. Фулчер, К. Любба, С.С. Сетхи, Н.С. Джонс. CompEngine: самоорганизующаяся живая библиотека данных временных рядов. (2019).