分类序列,其中两个类中都有一些序列

数据挖掘 分类 阶级失衡 顺序
2022-02-12 08:15:19

我正在构建一个修改后的 RNN(特别是 GRU)来对序列进行分类。这些序列是可变长度的,并且包含“状态”。序列中的每个点都是分类的,它们看起来像 [A,B,C] 或 [A,A,C,B] 等。分类将是 1 或 0,具体取决于序列中的用户是否执行了操作.

我面临一个问题,其中一些序列出现在两个类中。此外,只有不到 10% 的时间出现一类。

在下采样数据集的训练中,RNN 通常可以达到 75+% 的准确率,具有相似的特异性和敏感性。在测试中,灵敏度急剧下降到 20% 以下,而特异性上升到 95%+。

这不太理想,我相信这个问题可能源于两个类中出现的序列。在训练中大部分时间为正的序列通常在测试中大部分时间为负(因为测试集是不平衡的)。我假设网络比序列更能学习分布,这解释了结果的鲜明对比。

对于有处理此类不平衡和数据集问题经验的人,我的假设是否正确?对于两个类中可能出现相同序列的数据,您有什么建议?

作为下一步,我正在考虑对少数类进行加权,并在非下采样数据集上进行训练,以保留每个类中序列的分布。我也在考虑一个“有代表性的”训练和测试集,如果序列 [A,B,A] 以 6:1 的负正比出现,我将在可以保留大多数的范围内进行下采样。希望这将减少不平衡。

还可以选择为训练数据添加更多“深度”。序列中的每个点都有多个特征(通常是分层的),这些特征增加了关于每个状态的更多细节,这可能会减少出现在两个类中的序列数量。但是,如果网络有可能无法正确学习,我会犹豫是否让事情变得更复杂。

0个回答
没有发现任何回复~