文本分类 - DNN
Posted
技术标签:
【中文标题】文本分类 - DNN【英文标题】:Text Classification - DNN 【发布时间】:2020-07-12 17:14:51 【问题描述】:我正在使用深度神经网络执行文本分类。我的问题是我在火车数据上收到了 98 的高精度,而我的验证准确度是 49。
我尝试了以下方法:
-
打乱数据
我的训练和验证数据是 80:20 拆分
我使用的是 100 维 Glov 向量
有什么建议吗?
def get_Model():
model = tf.keras.Sequential([
tf.keras.layers.Embedding(vocab_size+1, embedding_dim, input_length=max_length, weights= . [embeddings_matrix], trainable=False),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.Conv1D(64, 5, activation='relu'),
tf.keras.layers.MaxPooling1D(pool_size=4),
tf.keras.layers.LSTM(64),
tf.keras.layers.Dense(5, activation='softmax')
])
model.compile(loss='sparse_categorical_crossentropy',optimizer="adam",metrics=['acc'])
model.summary()
return model
【问题讨论】:
【参考方案1】:您的模型显然过度拟合。防止过拟合的标准技巧是:
添加辍学, L2 正则化, 尝试更小的型号。同时使用卷积和 LSTM 是相当不寻常的(尽管它非常好)。也许只保留其中一个是缩小网络的最佳方式。
我的猜测是您正在使用一个相当小的数据集。拥有更大的数据集也有助于防止过度拟合,但这通常不是一条适用的建议。
【讨论】:
感谢您的回复。数据标签似乎有问题。因此,验证准确性受到影响以上是关于文本分类 - DNN的主要内容,如果未能解决你的问题,请参考以下文章