在连续d上使用scikitlearn正交匹配追踪模块

2024-09-26 17:47:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用匹配追踪构造连续神经数据连续时间窗口的稀疏表示,并最终检测数据中发生的事件。我附上了一些我的data的快照,它显示了我的wavepacket检测器的输出(原始数据是蓝色的,40-100Hz的Hilbert包络是红色的,wavepacket是多种颜色的)。如你所见,它包含振荡爆发(我们称之为波包),我想找到稀疏表示。最后,我想用这些稀疏表示来制作一个波包检测器。我目前使用小波变换的能力来检测波包,我正试图看看匹配追踪是否会更精确,计算效率更高(我有一个相当高的误报率)。在

我的理解是,在scikit learn的OMP模块中,没有内置的字典(如Gabor、DCT、wpsym等),这是其他匹配追踪工具箱中常见的。相反,我们必须首先从示例数据和训练标签训练我们自己的词典。我觉得这很有吸引力,因为我们可以生成自己的词典,但我很难理解如何使用数据来完成这项工作。在

documentation中提供的示例中,数据是用make_稀疏编码的信号生成的。这给了我们y,X,和w,从中我们可以训练一个模型。我的神经数据是一个连续的轨迹。我可以把它分成时间窗口(假设500个样本长),这样我就可以在每个500个样本长的窗口上分别运行OMP。但是我怎么才能拿到标签呢?如何根据数据构造y、X和w?在


Tags: 数据示例data原始数据时间事件标签神经
1条回答
网友
1楼 · 发布于 2024-09-26 17:47:26

我相信我知道我自己问题的答案。它的姿势很糟糕,因为你不能根据你的数据构造y,X和w。您试图通过将一组字典元素(X)乘以一组权重(w)来重建数据(y),使y=Xw。在

所以你必须从一个预先设计好的字典(X)开始,然后运行

omp = OrthogonalMatchingPursuit(n_nonzero_coefs=n_nonzero_coefs)
omp.fit(X, y)

得到系数w。在

我被误导到可以从这个函数中得到一个最优的稀疏字典,因为我阅读了文档中引用的paper,它确实提供了一个K-SVD算法来生成有效的稀疏字典,然后可以用于正交匹配追踪。在

如果有人不正确,请告诉我。在

相关问题 更多 >

    热门问题