Прогнозирование временных рядов (в конечном итоге с питоном) - PullRequest
25 голосов
/ 27 августа 2010
  • Какие существуют алгоритмы для прогнозирования / регрессии временных рядов?
    • А как насчет использования нейронных сетей?(лучшие документы по этой теме?)
    • Существуют ли библиотеки / фрагменты кода Python, которые могут помочь?

Ответы [ 7 ]

70 голосов
/ 06 сентября 2010

Классические подходы к регрессии временных рядов:

Другими менее распространенными подходами, о которых я знаю, являются

  • Slow Feature Analysis , алгоритм, который извлекает движущие силы временного ряда,Например, параметры , стоящие за хаотическим сигналом

  • Нейронные сети (NN), подходят либо с использованием периодических NN (т. е. построенных для обработки сигналов времени), либо с использованием классической подачи.пересылать NN, которые получают в качестве входных данных прошлых данных, и пытаются предсказать точку в будущем;Преимущество последнего состоит в том, что рекуррентные NN, как известно, имеют проблемы с учетом далекого прошлого

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

Существует множество библиотек Python, которые предлагают инструменты для статистического обучения и машинного обучения, вот те, с которыми я больше всего знаком:

  • NumPy и SciPy являются обязательными для научного программирования на Python
  • Существует интерфейс Python для R, называемый RPy
  • statsmodel содержит классические методы статистической модели, включая модели авторегрессии;он хорошо работает с Pandas , популярным пакетом для анализа данных
  • scikits.learn , MDP , MLPy , Orange - это наборы алгоритмов машинного обучения
  • PyMC Модуль python, который реализует байесовские статистические модели и алгоритмы подбора, включая цепь Маркова Монте-Карло.
  • PyBrain содержит (среди прочего) реализации прямой и рекуррентной нейронных сетей
  • на сайте Gaussian Process имеется список программного обеспечения GP, включая две реализации Python
  • mloss - каталог программного обеспечения машинного обучения с открытым исходным кодом
5 голосов
/ 28 августа 2010

Я не имею представления о библиотеках python, но в R есть хорошие алгоритмы прогнозирования с открытым исходным кодом.Смотрите код прогноз для кода и ссылки для прогнозирования временных рядов.

3 голосов
/ 27 октября 2016

Два подхода

Существует два способа работы со структурированным временным вводом для классификации, регрессии, кластеризации, прогнозирования и связанных задач:

  1. Модель выделенного временного ряда: Алгоритм машинного обучения напрямую включает такие временные ряды. Такая модель похожа на черный ящик, и может быть трудно объяснить поведение модели. Примером являются авторегрессионные модели.
  2. Подход, основанный на особенностях: Здесь временные ряды отображаются в другое, возможно, низкоразмерное представление. Это означает, что алгоритм извлечения признаков рассчитывает такие характеристики, как среднее или максимальное значение временного ряда. Затем функции передаются в виде матрицы признаков в «нормальное» машинное обучение, такое как нейронная сеть, случайный лес или машина опорных векторов. Этот подход имеет преимущество лучшей объяснимости результатов. Кроме того, это позволяет нам использовать хорошо разработанную теорию контролируемого машинного обучения.

tsfresh вычисляет огромное количество функций

Пакет Python tsfresh вычисляет огромное количество таких функций из pandas.DataFrame, содержащего временные ряды. Вы можете найти документацию на http://tsfresh.readthedocs.io.

enter image description here

Отказ от ответственности: я один из авторов tsfresh.

3 голосов
/ 02 сентября 2010

Вы пытались Автокорреляция для поиска периодических моделей во временных рядах?Вы можете сделать это с помощью функции numpy.correlate .

3 голосов
/ 30 августа 2010

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

2 голосов
/ 07 мая 2012

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

1 голос
/ 29 января 2018

Хотя это и не дает прямого ответа на вопрос, после многих поисков в отношении библиотек, подходящих для прогнозирования временных рядов и последовательного извлечения данных, я наткнулся на эту страницу семинара http://sequenceanalysis.github.io/, в которой есть интересный код, касающийся подгонки цепей Маркова. Я надеюсь, что это помогает кому-то еще:)

...