如何从庞大的数据集中创建一个有代表性的小子集,用于本地开发?

数据挖掘 机器学习 时间序列 数据集 数据 采样
2022-03-09 12:01:22

​​​

我有一个时间序列问题,我使用的数据集相当大。大约 100GB。对于本地开发,我试图将其分成一个大约 50MB 的非常小的批次,只是为了确保单元测试和一些非常简化的“分析”测试通过,我的代码不是一团糟,我的模型实际上是在尝试做一些事情对这些数据有意义。我知道我无法创建一个可以完全模仿原始数据的非常好的“具有代表性”的小子集,但我想确保在对这个庞大的数据集进行训练之前,我发现我的模型的许多基本缺陷都与这些数据有关。也许为不同的测试范围设置多个不同大小的批次也是一种选择,我没有任何偏好。

​​​

创建这个子集的最佳策略是什么?我认为对于不连续的数据,与我的不同,数据点的随机下采样可能是一件好事,但我不知道在时间序列数据中什么是好的做法。我应该选择一小段时间作为新数据集吗?随意性呢?如何根据类别不平衡进行抽样?这些是我首先想到的问题。但请随意扩展更多问题。

编辑:我正在研究的是这个数据集数据集非常大,我想有效地从中选择一个子集。任务是检测癫痫发作。我认为,一种选择是科目的数量。但我对您可能提出的所有选择持开放态度!

1个回答

在您的情况下,您必须首先处理生物数据的复杂性。

我不知道检测脑癫痫或任何大脑行为的最低采样率。我建议学习一些文章,以了解有关 EEG 信号分析的最佳实践,例如:https ://www.frontiersin.org/articles/10.3389/fneur.2020.00375/full

也许有一些好的做法可以减少数据量。

除此之外,您可以按照文档中的建议,在同一只狗(例如:狗 2)中从癫痫发作前 5 分钟的数据开始。第一个目标可能是检测哪些传感器在您的案例研究中更重要,以便您可以删除代表性较低的传感器(如果存在)。

这可以在传感器之间进行相关性研究。如果特定传感器在同一只狗的信号之间没有任何相关性(=0 值),则可能意味着它与癫痫事件无关。

然后,如果您在特定传感器中检测到一些相关性,您可以开始使用多变量模型,该模型可以更精确地预测是否会出现癫痫症。

在几个重要的传感器和几只狗上做了很好的模型之后,我想你可以使用 1 小时的训练来扩展预测。