Как сгладить кривую до той же степени детализации, что и другая кривая? - PullRequest
0 голосов
/ 15 марта 2019

У меня есть функция, возвращающая линию тренда и прогноз для этой линии. Мне нужно определить «существенные» моменты изменения (т. Е. На склоне) в прогнозируемом регионе. Каждый временной шаг в серии составляет 15 минут (таким образом, данные являются дискретными). Для этого я думаю, что мне нужно:

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

Причина, по которой мне нужно сделать №2, заключается в том, что иногда прогнозы (особенно когда они не так хороши) "более неравномерны", чем наблюдаемые данные.

Я вижу, как сгладить кривую, например: Как правильно сгладить кривую? Но я не вижу, как настроить эту степень сглаживания до определенной степени детализации. Было бы замечательно, если бы был способ подать кривую в savgol_filter и настроить ее на гиперпараметры, если есть такая вещь. Это решение Как сгладить кривую с большим шумом, который присутствует только в определенной части? сгладит все в диапазоне, поэтому неясно, как автоматизировать процесс.

Эскизный подход:

  1. Используйте Polynomial.fit, чтобы получить наиболее подходящую линию. Затем рассчитайте MSE по наблюдаемым данным.
  2. применять savgol_filter к линии тренда, увеличивая окно и полиномиальные гиперпараметры, пока MSE результата не приблизится к лучшему MSE наблюдаемых данных

Недостатки: 1. это может быть долгий поиск. 2. трудно избежать локальных минимумов: например, вы можете сначала подогнать полином, а затем подогнать окно. Когда окно увеличивается, вы продолжаете пытаться, а затем ухудшается в t_m_. но позже тенденция может измениться: при t_m + n_ может быть лучше.

...