检测时间序列数据的变化

时间:2017-02-19 21:17:46

标签: algorithm machine-learning time-series real-time

我们说我在广场的每个角落都有4个热传感器。传感器向加热物体移动的次数越多,其值从0到1增加。可以说,我将这个方形移动到一个传感器(F1)靠近被加热的物体朝另一侧的另一个加热物体移动。在从一侧到另一侧的路上,F1开始减小值,而让我们说F4开始增加。如何在迭代窗口中检测到此更改?我希望算法告诉我F1和F4发生了变化,同时F3可能会发生变化,但不是很明显。

  • Iter 1: F1 = 0.9 - F2 = 0.4 - F3 = 0.1 - F4 = 0.11

  • Iter 2: F1 = 0.85 - F2 = 0.405 - F3 = 0.1 - F4 = 0.15

  • Iter 3: F1 = 0.80 - F2 = 0.41 - F3 = 0.12 - F4 = 0.25

1 个答案:

答案 0 :(得分:0)

尝试将多项措施归为一类的问题是不可避免的信息丢失,因此不会出现适用于所有情况的单一措施。

从你的评论来看,我会尝试这样的事情:

# F*_d is the derivative of the F* sensor
m = e^(-(|F2_d| + |F3_d|))*(1 + |F1_d| + |F2_d|)

您的想法是,您希望|F2_d| + |F3_d|接近0,这将使第一个词几乎为1.结果应该接近1 + |F1_d| + |F2_d|。如果F2_d和F3_d太大,第一个术语将占主导地位,你应该看到一个小值。

我会玩不同的系数和/或移动一些|.|来获得你想要的东西。

(请注意,|.|表示绝对值,即abs(.)