(问题:多类文本分类问题中的过度拟合问题)
在我的个人项目中,目标是根据公司描述对公司的行业标签进行分类。我采取的步骤是:
- 删除停用词、标点符号、空格等,并将描述拆分为标记。
- 将标签和标记转换为词向量。
- 将标记转换为词嵌入模型。
- 设置具有 62 个输出节点的 CNN。(62 个不同的行业标签进行分类)
图片/数据集链接供参考:https ://drive.google.com/drive/folders/1yLW2YepoHvSp_koHDDzcAAJBIaYQIen0?usp=sharing
我面临的问题是模型过拟合,不管我做了什么改变。(由于我为损失设置的回调而提前结束)[CNN 准确度][7]
max_features = 700
maxlen = 200
embedding_dims = 50
filters = 200
kernel_size = 3
hidden_dims = 160
es_callback = EarlyStopping(monitor='val_loss', patience=5)
model = Sequential()
model.add(Embedding(vocab_size, 100, weights=[embedding_matrix], trainable=False))
model.add(Dropout(0.4))
model.add(Conv1D(filters,
kernel_size,
padding='valid',
activation='relu',
strides=1))
model.add(GlobalMaxPooling1D())
model.add(Dense(hidden_dims))
model.add(Dropout(0.4))
model.add(Activation('relu'))
model.add(Dense(62))
model.add(Activation('softmax'))
model.compile(loss='categorical_crossentropy',
optimizer='adam',
metrics=['accuracy'])
history = model.fit(X_train, y_label_train,
batch_size=64,
epochs=50,
validation_data=(X_test, y_label_test),
callbacks=[es_callback])
代码链接:https ://colab.research.google.com/drive/1YqbhPX6e4bJ5FnbfHj7fTQH4tUe6diva?usp=sharing