我的数据集形状为(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处理不平衡数据,以便进行多分类分类。
答案 0 :(得分:1)
准确度可能会误导您的问题,因为类别失衡严重,我会使用 F1 得分。
对于损失,您可以使用focal loss,它是分类交叉熵的变体,其重点是最少代表类。您可以找到一个示例here,根据我的经验,使用NLP分类任务上很少的课程对它有很大帮助。
答案 1 :(得分:0)