Python 数据分割时间序列
如何将表示重要数据的序列与不重要数据的序列分开? 一些背景和一个例子: 从数据图(图-见链接)中可以看出,该时间序列中有9个分段,由IMU记录(测量加速度–x,y,z,围绕x,y,z的方向旋转)。该图可在以下链接中找到: 绘图所依赖的数据: 在这种情况下,这些表示从右手剪下的动作。每个信号之间都有延迟(2-3秒)。这种延迟也可以延长 哪种方法最容易分割数据?我在哪里可以找到这些方法的示例,或者你能给我一个简单的方法吗我想知道什么?:相关信号的起点在哪里?Python 数据分割时间序列,python,time-series,accelerometer,Python,Time Series,Accelerometer,如何将表示重要数据的序列与不重要数据的序列分开? 一些背景和一个例子: 从数据图(图-见链接)中可以看出,该时间序列中有9个分段,由IMU记录(测量加速度–x,y,z,围绕x,y,z的方向旋转)。该图可在以下链接中找到: 绘图所依赖的数据: 在这种情况下,这些表示从右手剪下的动作。每个信号之间都有延迟(2-3秒)。这种延迟也可以延长 哪种方法最容易分割数据?我在哪里可以找到这些方法的示例,或者你能给我一个简单的方法吗我想知道什么?:相关信号的起点在哪里? 异常检测。我已经实现了这一点,但它的
- 异常检测。我已经实现了这一点,但它的预测非常模糊(我还没有优化它)。也许我需要比原始数据更好的特性。我问这个问题是因为可能有更简单的方法
- K-means聚类:也考虑过这一点,但我该如何处理?有例子吗
- 频域分析: 将原始数据分割为具有重叠的帧(大小为100),并将这些帧转换为频率域。我可以使用哪些功能?关于信号能量的思考
- 其他方法
向Max问好“我如何将代表重要数据的序列与不重要数据的序列分开?” 你的问题不明确。“重要”是主观的,而不是数据本身 然而,如果你想构建一个分类器,你可以把这个问题重新定义为“什么是最好的保守子序列?”。您可以回答以下问题:
[matrixProfile、profileIndex、MotionIndex、discordIndex]=interactiveMatrixProfileVer2(ay,250);(代码免费提供)“如何将表示重要数据的序列与不重要数据的序列分开?” 你的问题不明确。“重要”是主观的,而不是数据本身 然而,如果你想构建一个分类器,你可以把这个问题重新定义为“什么是最好的保守子序列?”。您可以回答以下问题:
[matrixProfile、profileIndex、MotionIndex、discordIndex]=interactiveMatrixProfileVer2(ay,250);(代码免费提供)有一些可能的解决方案: DBSCAN 或 DTW方法 此外,您还可以手动执行(例如Matlab m-file)。 这里:axaR是来自加速计(沿x轴)的信号,k-点数,阈值-手动调整值
figure (100)
for fig = 1: 5
k = 200;
threshold =20*fig*std(axaR);
fprintf('window size %d, threshold is %f\n', k,threshold)
for i = 1: (length(axaR)-k)
summa = 0;
for j= 1:k
summa = summa + abs(axaR(i+j));
end
if (summa > threshold)
c(i) = 1;
else
c(i) = 0;
end
end
subplot(5,1,fig)
plot ( axaR, 'LineWidth', lw), hold on
plot(1:k,ones(k,1),'*r')
hold on,
plot ( c, 'LineWidth', lw),
hold on,
xlim([0,5000]),
title (strcat('threshold ', num2str(threshold), 'window size', num2str(k) ))
end
这是步行分析的例子,它是完全基于直觉的方法,如果你知道任何数学或物理背景,请不要犹豫分享它
最佳以下是一些可能的解决方案: DBSCAN 或 DTW方法 此外,您还可以手动执行(例如Matlab m-file)。 这里:axaR是来自加速计(沿x轴)的信号,k-点数,阈值-手动调整值
figure (100)
for fig = 1: 5
k = 200;
threshold =20*fig*std(axaR);
fprintf('window size %d, threshold is %f\n', k,threshold)
for i = 1: (length(axaR)-k)
summa = 0;
for j= 1:k
summa = summa + abs(axaR(i+j));
end
if (summa > threshold)
c(i) = 1;
else
c(i) = 0;
end
end
subplot(5,1,fig)
plot ( axaR, 'LineWidth', lw), hold on
plot(1:k,ones(k,1),'*r')
hold on,
plot ( c, 'LineWidth', lw),
hold on,
xlim([0,5000]),
title (strcat('threshold ', num2str(threshold), 'window size', num2str(k) ))
end
这是步行分析的例子,它是完全基于直觉的方法,如果你知道任何数学或物理背景,请不要犹豫分享它
最佳如果您想手动分割数据(监督学习),我遇到了同样的问题,因此我创建了一个简单的python matplotlib库:
如果要手动分割数据(监督学习),我遇到了同样的问题,因此我创建了一个简单的python matplotlib库:
非常感谢,这非常有帮助!非常感谢,这非常有帮助!请允许您在下一次使用CTRL+G为可读性设计代码格式。请允许您在下一次使用CTRL+G为可读性设计代码格式