为了测试某些分类器,我想生成包含3个信号的合成时间序列数据,以及一个标签,该标签应取决于这三个信号中的所有数据点,这些是我希望信号遵循的规则:
我尝试了许多方法,包括其中的一种方法,以使我对自己的工作有所了解:
随时间生成具有随机频率(在我的示例中,我使用的频率为7 8 9 10之间的值)和随机相位的基准窦信号,问题是要找到此频率,因此标签(y)取决于频率(如果大于8 y的频率为1,否则y为0),则生成3个随机滤波器,并将该基本信号卷积3次以生成3个信号,并在每一步中添加噪声。
freq = np.random.choice([7, 8, 9, 10])
phase = np.random.rand() * 10
base = []
for i in range(data_size):
base.append(np.random.rand() + math.sin(phase + float(i/freq)))
for f in filters:
signal = np.convolve(base, f)
signal += np.random.rand(len(signal)) * 6
all_features.append(signal)
if freq > 8:
y = 0
else:
y = 1
此数据的问题在于,一个简单的BiLSTM模型可以在其上达到大约100%的精度。 所以我的问题是有什么办法可以做到这一点?您知道我可以用来生成此库的任何库吗?
例如,如果您可以使用任何编程语言提供示例,那么我会在R中找到simstudy包,我认为可以在此处使用它,但是,我不知道如何在其中实现。
谢谢您的帮助。