У меня есть потоковый набор значений, который я хотел бы проанализировать на наличие резких изменений и, возможно, игнорировать пики / шумы в данных.Я посмотрел на скользящие средние, средние 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