如何在Keras中使用CNN处理多标签分类的不平衡数据?

问题描述 投票:0回答:1

我的数据集形状为(91149, 12)

我使用CNN在文本分类任务中训练分类器

我发现训练精度:0.5923和测试精度:0.5780

我的班级有9个标签,如下所示:

df['thematique'].value_counts()
Corporate                   42399
Economie collaborative      13272
Innovation                  11360
Filiale                      5990
Richesses Humaines           4445
Relation sociétaire          4363
Communication                4141
Produits et services         2594
Sites Internet et applis     2585

模型结构:

model = Sequential()
embedding_layer = Embedding(vocab_size, 300, weights=[embedding_matrix],   input_length=maxlen   ,   trainable=False)
model.add(embedding_layer)
model.add(Conv1D(128, 7, activation='relu'))
model.add(GlobalMaxPooling1D())
model.add(Dense(9, activation='sigmoid'))
model.compile(optimizer='Adam', loss='categorical_crossentropy', metrics= ['categorical_accuracy'])

我的多标签分类数据不平衡。我需要在Keras中使用CNN处理不平衡数据以进行多分类分类。

python keras multilabel-classification imbalanced-data
1个回答
0
投票

我不确定您是否需要使用Keras本身而不是凭直觉来解决不平衡问题。一种简单的方法是每个类使用相同数量的数据。当然,这会引起另一个问题,即您过滤了很多样本​​。但是仍然是可以检查的事情。当然,当数据不平衡时,仅计算分类性能并不是一个很好的主意,因为它很好地完成了每个类的表现。

© www.soinside.com 2019 - 2024. All rights reserved.