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

时间:2018-11-19 23:41:44

标签: python-3.x tensorflow deep-learning oversampling

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

我有一个文本二进制分类的问题(良好(9500)或不良(500)审核,总共有10000个训练样本,并且它是不平衡的训练样本),这意味着我正在将LSTM与预训练的单词嵌入一起使用(100以及每个单词的维度空间),因此每个训练输入都具有一个单词的ID(当文字描述少于50个单词时,ID总数为50,且填充为零);如果文字描述少于50个字符,则修剪为50个单词字典。

下面是我的一般流程,

  • 输入-1000(批量)X 50(序列长度)
  • 词嵌入-200(唯一词汇)X 100(词表示)
  • 词嵌入层之后(LSTM的新输入)-1000(批)X 50(序列)X 100(功能)
  • LSTM 1000(批次)X 100(单位)的最终状态
  • 应用最后一层1000(批)X 100 X [100(单位)X 2(输出类别)]

我想在SMOTE的帮助下生成更多数据以供不良审核

1 个答案:

答案 0 :(得分:1)

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

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