Обнаружение изменений в потоковых данных - PullRequest
1 голос
/ 10 декабря 2010

У меня есть потоковый набор значений, который я хотел бы проанализировать на наличие резких изменений и, возможно, игнорировать пики / шумы в данных.Я посмотрел на скользящие средние, средние worsorised и несколько других возможных решений, включая ПИД-контроллеры в системах управления, библиотеку кольтов и множество подсказок, как решить эту проблему.

Пример набора данных приведен ниже.
22,0, 22,0, 22,0, 22,0, 20,8806130178211 , +20,8806130178211, 20,8806130178211, +20,8806130178211, 20,8806130178211 +20,8806130178211, +21,840329667841555, 21,840329667841555, +20,8806130178211, 20,8806130178211, 20.8806130178211,20.8806130178211, +20,8806130178211, 20.8806130178211, 21.840329667841555, 21.840329667841555, 21.840329667841555,21.840329667841555, 22.80350850198276

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

В поисках элегантного математического / алгоритмического решения, которое работает как скользящее среднее, в котором, если данные не изменяются в течение длительного времени (окно, которое является динамическим), онобудет игнорировать старые данные.В случае вышеуказанных данных начальные значения 22 игнорируются при рассмотрении следующего окна данных, которое является 20.8806130178211.

Решение (программа / класс) должно быть в состоянии принять новое значение ввода данных (22.0232) и возвращает значение true или false, если вычисляется, что значение находится в допустимом диапазоне, т. е. оно значительно не изменилось.

Спасибо
sfk

1 Ответ

1 голос
/ 02 января 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...