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