我正在尝试对多标签图像(脑肿瘤)进行分类。每种肿瘤类型从0到4标记为分类类别。我的数据集非常不平衡。为了克服这个问题,根据我对stackoverflow的研究,我在Keras中使用了class_weight。
y_integers = np.argmax(allY, axis=1)
class_weights = compute_class_weight('balanced', np.unique(y_integers), y_integers)
d_class_weights = dict(enumerate(class_weights))
model.fit(X_train,y_train,epochs=1,verbose=1,class_weight=d_class_weights ,validation_data=(X_val,
y_val))
我的数据划分如下:
培训示例数= 72086
开发示例数= 12015
测试示例数= 12014
模型编译后,我的分类报告为:
precision recall f1-score support
0 0.89 0.84 0.87 2612
1 0.86 0.85 0.86 2224
2 0.87 0.78 0.82 1537
3 1.00 1.00 1.00 3842
4 0.78 0.93 0.85 1799
accuracy 0.90 12014
我对分类报告的支持号码感到困惑。支持号码不同。我希望我的支持电话号码相同。实施有问题吗?如果是这样,我应该在编译模型之前平衡numpy数组中的类吗?