如何在词嵌入层之前应用 SMOTE 技术(过采样)

use*_*248 6 python-3.x deep-learning tensorflow oversampling

如何在 LSTM 中的词嵌入层之前应用 SMOTE 算法。

我有一个文本二进制分类问题(Good(9500) 或 Bad(500) 评论,总共有 10000 个训练样本,它是不平衡的训练样本),意思是当我使用 LSTM 和预训练的词嵌入(100 维空间用于每个单词)也是如此,所以每个训练输入都有一个单词词典的 id(当文本描述少于 50 个单词时,总共 50 个 id 填充为零,当描述超过 50 个字符时,修剪为 50)。

下面是我的一般流程,

  • 输入 - 1000(batch) X 50 (序列长度)
  • Word Embedding - 200(独特的词汇词)X 100(词表示)
  • 在词嵌入层(LSTM 的新输入)之后 - 1000(批次)X 50(序列)X 100(特征)
  • LSTM 1000(批量)X 100(单位)的最终状态
  • 应用最后一层 1000(batch) X 100 X [100(unit) X 2 (output class)]

我只想在 SMOTE 的帮助下生成更多数据以进行差评

小智 1

我遇到了同样的问题。在 stackexchange 上找到这篇文章,建议调整类分布的权重而不是过采样。显然这是 LSTM / RNN 处理类别不平衡的标准方法。

https://stats.stackexchange.com/questions/342170/how-to-train-an-lstm-when-the-sequence-has-imbalanced-classes