我有以下场景。我使用智能手机通过Edge Impulse平台从三相电机收集了一些加速度数据(accX,accY和accZ)。
在数据框中构造原始数据时,将保留以下值:values of a sample collected
绘制这些数据,我有以下子图:sampling subplots
因此,在这种情况下,我在构建包含样本均方根的向量(列表)时遇到的困难就开始发挥作用了。
我一直在尝试通过以下代码进行计算:
# calculate the average value of the accY column
media = dado['accY'].mean()
# calculate the RMS vector of the column
rms = np.sqrt(dado['accY'].apply(lambda x: (x - media)**2))
result this code in plot注意:均方根绿色线
我的顾问说,rms和媒体在accY子图中应该有以下行为:red rms and green media注:RMS红线和中绿色线。
那么你的意见是什么,代码中是否存在错误?
新的实现,我一直在开发加速度的移动均方根:
rms = (pd.DataFrame(abs(dado['accX'].values)**2).rolling(window).mean()) **0.5
有道理吗
2条答案
按热度按时间jdzmm42g1#
RMSE是为两组值定义的,这里您使用的是一组'accY'来计算RMSE?这是不可能的,您正在计算标准偏差,即与平均值的偏差。这里是一个实现标准偏差的示例数据集。
我创建了一个5天的窗口,计算了这5天的标准差,并将其与原始值进行了标绘。
wmomyfyw2#
我成功解决了
这里n是大小为n的窗口,假设你有一个数组[1,2,3,4,5]和大小为n = 2的窗口,那么要计算每个窗口(x_i)或数组中元素的移动RMS,你应该计算x_i和数组中n-1个右移值(在这种情况下是1个右移值)的平方和。
比如说
使用下面的代码:
[![移动均方根][3]][3]