嵌入之后或之前如何执行过采样?

时间:2019-04-08 00:56:47

标签: python tensorflow neural-network

我在yoon kim的工作(卷积神经网络的句子分类)的张量流link中遇到了Denny Britz的实现,我想对每个句子的嵌入向量执行SMOTE(过采样),不确定如何获得th的嵌入,或者如果我可以在嵌入之前进行过采样,这是Denny的嵌入部分:

    with tf.device('/cpu:0'), tf.name_scope("embedding"):
        self.W = tf.Variable(
            tf.random_uniform([vocab_size, embedding_size], -1.0, 1.0),
            name="W",trainable=True)
        self.embedded_chars = tf.nn.embedding_lookup(self.W, self.input_x)
        self.embedded_chars_expanded = tf.expand_dims(self.embedded_chars, -1)

1 个答案:

答案 0 :(得分:0)

我想您想使用SMOTE对基于它们的类的句子嵌入进行过采样。这是最简单的方法:

1-安装库imblearn pip install imblearn

2-您可以选择使用SMOTE过采样或ADASYN过采样,

导入您想要的一个:

from imblearn.over_sampling import SMOTEfrom imblearn.over_sampling import ADASYN

3-创建一个实例并选择您喜欢的参数(取决于您的问题):

sm = SMOTE(random_state=12, ratio=1.0)

4提供您的嵌入列表及其适当的标签列表,您将获得过采样的结果: oversampled_embeddings,oversamples_labeles= sm.fit_sample(embeding_list,labels_list)

5享受培训和测试您的网络:)

希望有帮助。