2010-12-10 4 views
1

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

Ниже приведен образец данных.
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

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

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

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

Благодаря
СФК

ответ

1

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

Смежные вопросы